為何 Linus 一個人就能寫出這麼強的系統,中國舉全國之力都做不出來?


說實話,是你想多了……

Linus確實在Linux的內核開發上做了很多工作,諸如項目發起,最初版內核的設計等等,但是你如今拿到手的任何一個Linux發行版中,包含了至少上百個GNU項目,以及數十萬人貢獻的代碼。這裡所言道的Linux,是指GNU/Linux這個內核,而內核這玩意不包括任何應用層,甚至那個黑框框命令行都並不是Linux的一部分。內核暴露的是硬體到軟體的抽象、任務和資源調度,給出的是調用系統的編程介面,僅此而已。

Linus所做的1991年的第一版內核有些什麼功能呢?簡單的說,是這樣的:

一個有著硬體平台限制,能夠運行起來的,與當時便不是特別熱門的叫做Minix的操作系統內核大部分功能兼容的內核。

要說能力,那是非常強的,因為二十多年後的今天的大學生們即使上了操作系統課程做大作業要寫個OS內核,通常也不會做得多全面,更不提完全兼容某標準(當然更可能是因為沒有做那麼精細的需求)。但若只是如此,Linux也就止步於「優秀的大學生課程作業」水平了。

真正有意義的是他把Linux扔網上與社區協作開發(後來加上了GPL協議),而後在2年之內有超過百人折騰這個內核。而在當時的商用環境普遍使用Unix而主要發行版的Unix都貴破天際的情況下,在4年後終於有人覺得這個開源內核加上GNU工具能夠起到替代部分Unix節省成本,才真正意義上火起來的。而彼時已經有上千人參與內核的開發,其中甚至有大批RH等公司的專職僱員。

沒錯,就這麼個內核,沒有任何人機交互,僅僅提供軟體運行環境的玩意,儘管最初雛形是Linus的作品,四年後已經是數千名對操作系統有研究的程序員共同開發的產物了。而這只是一個現有的Linux發行版中佔比重很小的一部分(儘管很重要),可以交互的命令行環境bash來自於GNU,圖形界面Gnome來自於GNU,聲音服務來自於GNU,顯示服務來自於GNU……連編譯器都來自於GNU,而這些東西,Linus幾乎都沒有參與。

他是大神,是Linux之父,但是說Linux,尤其是現在廣泛使用的功能完整的Linux是他一個人開發的這種事情,是不存在的。


Linux 是模式的勝利。

你以為舉全國之力很 NB?

可是想沒想過, Linux 其實是舉全世界之力寫出的系統?

.

Open-source

Open-source 的研發模式,讓「舉全世界之力」成為可能,而非 Linus 的個人英雄主義。沒有 Open-source 的開發模式, Linus 再 NB 也不可能構築出能影響全世界的系統。

.

眾包

Linux 內核不同版本,每個開發者的平均代碼貢獻,其實也就是一萬條左右( Linux 今天已經超過 2000 萬行代碼了)。

Open-source , git( Linus 自己弄的,說明他對眾包研發的新模式有多麼的清晰) ,github,Community ,Foundation 等等一整套關於 Open-source 的研發方法論,工具和組織方式的齊備,才讓 Linus 這個英雄,可以調動全世界的開發者,真正呼風喚雨。

.

理想

當然,模式的創新,也必須伴隨理念的傳播。早期 Linux ,還是全球範圍內的無報酬的非商業程序員在做貢獻。

.

商業
但是理想主義是不可長久的。今天 Linux 發展的主要推動力量,變成了一些通過 Linux 成功構建了生意的公司。包括紅帽, Intel , Google 等等,不乏全球頂級科技公司。

.

最後的話

所以簡單來看, Linux 能成,

首先需要全新的模式和匹配的方法,工具和組織。

其次需要 Linus 這種大神的英雄主義和無數追隨者理想主義的無私奉獻。

然後需要商業利益的助推。

最終,促成一個真正能深刻影響世界的結果。

而整個的過程,也伴隨著不同理念的爭論和妥協,比如商業化和反商業化等等。

.

你覺得,舉全國之力什麼都能幹成。。。

你有深刻洞見軟體研發精髓所選擇的開源模式嗎?

你有匹配的但是創新的方法論,工具和組織嗎?

你有構築理想主義驅動力的能力嗎?

你有探索商業模式最終實現長久盈利的商業冒險基因嗎?

你有爭論但是又尋求共贏的妥協精神嗎?

這是智力,理念和價值觀的差距。

不排除你今天舉全國之力,能重寫一個 Linux 。。。但是有這這種智力,理念和價值觀的 Community ,而與此同時。。。

又在搞些什麼呢?


計算機民科三大經典問題:
1,中國為什麼做不出自己的處理器
2,中國為什麼做不出自己的操作系統
3,為什麼沒有中文編程語言
隔三差五就會有人問,解釋多少次也沒用的。


因為你搞錯了。

Linus寫的是Linux內核,不是Linux操作系統。題目錯了,沒有討論價值。


Github上 Linux 貢獻者數量是∞


Linus嗎?
你這個認知是有問題的,Linux系統最初是由Linus開發,但是代碼量和現在的Linux比較算得上極少量的了,Linux的發展是很多公司、個人、社區的共同維護與完善。
我個人覺得並不是中國人完成不了,而是已經有了Linux這樣的優秀的輪子,就沒必要費時費力的重造輪子,況且即使中國有人以新的設計思想設計了新的操作系統,不見得就比現有的Linux優秀,開銷巨大,中國的國情與社會資源決定了很難有企業不圖利益開展這種基礎研究。國家有國產操作系統相關經費,記得前幾年的確有一款國產操作系統(名字忘記),最後曝光出來內核代碼與linux高度相似,如今的ubuntu kylin也是加個UI,然後定製些軟體。

不是中國人笨開發不了,而是性價比太低,開發出來的操作系統不一定被市場接受。其實還有一點,操作系統是一個軟體生態,還有許許多多相關的配套資源,比如軟硬體、協議、規範需要開展工作,這個生態是很難建立的。就比如你有android系統,但是沒有軟體來使用,這沒有競爭力


Linus也沒有很多人說的這麼不堪,他主要幹了兩件事情:

一是這個操作系統最初的作者,並且貢獻給了開源社區。Linus本人的編程水平,和對操作系統內核的理解絕對是大神級別的。另外關鍵的是黑客精神十足,舉個栗子,對版本管理軟體不滿意自己轉頭去寫了Git.

二是開源社區的管理者和維護者。Linus本人團結了一群高水平的貢獻者。用他自己的話說叫「Network of Trust」。所以Linux一直能跟上時代,不斷加入新技術。這一點其實是很不容易的,尤其是這些頂尖的System Hacker好多都是個性強烈,脾氣比天大。Linus本人雖然脾氣不太好,經常跟人在網路上對噴,但是有個優點,基本上能做到對事不對人,所以Linux形成了一個健康的開源社區。

所以,舉「全國之力」?中國高水平的程序員有美國歐洲願意貢獻給開源的高水平程序員加上IBM, Redhat, Intel 拿著工資給Linux貢獻代碼的程序員多嗎? 注意是高水平程序員。

舉全國之力能建立起Linux一樣的Ecosystem嗎?讓所有的硬體廠商給你寫driver, 讓所有的軟體開發者把軟體移植到你新造的輪子上嗎?


  • 首先,最重要的,人家開始得早。你現在就算真的搞出一個一樣牛逼的,那憑什麼別人去花費更換平台的消耗?
  • 而且Linus只是創始人,後面主要是作為組織的管理者、技術的決策者。你這個看法就跟感覺公司只有老闆一個人幹活一樣。
  • 而且Linus的Linux只是操作系統內核,外圍的東西主要是GNU基金會,這是兩塊。

總之,你所有的概念都沒理解對。


先問是不是,再問對不對,再問好不好,再問蠢不蠢

看看我從我乎截的圖


我覺得得這麼答:

1. 1969年,貝爾實驗室的Ken Thompson和Dennis Ritchie等人寫了個操作系統,叫做UNIX。UNIX最初是用彙編和B語言混合寫成的。(兩位大神為了改進UNIX又發明了C語言,之後用C語言完全重寫了UNIX。)

2. 最初的UNIX發展成了SystemV, 同時分出了BSD和SunOS(後來成為Solaris)等。從BSD又分出了386BSD、NetBSD、FreeBSD。還有一個NEXTSTEP是MacOS的前身。

3. 早期的UNIX都是專有系統,1983年另一位大神Richard Stallman發起了GNU計劃,目標是創建一個完全自由的操作系統。到了1990年,Richard Stallman親自/帶領其他大神們先後完成了大部分重要組件,比如gcc、make、bash等(現在還能在comm rm ls split diff cat tee make等命令的man page里看到Stallman的簽名),以及Stallman更早些時候寫了編輯器emacs,就差一個操作系統內核了。

4. 本來GNU計劃中的內核是Hurd(實際還不是底層,底層是Mach或L4),但是一直不太順利。Linux內核的出現可以說是不早不晚正合適,它和GNU的大部分組件結合,才是我們一般所謂的Linux。

總之,如果沒有Linus,我們今天用到的Linux在用戶層面上不會有太大變化,不過名字肯定不一樣了。


據不完全統計,Linux平均每天修改100k行代碼,增加10k行代碼,刪除8k行代碼,你真以為Linus是神仙嗎?


看到舉國之力我就笑了…


你哪裡看到「舉國之力」了?

國內除了軍方會弄自己的系統之外,你看到國內哪個公司在弄了?

沒必要也沒錢途。要真不夠用,自己拿Linux改一改不就行了。

再說,人家Linux才是貨真價實的"舉世之力"。

別有事沒事就把中國拉出來批一頓。


Linus寫的是Linux內核,不是全部Linux系統。

不過話說回來……

為何Linus一個人寫出這麼強的內核,英國舉全國之力也做不出來?

為何Linus一個人寫出這麼強的內核,日本舉全國之力也做不出來?

為何Linus一個人寫出這麼強的內核,印度舉全國之力也做不出來?

……


作為一個學計算機的,Linux不是Linus一個人寫的,是常識


linus當初是個學生的時候寫的那個linux也確實就是個優秀學生作業水平,代碼質量並不很高,設計也並不成熟,可以看看http://oldlinux.org。
但是他開源出來並允許大家修改貢獻代碼,獲得大量開發者追捧。那時的minix不允許修改,bsd正陷入訴訟,linux在開源社區支持下快速發展起來。


從國產操作系統研發人員的角度看,Linux有啥強的啊,Linus買了一台打折的顯示器都要發推特慶祝。

研發國產系統的倪光南等人,誰看得上這麼點錢的。


來來來。作為組織主場和it主場的。另一種方式給小粉紅真右派解釋下。。。。

你看:為什麼中國都能造太空梭了。搞各種高科技了。為什麼平常用的最多的操作系統不能擼一個出來?

是的。正是中國現在擼不出來的操作系統代表的是社會主義先進。更不要說比某些國家資本主義了。
當然我國的國家壟斷資本主義還是比某些國家的壟斷等死資本主義優秀。

為什麼說是社會主義。一大堆優秀的程序員。不為利不為名。無私奉獻。就為構建一個優秀的軟體而努力。同樣這個優秀的軟體無償的反饋給社區了。

這不算共產主義,算社會主義算什麼?
資本經濟學可是第一章就假定個體都是理性和自私的。

那麼舉國家之力肯定搞不贏舉社會之力的。。這是要明確的。當然某些操作系統反動公司某軟一時爽。不現在也在被市場清算然後擁抱開源了嗎。

再造個某軟?你傻啊


Linus 現在的工作是合併開源社區從世界各地提交的內核代碼。


Linux是舉全世界之力


我給你舉個特別特別不恰當的例子:中國舉國之力能不能選個像樣的足球隊出來?有的時候並不是人多就能搞定不是?

另外就是輪子已經有了,拿來用就行了,源代碼都給你了,非得自己從頭寫一個?


推薦閱讀:

TAG:操作系統 | Linux | 軟體工程 | 計算機科學 |