為何 Linus 一個(gè)人就能寫出這么強(qiáng)的系統(tǒng),中國(guó)卻做不出來(lái)?
為何 Linus 一個(gè)人就能寫出這么強(qiáng)的系統(tǒng),中國(guó)卻做不出來(lái)?
要想回答這個(gè)問(wèn)題,必須得回到Linux誕生之時(shí)去看一看。
1.Linus的技術(shù)
現(xiàn)在能手搓操作系統(tǒng)的人確實(shí)很多,可是如果我們穿越到80年代末,事情就完全不同了。
那個(gè)時(shí)候歐美的人還都忙著攢電腦,在中國(guó),電腦更是只能在機(jī)房才能看到的稀罕物,程序員都很少,更別說(shuō)寫操作系統(tǒng)了。
沒(méi)有Web,沒(méi)有Google,沒(méi)有人教你“30天自制操作系統(tǒng)”,資料極其匱乏,就連Intel CPU的相關(guān)資料都很難找到。
在這種情況下,讓你手搓個(gè)操作系統(tǒng),把匯編、保護(hù)模式、鏈接和裝載、進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、IO管理統(tǒng)統(tǒng)搞定,在一臺(tái)386的機(jī)器上跑起來(lái),難度絕非今日科比。
但是Linus就是在這種情況下,參考了Minix,獨(dú)自開(kāi)發(fā)了一個(gè)操作系統(tǒng)出來(lái)。
毫無(wú)疑問(wèn),Linus是一個(gè)杰出的程序員。
當(dāng)然,他不是一蹴而就的,他是先在自己的386上寫了一個(gè)多線程的程序,然后發(fā)展成了終端模擬器,為了讓終端模擬器開(kāi)機(jī)就能運(yùn)行,從BIOS開(kāi)始,寫引導(dǎo)程序,搞定實(shí)模式和保存模式的切換,后來(lái)為了保存數(shù)據(jù),又添加了磁盤驅(qū)動(dòng),I/O管理......最后赫然發(fā)現(xiàn):自己寫了一個(gè)操作系統(tǒng)。
完整的故事可以看看這篇漫畫《Linux之父:財(cái)務(wù)自由以后,我失眠了!》
此時(shí)中國(guó)第一代程序員的杰出代表是求伯君,嚴(yán)援朝,鮑岳橋等人,我想他們應(yīng)該也有這個(gè)能力搞出來(lái)。
不過(guò)當(dāng)時(shí)有個(gè)非常重要更緊急的任務(wù):讓電腦支持中文,在上面跑中文應(yīng)用軟件。
所以就有了CCDOS, UCDOS, WPS,CCED,沒(méi)人會(huì)想著從頭兒寫個(gè)操作系統(tǒng)。
2.Linus 開(kāi)創(chuàng)了一種開(kāi)發(fā)模式
一般人寫出來(lái)自己玩玩也就算了,Linus卻把它放到了BBS上,廣泛征求意見(jiàn),接受批評(píng)。
他還接受網(wǎng)友提交的改進(jìn)代碼,從而Linux變得更強(qiáng),更好。
在那個(gè)年代,這是一件非常了不起的事情。
Linus先是自己滾了一個(gè)小雪球,然后吆喝說(shuō):快來(lái)了,這里有個(gè)好玩的東西,我們一起玩吧!
在互聯(lián)網(wǎng)的大潮推動(dòng)下,無(wú)數(shù)操作系統(tǒng)的精英都能加入進(jìn)來(lái),把這個(gè)小雪球滾成了一個(gè)大雪球。
無(wú)意之間,Linus 開(kāi)創(chuàng)了一種全新的互聯(lián)網(wǎng)的協(xié)作方式,一種大規(guī)模的開(kāi)源開(kāi)發(fā)方法,他證明,成千上萬(wàn)的人可以為一個(gè)項(xiàng)目做出貢獻(xiàn),這個(gè)項(xiàng)目的商業(yè)價(jià)值不亞于一家公司花費(fèi)數(shù)十億美元做出的產(chǎn)品,這是一項(xiàng)偉大的社會(huì)學(xué)發(fā)明。
作為鮮明對(duì)比的是GNU Hurd。
Richard Stallman于 1983 年 9 月創(chuàng)立了GNU 項(xiàng)目,計(jì)劃創(chuàng)建一個(gè)自由的 GNU操作系統(tǒng)。
如果Richard Stallman能及早地把操作系統(tǒng)給開(kāi)發(fā)出來(lái),估計(jì)沒(méi)有Linux什么事了。
但是GNU Hurd的開(kāi)發(fā)采用了一種“教堂”的模式,是有計(jì)劃地修建而成的,宏偉的黑客精神紀(jì)念碑。
Hurd的開(kāi)發(fā)舉步維艱,Linux都快占領(lǐng)全世界了,它還無(wú)法拿出一個(gè)可以在生產(chǎn)環(huán)境上使用的、穩(wěn)定的系統(tǒng)。
而Linux更像是一個(gè)“嘈雜的大集市”,它是在 Internet 去中心化的松散組織結(jié)構(gòu)中開(kāi)發(fā)出來(lái)的。
Linux的協(xié)作方式,更加適應(yīng)互聯(lián)網(wǎng)時(shí)代。
大集市的開(kāi)發(fā)方式,80年代就已經(jīng)存在,但是規(guī)模都沒(méi)有Linux那么大——僅僅內(nèi)核就有近2萬(wàn)人,算上其他模塊得有數(shù)十萬(wàn)人參與開(kāi)發(fā)。
有了Linux成功的榜樣,像Apache等開(kāi)源軟件如雨后春筍般發(fā)展起來(lái),開(kāi)源開(kāi)始統(tǒng)治世界。
中國(guó)1994年5月17日才正式接入全球互聯(lián)網(wǎng),兩個(gè)月前,Linux 1.0已經(jīng)發(fā)布了。
隨后幾年中國(guó)和全世界類似,都是在Linux內(nèi)核的基礎(chǔ)上搞自己的發(fā)行版,藍(lán)點(diǎn)Linux,紅旗Linux,沖浪Linux,甚至聯(lián)想都弄了一個(gè)幸福Linux,一時(shí)間熱鬧非凡。
這個(gè)時(shí)候Linux已成大勢(shì),中國(guó)不可能從頭兒開(kāi)發(fā)一個(gè)操作系統(tǒng)了。
3.Linus的領(lǐng)導(dǎo)力
Linus是IT界頂級(jí)網(wǎng)紅,表面看,他脾氣暴躁,懟天懟地懟空氣,一眼不和就開(kāi)始噴,fuck,shit之類的詞經(jīng)常出現(xiàn)在郵件列表中,他在Linux 開(kāi)發(fā)環(huán)境中培養(yǎng)了一種辱罵文化。
但是大家想想,一個(gè)有數(shù)十萬(wàn)人參與開(kāi)發(fā)的,2000多萬(wàn)行代碼的操作系統(tǒng),僅僅靠暴躁的脾氣能管理得了嗎?
單靠Linus一個(gè)人,絕對(duì)無(wú)法review那么多的代碼,更不可能合并那么多的請(qǐng)求。
必定有個(gè)強(qiáng)大的核心團(tuán)隊(duì),緊密地圍繞著Linus,一直追隨著他,為L(zhǎng)inux不斷做出貢獻(xiàn)。
Linus養(yǎng)成了一種“無(wú)為而治”的風(fēng)格,把權(quán)力授權(quán)給核心開(kāi)發(fā)小組,放手讓各個(gè)核心去做自己想做的事情,即使出錯(cuò),也讓他們自己去糾正,而不是自己出面。
這種方式非常有效,Linux迅速發(fā)展,每個(gè)與Linux相關(guān)的人都給與他最高的信任。
Linus 被證明是一個(gè)合格的獨(dú)裁者。
他可能很強(qiáng)硬,但他很公平。
他可能固執(zhí)己見(jiàn),但他很少犯錯(cuò)誤。
他可能對(duì)開(kāi)發(fā)人員很苛刻,但他對(duì)用戶很友善。
中國(guó)肯定也有這樣領(lǐng)導(dǎo)特質(zhì)的程序員,但是Linus在恰當(dāng)?shù)臅r(shí)間出現(xiàn)了,可遇而不可求。
最后總結(jié)一下:Linux這么強(qiáng)的操作系統(tǒng),不是Linus一個(gè)人寫出來(lái)的,他在合適的時(shí)間發(fā)起了這個(gè)項(xiàng)目,并且找到了一種有效的開(kāi)發(fā)方式,用卓越的領(lǐng)導(dǎo)能力組織起了幾十萬(wàn)人的協(xié)作開(kāi)發(fā),最終發(fā)展成了全世界最流行的操作系統(tǒng)。
現(xiàn)在想復(fù)制Linux的成功幾乎不可能了,也沒(méi)有必要了,基于開(kāi)源的Linux做開(kāi)發(fā)多好!