當前位置: 華文星空 > 知識

為何 Linus 一個人就能寫出這麽強的系統,中國卻做不出來?

2019-11-15知識

林納斯自然不可能寫出那麽強的系統,你眼中的Linux包含著千萬行級別的程式碼,他手指敲斷,也敲不完。

林納斯最偉大之處在於開創了一種軟件開發方式的先河,他調動著全球的黑客為其免費工作而樂在其中,這種合作方式在其後開發的 Git 版本控制軟件中得到了充分體現。事實上,你認為的一個人的工程其實是堪稱全人類歷史上最大規模的合作工程。所以說獲得了這麽大的成就,理所應當。

那林納斯做了什麽?當他是芬蘭赫爾辛基大學一名本科生的時候,他為手裏的一款80386處理器的機器寫了一款程式,他自己說當時僅僅是為了娛樂,直到最後他才意識到自己寫了一款作業系統內核。當他釋出其於網上的時候,獲得了熱烈歡迎。

不過在此之前還有一位極其偉大的前輩,他叫李察·馬修·斯托曼。他為了軟件的自由奉獻一生,他從不用智能電話,他使用的有線電話,他從不用google,即使不得不用,他也會使用朋友賬號,他的筆記本從硬件到軟件都是完全自由的,因此非常古老甚至是古董,他拒絕任何包含非自由軟件的產品,因為「他不想把自己的私密暴露在FBI的屠刀之下」。他就是自由軟件之父,自由軟件基金會的創立者,GNU工程的發起人。他來過幾次中國,不過很遺憾,我那時候沒條件去見識。而他與題主的Linux有啥關系?

Linux全稱應該稱之為GNU/Linux,以此凸顯GNU工程對Linux發展的重要貢獻,但Linux並非GNU工程的一部份,因此兩種稱呼存在分歧。

GNU工程起源於1983年(Linux則於1991釋出第一個版本),它計劃開發出一款完全相容Unix的作業系統。整個工程由外而內,先開發外部套用軟件,再集中精力解決內核問題,套用軟件和內核的關系類似於人所熟知的office軟件和windows系統之間的關系。GNU工程持續到1991年那會,套用軟件已基本開發完畢,只剩下內核問題,不過此時林納斯的Linux內核橫空出世,在負責GNU工程的自由軟件基金會和全球黑客的幫助下,GNU外部套用軟件和Linux內核完美融合,又經歷了數十年的發展,全球技術人員生生不息的貢獻,終於發展成為現在的GNU/Linux。

所以總體來說,題主的Linux並非一人之功,就像之前說的,這是全世界技術愛好者數十年的功勞,規模之大,成就之高可想而知。

那為何中國到現在也沒有完成一個類似的作業系統?

實在是沒必要啊。

第一,國外電腦起步早,對軟件的需求非常旺盛,需求極大刺激了軟件發展。他人栽樹旁人乘涼,人家已經造出來了,國內還有造新類似軟件的需求麽。

第二,GNU/Linux是一款完全自由的作業系統,技術不分國界,在GPL特許下,你可以自由的獲取其源碼,使用,修改,再釋出。這意味著整個系統清澈見底,美國政府已不可能也沒有這個能力在GNU/Linux上使絆子。

第三,這個全人類最大規模的合作工程,除了全人類,我認為已沒有任何一個國家可以靠自己媲美之。

接下來有更深興趣的同學可以額外了解下。

為什麽早於Linux內核的GNU工程在如今的影響力知名度會遠遠弱於Linux?

事實上,在上個世紀八九十年代,李察·斯托曼在軟件界影響力巨大,那個時候也沒有出現開源一詞,而他則是自由軟件唯一的精神領袖,【黑客】一書則稱贊他是最後一個真正的黑客。但是他做事和理念過於極端(至少大部份人看起來如此)。他認為使用非自由軟件是一種不道德的行為,哪怕你為那個專有軟件付費一個願買一個願賣。除此之外,在一些日常工作中,之前和他誌同道合的同事對他的管理風格也頗有微詞。

OSI(開放源碼促進會)首屆主席雷蒙德,也是開源運動聖經【大教堂與集市】的作者,八十年代他在GNU工程中非常活躍,但是在清理 Emacs LISP庫中的程式碼時進行的修改使得里察非常不滿,雷蒙德回憶此事時:「這使我感覺到很沮喪,我再也不想與他合作了。」

與此形成鮮明對比的卻是林納斯,一個是最大開源軟件Linux的領導者,一個是自由軟件運動的精神領袖,兩人被經常相提並論。相比之下,斯托曼的未來願景看起來過於理想(最起碼當前看起來是如此),而林納斯則是一名實用主義者。

林納斯熱愛著開源軟件,但他也是微軟PPT的一名發燒友,他和雷蒙德認為:「在自由軟件的世界中,也許隱藏著一個 PowerPoint 的自由軟件替代品。但是,在黑客們真正開始轉向使用這個軟件前,為什麽要嫉妒微軟開發了這樣一個好用的專有軟件呢?」

林納斯也非常容易與之相處,雷蒙德說:「Linus是個好人,人們都喜歡他並願意幫助他,這(和他的專案成功)不是巧合。」除此之外,雷蒙德還在一次大會上開玩笑:」很有趣的是,如果你發自內心地謙遜,並承認你欠別人很多,你將很快發現世界會這樣對待你:他們認為是你發明了整個軟件,而且你對自己的天賦有著得體的謙虛。我們可以看到這一點在Linus身上體現得有多好!」

這句玩笑話正也可以用以題主的回答。

註:上述的對比並不意味著雷蒙德和斯托曼緊張的私人關系,相反,他們有著數十年的友誼。

林納斯自我總結時,他說自己很懶,能給別人做的就給別人做,自己不感興趣的部份也分給別人做。但是在最終采納他人程式碼的時候他將「不偏不倚」,誰的好用就用誰的,這點他在自傳中強調了多次。

其實對於Linux的最終成功,除了林納斯過人的個人魅力和領導才能之外,一些客觀的因素也不容忽視。

林納斯出生於1969年,比較巧的是,同年互聯網前身阿帕網正式投入執行,於是林納斯和互聯網同時成長,同時成熟。毫無疑問,Internet 對於Linux的合作開發至關重要。其實原始碼共享並且吸收他人的改進的做法早有先例,1976年開始的斯托曼的Emacs便是著名的一例,他稱之為「加入Emacs公社」。不過遺憾的是,這種做法並沒有延申到GNU工程。

這其中的原因我想除了互聯網的不發達之外,一種被雷蒙德稱之為大教堂的軟件開發模式在當時主導軟件開發也是非常關鍵的因素。「大教堂」認為:「如果軟件復雜到作業系統這樣的程度,就必須要有一個精心協作的團隊,團隊要比較小,而且緊密互動。」名稱由來是因為在那個年代,遵循此模式的一些軟件復雜巨大,如「大教堂般宏偉」。

但Linux則從一開始就走完全不同的路線。林納斯在大學時開發出Linux第一個版本,當時的他「一周出門一次,毫無社交經驗,人一多就雙腿哆嗦」,毫無所謂的合作開發與管理經驗,Linux「更像是僅透過互聯網合作的大量誌願者的隨意之作。」在質素方面,更沒有嚴格的標準或一個強有力的機構來管理。

整體上,林納斯的開發風格是「早釋出、常釋出、委托所有能委托的事、開放到幾乎是混亂的程度。」

所以說,在Linux社區裏,沒有建築大教堂那樣的安靜和虔誠,倒更像是一個亂糟糟的大集市,這也正是【大教堂與集市】一書名稱的由來。毫無疑問,雷蒙德在寫這本書的時候,大教堂有暗指FSF(自由軟件基金會),而集市則是指代Linux社區的意思,但其實也並非如此,雷蒙德這本書的目的旨在推廣開源運動,而當時市面上的各種商業軟件公司都可以稱之為大教堂。

不管怎樣,Linux獲得了難以想象的成功,美國雜誌【時代】在「時代100人:本世紀最重要的人物」投票中,作者林納斯位居第17名。

但是Linux的成功並不意味著自由軟件和GNU工程的成功,實際上自由軟件和開源軟件是兩碼事,林納斯對Linux使用的軟件特許協議是GPL(GNU工程的產物),但是他本人則對開源一詞有更大的興趣,但同時他也說過:「對Linux使用GPL授權絕對是我做過的最正確的事」。自由軟件不同於開源軟件,但是軟件自由的前提是開放源碼,斯托曼對此區別說:「自由軟件和開源軟件這兩個說法其實說的幾乎都是同一類軟件,但是它們所秉持的價值觀是根本不同的。開源是一種開發方法論,自由軟件則是一場社會運動。」

相比之下,GNU工程則任重道遠,但並未停止。GNU工程還有自己的內核Hurd正在開發之中,其實自由軟件這場社會運動一天不成功,GNU工程就會持續下去。

什麽是GNU工程?About the GNU Project

GNU系統和Linux的不同Linux and GNU - GNU Project - Free Software Foundation