IT號(hào)外:影響Linux發(fā)展的四位天才黑客

2021-01-31    分類: 網(wǎng)站建設(shè)

相信大家對(duì) Linux 再熟悉不過了。我們都知道 Linux繼承自 Unix,但其實(shí)他們上一代還有一個(gè) Multics。從最早的 Multics 發(fā)展到最早版本的 Linux,用了 28 年。這其中有四位天才級(jí)大師的貢獻(xiàn)功不可沒?,F(xiàn)在就大家一起來回顧一下這段歷史

操作系統(tǒng)鼻祖——Multics



Multics 全稱是 MULTiplexed Information and Computing System。維基翻譯過來是 多任務(wù)信息與計(jì)算系統(tǒng)。它是一套分時(shí)多任務(wù)操作系統(tǒng)。那到底是個(gè)啥東西呢?可以簡(jiǎn)單的理解是個(gè)支持并發(fā)的操作系統(tǒng)。舉個(gè)例子,我們假設(shè)現(xiàn)在網(wǎng)易云音樂是這個(gè)大的系統(tǒng),如果我們是個(gè)單任務(wù)系統(tǒng)的話,現(xiàn)在你要聽歌,但是發(fā)現(xiàn)現(xiàn)在有一個(gè)人已經(jīng)在聽歌了,那么你就只能等他聽完了,沒人在線了,你才可以聽。而如果是多任務(wù)的話,咱們可以這樣,你聽歌的同時(shí),他也在聽,因?yàn)橛?jì)算機(jī)的處理速度非常快,所以它在切換任務(wù)的時(shí)候。你不會(huì)感覺到有任何卡頓現(xiàn)象。這個(gè)項(xiàng)目在 1964 年由貝爾實(shí)驗(yàn)室麻省理工學(xué)院及美國通用電氣公司共同參與研發(fā)。目的是實(shí)現(xiàn)連接 1000 個(gè)終端機(jī)器,支持300個(gè)用戶同時(shí)上線,但是這個(gè)項(xiàng)目進(jìn)度太慢了,最終這里面的人被裁員,同時(shí)貝爾實(shí)驗(yàn)室的率先退出此項(xiàng)計(jì)劃

Unix 的創(chuàng)造



左:Thompson | 右:Ritchie


這其中有兩位大佬就是實(shí)驗(yàn)室的成員,也是我們今天介紹的兩位主角。一個(gè)是肯尼斯·藍(lán)·湯普遜 (英文名:Kenneth Lane Thompson),另外一個(gè)是丹尼斯·麥卡利斯泰爾·里奇(英文:Dennis MacAlistair Ritchie),Thompson 在業(yè)余時(shí)間“不務(wù)正業(yè)”地弄了一個(gè)“星際旅行”的游戲程序。


它之前在 Multics 上弄的時(shí)候的時(shí)候,發(fā)現(xiàn)玩起來非常不爽,就是會(huì)響應(yīng)有時(shí)候快,有時(shí)候慢。就像你玩游戲的時(shí)候老是有延遲,你肯定不爽啊。他在庫房發(fā)現(xiàn)一臺(tái)閑置的 PDP-7 機(jī)器,想著自己弄一個(gè)簡(jiǎn)化版本的操作系統(tǒng),只支持單機(jī)即可。于是便動(dòng)手開干,要知道那時(shí)候不像現(xiàn)在什么東西都給你準(zhǔn)備好了,他和他的搭檔就一起一個(gè)個(gè)實(shí)現(xiàn)文件系統(tǒng)、進(jìn)程、設(shè)備文件、命令行解釋器等等工具程序。(筆者OS:大師就是大師工程能力令人乍舌?。。。┩瓿芍螅屚聜円黄鹜嫠挠螒?。但同事對(duì)他的這個(gè)游戲沒有什么興趣,反倒對(duì)這個(gè)系統(tǒng)有興趣。同事們發(fā)現(xiàn)他這個(gè)相當(dāng)于是 Multics 的簡(jiǎn)化版本,便戲稱它這個(gè)是 "UNiplexed Information and Computing Service”,即沒路信息計(jì)算系統(tǒng),縮寫為Unics,取其諧音Unix,這就是 Unix 的由來。此時(shí)已經(jīng)是 1970 年了。小伙伴們可以打印一下計(jì)算機(jī)上的最早時(shí)間,你會(huì)發(fā)現(xiàn),最早的時(shí)間就是 1970 年,即 Unix 誕生元年。Kenneth 在寫完操作系統(tǒng)開發(fā)后,覺得 Unix 需要一個(gè)系統(tǒng)級(jí)的編程語言,于是就創(chuàng)造了 B 語言 (Basic Combined Programming Language 基本組合編程語言),但后面丹尼斯發(fā)現(xiàn)B語言只適合處理某些種類的問題,具有自身的局限性,于是便創(chuàng)造了新的語言,就是我們今天熟知的 C 語言

Unix BSD 分支的夭折



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

Gnu計(jì)劃



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


看圖思意,我們可以理解它是反著作權(quán),但其實(shí)它并不是說要作者放棄著作權(quán)。它的核心其實(shí)是需要使用著作權(quán)法的原則來保護(hù)使用、修改和分發(fā)自由軟件的權(quán)利。而創(chuàng)造這個(gè)之初,其實(shí)他想要實(shí)現(xiàn)的,就是一個(gè)類似 Unix 的自由的操作環(huán)境,注意,這里的核心是自由。這個(gè)可以從 《Gnu 宣言》中的這段文字窺見一二——“重現(xiàn)當(dāng)年軟件界合作互助的團(tuán)結(jié)精神”

Gnu 發(fā)起后,斯托曼和他的小伙伴陸續(xù)把計(jì)劃中的編輯器、編譯器和 shell 完成了。唯獨(dú)缺乏操作系統(tǒng)核心。他們陸續(xù)嘗試了基于 Hurd、GNU Mach 內(nèi)核進(jìn)行開發(fā),認(rèn)為可以借此加速操作系統(tǒng)的開發(fā)。但因?yàn)橐恢辈淮_定卡內(nèi)基梅隆大學(xué)何時(shí)要將核心源代碼發(fā)布,造成計(jì)劃胎死腹中

Linux 的誕生



時(shí)間推移到 1991 年,一名 21 歲就讀赫爾辛基大學(xué)的計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生——林納斯·托瓦茲(瑞典語:Linus Benedict Torvalds)登場(chǎng)了,他當(dāng)時(shí)發(fā)現(xiàn) Minix (塔能鮑姆教授為了教學(xué)之用而創(chuàng)作的類 Unix 的操作系統(tǒng))一些不完善的地方。但塔能鮑姆教授覺得他寫的這個(gè)東西,僅僅是用作教學(xué),因此也不準(zhǔn)備把它完善。這個(gè)時(shí)候,托瓦茲想著要不自己實(shí)現(xiàn)一個(gè)?剛開始就打算寫一套簡(jiǎn)單的操作系統(tǒng)內(nèi)核,并馬上著手開干。8月25日,他在 comp.os.minix 發(fā)了一個(gè)帖子:

我在做個(gè)(自由的)操作系統(tǒng)(就是個(gè)興趣愛好,我不會(huì)搞得像GNU那么大那么專業(yè)),打算讓它工作在386 AT平臺(tái)上。它從四月就開始醞釀了,馬上就快好了。我想要那些喜歡或不喜歡minix的人的意見,因?yàn)槲业南到y(tǒng)和它有點(diǎn)類似(同樣的文件系統(tǒng)的物理布局——由于實(shí)際原因——還有些其他的東西)。我現(xiàn)在已經(jīng)移植了bash(1.08)和gcc(1.40), 而且看起來奏效了。這意味著我會(huì)在幾個(gè)月內(nèi)得到一些實(shí)用的東西?!啊笔堑摹鼪]有任何minix代碼,并且它有一個(gè)多線程的fs。它不可移植(使用386任務(wù)切換等),而且它可能永遠(yuǎn)不會(huì)支持除AT硬盤之外的其他東西,因?yàn)槲抑挥羞@些:-(。[1]

同年九月份,Linux 內(nèi)核版本 0.01 在芬蘭大學(xué)和研究網(wǎng)絡(luò)的 FTP 服務(wù)器上發(fā)布,有 10239 行代碼,一個(gè)月后, 0.02 版本的內(nèi)核版本發(fā)布。不愧為 Linux 操作系統(tǒng)之父,這么短的時(shí)間內(nèi)就可以把一個(gè)操作系統(tǒng)的核心弄出來

Linux 內(nèi)核是在遵守 Gnu 通用公共許可證之下發(fā)布的, 而這邊 Hurd 內(nèi)核的計(jì)劃嚴(yán)重延期了。慢慢的,Linux 則替代了原來要開發(fā)的 Hurd 內(nèi)核。至此,Gnu 計(jì)劃基本完成。此時(shí)操作系統(tǒng)命名為 Gnu/Linux。但人們卻往往把它簡(jiǎn)稱為 Linux,求斯托曼寶寶的心理陰影面積。要說名字叫法這個(gè)事,真不是偶然,比如 Uber 這個(gè)第一個(gè)詞讀 “污”,但是國內(nèi)很多人把他讀作“優(yōu)”,后來官方也只能發(fā)布官方版為“優(yōu)步”,類似的還有 wiki、ubuntu 等。有興趣的小伙伴可以自己去了解下


1994 年 3 月 14 日,Linux 內(nèi)核 1.0.0 發(fā)布,共 176250 行代碼。也就是正式版。至此之后 Linux 得到了長(zhǎng)足的發(fā)展,也影響我們無數(shù)人的工作方式,毫不夸張地說,Unix 以及 Linux 的創(chuàng)造和發(fā)展,對(duì)整個(gè)社會(huì)的歷史進(jìn)程,有著深遠(yuǎn)的影響。而他們?cè)谝婚_始,其實(shí)不過是湯普遜想實(shí)現(xiàn)一個(gè)游戲程序,托瓦茲不過是想?yún)⒄罩?Minix 并完善它沒有實(shí)現(xiàn)的功能罷了,所有說,對(duì)程序員來說,適當(dāng)?shù)摹安粍?wù)正業(yè)”,可能會(huì)有意外的驚喜

總結(jié)

縱觀 Linux 的早期發(fā)展史,從肯尼斯·藍(lán)·湯普遜、丹尼斯·麥卡利斯泰爾·里奇、理查德·馬修·斯托曼以及林納斯·托瓦茲這四個(gè)天才級(jí)黑客身上。我們會(huì)發(fā)現(xiàn)他們的一些共同特質(zhì)

首先就是驚人的執(zhí)行力,要知道,在他們那個(gè)時(shí)期和圈子里。其實(shí)是有很多人能夠做到和他們一樣的事情。但為什么是他們首先完成了這件事并名留史冊(cè)?機(jī)會(huì)永遠(yuǎn)留給有準(zhǔn)備的人沒錯(cuò),但其實(shí)這句話不完整,機(jī)會(huì)其實(shí)是留給第一時(shí)間抓住它的有準(zhǔn)備的人

其次培養(yǎng)自己的興趣愛好。不管是湯普遜想實(shí)現(xiàn)一個(gè)星際旅行游戲,還是托瓦茲想做個(gè)個(gè)人的操作系統(tǒng)。它的源動(dòng)力都來自于他們的興趣愛好。很難想象一個(gè)人在自己不感興趣的點(diǎn)上,能做出點(diǎn)什么成績(jī)。因此,我們應(yīng)該在日常保護(hù)好自己的興趣愛好。他不一定能讓你實(shí)現(xiàn)可見的財(cái)富上的收益,但卻可能讓你成為一個(gè)更有趣的人

最后多分享,保持開放的心態(tài)。Unix 之所以胎死腹中,就是因?yàn)樵缙诘拈]源,錯(cuò)過了最好的發(fā)展機(jī)會(huì)。而斯托曼、托瓦茲倡導(dǎo)的開源使得 Linux 得到了繁榮發(fā)展。因?yàn)殚_源,能夠讓更多的人看到你的代碼,互相學(xué)習(xí)交流,從而保持整個(gè)社區(qū)的長(zhǎng)足進(jìn)步

網(wǎng)站題目:IT號(hào)外:影響Linux發(fā)展的四位天才黑客
本文網(wǎng)址:http://www.bm7419.com/news40/98440.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站改版品牌網(wǎng)站建設(shè)、定制開發(fā)、網(wǎng)站排名、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)