概述

相信大家對 Linux 再熟悉不過了,我們都知道 Linux繼承自 Unix,但其實他們上一代還有一個 Multics。從最早的 Multics 發展到最早版本的 Linux,用了 28 年。這其中有四位天才級大師的貢獻功不可沒。今天帶大家一起來回顧一下這段歷史。


操作系統鼻祖——Multics

Linux系統的前世今生--四位天才級大師

Multics 全稱是 MULTiplexed Information and Computing System,它是一套分時多任務操作系統,可以簡單的理解是個支持併發的操作系統。

舉個栗子,假設現在網易雲音樂是大的系統,如果我們是個單任務系統的話,現在你要聽歌,但是發現現在有一個人已經在聽歌了,那麼你就只能等他聽完了,沒人在線了,你才可以聽。而如果是多任務的話,咱們可以這樣,你聽歌的同時,他也在聽,因為計算機的處理速度非常快,所以它在切換任務的時候。你不會感覺到有任何卡頓現象。

這個項目在 1964 年由貝爾實驗室麻省理工學院及美國通用電氣公司共同參與研發。目的是實現連接 1000 個終端機器,支持300個用戶同時上線,但是這個項目進度太慢了,最終這裡面的人被裁員,同時貝爾實驗室的率先退出此項計劃。


Unix 的創造

Linux系統的前世今生--四位天才級大師

左:Thompson | 右:Ritchie

這其中有兩位大佬就是實驗室的成員,一個是肯尼斯·藍·湯普遜 (英文名:Kenneth Lane Thompson),另外一個是丹尼斯·麥卡利斯泰爾·裡奇(英文:Dennis MacAlistair Ritchie),Thompson 在業餘時間“不務正業”地弄了一個“星際旅行”的遊戲程序。

它之前在 Multics 上弄的時候的時候,發現玩起來非常不爽,就是會響應有時候快,有時候慢。就像你玩遊戲的時候老是有延遲,你肯定不爽啊。他在庫房發現一臺閒置的 PDP-7 機器,想著自己弄一個簡化版本的操作系統,只支持單機即可。於是便動手開幹,要知道那時候不像現在什麼東西都給你準備好了,他和他的搭檔就一起一個個實現文件系統、進程、設備文件、命令行解釋器等等工具程序。

完成之後,他讓同事們一起玩他的遊戲。但同事對他的這個遊戲沒有什麼興趣,反倒對這個系統有興趣。同事們發現他這個相當於是 Multics 的簡化版本,便戲稱它這個是 "UNiplexed Information and Computing Service”,即沒路信息計算系統,縮寫為Unics,取其諧音Unix,這就是 Unix 的由來。此時已經是 1970 年了。小夥伴們可以打印一下計算機上的最早時間,你會發現,最早的時間就是 1970 年,即 Unix 誕生元年。

Kenneth 在寫完操作系統開發後,覺得 Unix 需要一個系統級的編程語言,於是就創造了 B 語言 (Basic Combined Programming Language 基本組合編程語言),但後面丹尼斯發現B語言只適合處理某些種類的問題,具有自身的侷限性,於是便創造了新的語言,就是我們今天熟知的 C 語言


Unix BSD 分支的夭折

Unix 這個操作系統非常好用,於是便在貝爾實驗室內部流傳開來,並經過不斷改良。到 1974 年的 7 月貝爾實驗室公開了第五個版本的 Unix ,這首先引起了學術界的關注,並向其索取源碼用作教育目的。1978 年伯克利大學推出了以 Unix 第六個版本為基礎的拓展版。於是首個 Unix 拓展分支出現,並命名為 BSD (即 Berkeley Software Distribution 伯克利分發版)。80 年代後期,幾個伯克利畢業的同學,成立了一家Berkeley Software Design Inc.公司,簡稱 BSDi。專門銷售 BSD 的商業版本。當時貝爾屬於 AT&T ,而AT&T被《謝爾曼反托拉斯法》規定了不能銷售除了電話機電報機等之外的商品。後來 AT&T 解體了,Bell 可以售賣 Unix 了。於是把 BSD 告上了法庭,這對 BSD 來說,是一個致命的打擊。並且,更過分的是,Bell 把這個價格定得死貴死貴的,一份授權 4 萬美元,這讓當時很多的研究者和學者望而卻步。也是 Unix 厄運的導火索。


Gnu計劃

Linux系統的前世今生--四位天才級大師

在 Unix 開始收費的同時,我們今天要聊的第三位老哥登場了——理查德·馬修·斯托曼(英文名:Richard Matthew Stallman),他發起了 GNU 計劃, 目標是創建一套完全自由的操作系統。同時開創了 Copyleft 的概念。你看一下它的 logo 就很有意思。

Linux系統的前世今生--四位天才級大師

看圖思意,我們可以理解它是反著作權,但其實它並不是說要作者放棄著作權。它的核心其實是需要使用著作權法的原則來保護使用、修改和分發自由軟件的權利。而創造這個之初,其實他想要實現的,就是一個類似 Unix 的自由的操作環境,注意,這裡的核心是自由。這個可以從 《Gnu 宣言》中的這段文字窺見一二——“重現當年軟件界合作互助的團結精神”

Gnu 發起後,斯托曼和他的小夥伴陸續把計劃中的編輯器、編譯器和 shell 完成了。唯獨缺乏操作系統核心。他們陸續嘗試了基於 Hurd、GNU Mach 內核進行開發,認為可以藉此加速操作系統的開發。但因為一直不確定卡內基梅隆大學何時要將核心源代碼發佈,造成計劃胎死腹中。


Linux 的誕生

Linux系統的前世今生--四位天才級大師

時間推移到 1991 年,一名 21 歲就讀赫爾辛基大學的計算機科學專業的學生——林納斯·託瓦茲登場了,他當時發現 Minix (塔能鮑姆教授為了教學之用而創作的類 Unix 的操作系統)一些不完善的地方。但塔能鮑姆教授覺得他寫的這個東西,僅僅是用作教學,因此也不準備把它完善。這個時候,託瓦茲想著要不自己實現一個?剛開始就打算寫一套簡單的操作系統內核,並馬上著手開幹。

8月25日,他在 comp.os.minix 發了一個帖子:我在做個(自由的)操作系統(就是個興趣愛好,我不會搞得像GNU那麼大那麼專業),打算讓它工作在386 AT平臺上。它從四月就開始醞釀了,馬上就快好了。我想要那些喜歡或不喜歡minix的人的意見,因為我的系統和它有點類似(同樣的文件系統的物理佈局——由於實際原因——還有些其他的東西)。

我現在已經移植了bash(1.08)和gcc(1.40), 而且看起來奏效了。這意味著我會在幾個月內得到一些實用的東西。它沒有任何minix代碼,並且它有一個多線程的fs。它不可移植(使用386任務切換等),而且它可能永遠不會支持除AT硬盤之外的其他東西,因為我只有這些。

同年九月份,Linux 內核版本 0.01 在芬蘭大學和研究網絡的 FTP 服務器上發佈,有 10239 行代碼,一個月後, 0.02 版本的內核版本發佈。不愧為 Linux 操作系統之父,這麼短的時間內就可以把一個操作系統的核心弄出來。

Linux 內核是在遵守 Gnu 通用公共許可證之下發布的, 而這邊 Hurd 內核的計劃嚴重延期了。慢慢的,Linux 則替代了原來要開發的 Hurd 內核。至此,Gnu 計劃基本完成。此時操作系統命名為 Gnu/Linux。但人們卻往往把它簡稱為 Linux。

Linux系統的前世今生--四位天才級大師

1994 年 3 月 14 日,Linux 內核 1.0.0 發佈,共 176250 行代碼。也就是正式版。至此之後 Linux 得到了長足的發展,也影響我們無數人的工作方式,毫不誇張地說,Unix 以及 Linux 的創造和發展,對整個社會的歷史進程,有著深遠的影響。而他們在一開始,其實不過是湯普遜想實現一個遊戲程序,託瓦茲不過是想參照著 Minix 並完善它沒有實現的功能罷了,所有說,適當的“不務正業”,可能會有意外的驚喜。


總結

縱觀 Linux 的早期發展史,從肯尼斯·藍·湯普遜、丹尼斯·麥卡利斯泰爾·裡奇、理查德·馬修·斯托曼以及林納斯·託瓦茲這四個天才級黑客身上。我們會發現他們的一些共同特質--驚人的執行力+培養自己的興趣愛好+多分享,保持開放的心態。

以上就是今天講的Linux歷史內容,希望對你有所啟發~

後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~

Linux系統的前世今生--四位天才級大師

相關推薦

推薦中...