漆黑的夜裏,室內的燈光白亮。靜靜的,理理思緒,想寫點什麼。享受着思考和興奮。學習Linux系統有段時間,今天就和大家分享一下我的收穫。
在分享之前,提幾個問題:
第一:什麼是Linux系統,它爲什麼會出現?
第二:學習Linux系統,到底是學習些什麼東西?
OK,帶着這幾個問題,開始我們今天的解密之旅。
最早計算機出現的時候是沒有操作系統這麼一說法的,後來人們發現,在使用計算機當中,人是最薄弱的一環,每一次爲了讓計算機運行程序,我們人需要把程序轉換成機器可以理解的格式,而那個時候計算機的輸入輸出設備叫穿孔紙帶。計算機運行很快,人在輸入和讀取結果是很慢。等磁帶出現後,人們就想,把要運行的程序做成多個,然後順序的放在磁帶機上,讓電腦能通過讀磁帶加載要運行的程序,這種叫做批處理系統(batch)。但是批處理系統有一個特性,計算機在某一時刻只能幹一件事,單任務執行,cpu計算能力大量是閒置的。於是人們就想能不能多任務(multi tasks)執行,讓計算機同一個時段運行多個程序。cpu只有一個,那麼怎麼讓多個任務齊頭並進呢?比如有三個任務,執行5秒鐘第一個任務,不管有沒有執行完,執行5秒鐘第二個任務,接着執行5秒鐘第三個任務,回過頭來,第一個任務接着剛剛中斷的位置繼續執行。按時間切割cpu。爲了讓多任務跑起來,我們必須有個監控程序。
那時候就人在做這個項目,比如at&t的Bell實驗室、MIT麻省理工人工智能實驗室、GE通用電器(General Electric company)聯合研發這麼個監控程序,起名叫Multics(分時操作系統)。兩到三年後,貝爾實驗室撤出Multics計劃,並召回工程師,其中有個叫肯.湯普森(ken Thompson),寫了一個“star travel”遊戲運行於Multics系統,貝爾實驗室退出Multics計劃後,肯.湯普森(ken Thompson)沒有權限免費使用Multics系統,爲了繼續研究自己的“star travel”遊戲,決定自己寫一個系統,他創造出了名爲Bon的程序語言,開發了UNiplexend Information and Computing System(UNICS系統)可執行PDP-7機器上,後來改稱UNIX。1971年,肯.湯普森(ken Thompson)和丹尼斯.裏奇(Dennis Ritch)對Bon語言改造發明C語言。1973年,肯.湯普森(ken Thompson)和丹尼斯.裏奇(Dennis Ritch)用C重寫UNIX,安裝於PDP-11機器上。1974年,unix第一次公之於衆。因爲當時美國正在反壟斷,所以很多大學和研究機構能免費拿到和研究unix,並主動將研究成果反饋給貝爾實驗室。1976年,肯.湯普森(ken Thompson)去伯克利大學(Berkeley)支教。伯克利大學(Berkeley)有個著名的研究生比爾.喬伊(Bill joy)成了BSRG組織。1980年,美國國防部(DARPA)需要在unix上實現TCP/IP協議,將合同給了BSRG。1983年,TCP/IP正式誕生unix系統上。1981年,at&t分拆,貝爾實驗室獨立出來,要求所有使用unix系統的交版權費。1985年,MIT麻省理工的理查德.馬修.斯托曼(Richard stallman)針對unix系統收費問題發起共產主義運動GNU,編寫GNU通用公共許可證(GNU GPL)併成立自由軟件基金會(Free software foundation)。1991年8月份,芬蘭大學生林納斯.託瓦茲(Linux Torvalds)宣佈成立Linux,遵循GPL協議。
內核(kernel):1.驅動底層硬件
2.把底層各硬件資源抽象成簡單資源
3.管理各程序運行
Linux就是種內核
完整的OS:
kernel+Application
狹義的OS:
kernel
Linux系統:GNU/Linux
操作系統功能:
驅動程序
進程管理
安全
網絡功能
內存管理
文件系統
。。。。
Linux我想大家都知道很流行,那麼我們要學習Linux系統,大概要學以下內容:
1.Linux入門、Linux系統管理、Linux服務及安全管理
2.Linux cluster(集羣)
3.Linux ops運維工具:ansible、puppet、saltstack、cobbler
4.linux monitoring監控工具:zabbix
5.shell腳本編程
6.http服務、tomcat、mysql
7.分佈式存儲系統:Mogilefs,clusterfs
8.NoSQL:redis,mongodb
9.虛擬化
10.Docker(容器引擎):容器雲
11.elk stack(日誌分析工具)elasticsearch,logstash,kibana
12.大數據:hadoop
13.系統優化
14.python編程