<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為何 Linus 一個人就能寫出這么強的系統(tǒng),中國卻做不出來?

          共 3759字,需瀏覽 8分鐘

           ·

          2023-03-11 12:12

          作者:默默默默默 

          原文鏈接:https://www.zhihu.com/question/63187737/answer/1415937231

          cxuan 在之前就寫過類似的文章,來源于一個跨界大佬給我推薦了一下 Linus 的自傳《Just For Fun》,這本書讀起來有如王小波一樣的灑脫,洋洋灑灑、輕描淡寫的就把故事給寫明白了,雖無太多華麗的文筆和辭藻,但是句句讀完就想讓人說一句:"寫的真 TM 的精辟",這可能就是大佬吧,他的每一句話琢磨起來都像是讓你仿佛置身于 DOS 命令窗口下,你覺得他簡單,它就真的簡單;你覺得他難,他也可以是萬丈深淵。

          這是之前我寫的文章:

          李納斯是個怎樣的人?

          下面是原作者回答:


          你看Linus自傳就完事了。

          Linus研究生時期開始寫操作系統(tǒng)(大約是91年),那時候個人電腦(PC)雖然興起一些年了,但是還只是小部分程序員和狂熱愛好者的玩具。硬件基本上都靠自己攢,軟件也是用開源系統(tǒng)各種魔改。所以普通人根本沒有折騰PC的動力和理由。

          Unix已經(jīng)霸占了許多生產(chǎn)力場景,唯一的缺點就是貴,而且很多發(fā)行版是閉源的。個人用戶根本不要考慮。

          那時候Linus自己攢了一套386,但是找不到好用,廉價/免費的操作系統(tǒng)用。當(dāng)時社區(qū)里當(dāng)然也有一票免費且開源的系統(tǒng),但是要不就是兼容性差,要不就是各種坑,要不就是沒軟件,總之各種各樣的問題。而兼容性是最主要的問題,那時候的CPU不像現(xiàn)在的流行架構(gòu)就那么兩種(x86,Arm),那時候叫的上名的架構(gòu)有十幾種,所以操作系統(tǒng)的兼容性是非常重要的。

          Linus開始自學(xué)操作系統(tǒng),發(fā)現(xiàn)了一本很好的教材《操作系統(tǒng):設(shè)計與實現(xiàn)》,然后花了一個暑假看完,開始自己寫操作系統(tǒng)。

          《操作系統(tǒng):設(shè)計與實現(xiàn)》這本書的作者是塔雷鮑姆,寫書的時候已經(jīng)是業(yè)界大牛了,他在大學(xué)為了教學(xué)操作系統(tǒng),但苦于學(xué)生買不起太貴的Unix發(fā)行版,于是自己寫了一個兼容Unix標(biāo)準(zhǔn)操作系統(tǒng)(主要是兼容POSIX標(biāo)準(zhǔn)),叫Minix(名字上就很對仗,[Universe - mini])。

          Minix這個系統(tǒng)就是為了教學(xué)而生的,只要買了這本書,就免費郵寄一份Minix源代碼。Minix為了方便教學(xué),保持代碼的簡潔,塔雷鮑姆拒絕向里面添加太多復(fù)雜的功能,。所以Minix雖然實現(xiàn)得優(yōu)雅,但是社區(qū)的玩家要自己日常用,要魔改很多東西。

          對了,Minix是微內(nèi)核的。對,微內(nèi)核的概念存在幾十年了,而不是2019年誕生的。

          微內(nèi)核的結(jié)構(gòu)非常優(yōu)雅,文件系統(tǒng),內(nèi)存管理,硬件驅(qū)動都是以進程形式存在的,而不是內(nèi)核代碼,這意味著驅(qū)動掛了不會帶著內(nèi)核一起掛。缺點就是系統(tǒng)調(diào)用開銷太大,以至于慢到無法接受。所以現(xiàn)在的桌面系統(tǒng),沒有純微內(nèi)核的。

          對于教學(xué)系統(tǒng)來說,微內(nèi)核不是問題,畢竟是教學(xué),不是生產(chǎn)工具。

          社區(qū)和Linus都很喜歡Minix,但是都不滿足于Minix作者因為教學(xué)目的而放棄兼容性和可擴展性。于是Linus在自己運行Minix的PC開始了Linux的開發(fā)。Linux是宏內(nèi)核的。Linux本來不叫Linux,Linus是一個很內(nèi)向的人,不好意思取這么自戀的名字,但是合作者強烈建議用這個名字,所以就用了,x代表unix的聯(lián)系(都兼容POSIX)。提一句,Unix不是為開源和免費而生的,而是為商業(yè)而生的,但是Unix的發(fā)展催生了最好的開源環(huán)境(比如GNU)。

          注意,這幾年的社區(qū),屬于『軍閥混戰(zhàn)』,大家都缺一款好用的免費操作系統(tǒng),但并不只是Linus想到要解決這個問題,理查德斯托曼領(lǐng)導(dǎo)的GNU組織在90年代就一直醞釀一款免費的操作系統(tǒng),因為他們的目的是與商業(yè)的Unix對抗,光有一個GCC編譯器還不夠,還需要有自己的操作系統(tǒng)。

          社區(qū)里各種技術(shù)人員也對GNU的操作系統(tǒng)非常期待,但是這玩意兒難產(chǎn)了。直到很久之后,Linux流行起來后,依然沒做出來。

          最開始的Linux版本,只有幾千行代碼,現(xiàn)在基礎(chǔ)扎實的CS本科生,花一段時間都可以看懂,甚至有些OS教材就是用Linux最初的版本來教學(xué)的,比如哈工大李志軍的課程。

          Linus從一開始就不斷在minix論壇上發(fā)布自己的進展,搞得論壇上一堆人非常感興趣,于是許多人加入了開發(fā),這時候Linus用郵件接收每個人的代碼,然后手動合并。沒過一段時間,minix論壇上就全是討論Linux的了,雖然塔雷鮑姆不是個小氣的人,但是這么搞也讓塔雷鮑姆很不爽。

          不久之后Linus和塔雷鮑姆之間爆發(fā)了一次沖突。塔雷鮑姆在論壇上寫了一篇文章,論證微內(nèi)核與宏內(nèi)核的優(yōu)缺點,其實主要是攻擊宏內(nèi)核,說宏內(nèi)核除了性能好點,全是缺點,說Linux過時了。Linus是脾氣暴躁的人,在技術(shù)問題上從不妥協(xié)。于是開始嘲諷minix。Linux的可移植性比minix更好,而且免費開源(minix需要買書后獲得)。

          然后來來去去吵了很多次,具體可以看

          https://www.oreilly.com/openbook/opensources/book/appa.htmlwww.oreilly.com/openbook/opensources/book/appa.html

          只是他們兩個當(dāng)時誰也沒想到,這次論壇上的口水戰(zhàn)會成為幾十年后人們依然提起的操作系統(tǒng)之爭。

          Linus并不恨塔雷鮑姆,他說后來有一次去了塔雷鮑姆的演講,完了之后拿著那本書想要塔雷鮑姆的簽名,但是沒有等到人。

          我想Linus多少還是尊敬他的,畢竟是自己學(xué)習(xí)操作系統(tǒng)的領(lǐng)路人。

          在Linus和社區(qū)人員的努力下,通過擴展GCC支持Linux,Linux也兼容了越來越多的平臺。其他各類軟件移植到Linux也就變得容易了,尤其是在那個許多軟件以源代碼方式發(fā)行的時代,只要有對應(yīng)平臺的編譯器,編譯一次就算移植好了。

          趕上PC發(fā)展的浪潮,但還不夠,畢竟蘋果微軟不是好對付的,商業(yè)操作系統(tǒng)的易用性依然很強。

          但是Linux開始被各類企業(yè)青睞了,因為不是每個企業(yè)都有錢花高價買一套Unix來用,或者是更貴的軟件+硬件一體的大型機來用。Linux讓他們看到了省錢的希望。

          GNU開始支持Linux,Linux成為了GNU的官方操作系統(tǒng),所以現(xiàn)在叫GNU/Linux。可以說Linux和GCC幾乎是最偉大的兩個開源項目。它們合起來就更強悍了。

          GCC讓軟件方便移植,Linux軟件生態(tài)就好了,軟件生態(tài)好了用戶就多,用戶多了就讓硬件公司眼饞,各路硬件公司都為Linux開發(fā)驅(qū)動和各種擴展,以支持自家硬件,這樣用戶就更多。這個倍增效應(yīng)是很強的。

          Linus在項目達到一定規(guī)模后就不再親自寫代碼了,主要是合并代碼,畢竟全球那么多人提交代碼,他一個人審核合并就夠忙了,親自寫代碼也沒時間。

          直到有一天他覺得忙不過來了,審核代碼會遇到很多傻逼代碼和開發(fā)者,于是他開發(fā)了現(xiàn)在最流行的版本控制工具,git,字面意思就是飯桶。

          從整個發(fā)展歷程來看,Linux在幾個十字路口都做了非常精準(zhǔn)的選擇。

          從1991年0.0.1版到1994年1.0版,這期間Linux進行了極其快速的迭代,社區(qū)玩家在使用中給出了寶貴的意見,最好的測試就是讓用戶去測試,這保證所有的更新都是實際有效的。

          要知道,Linus在1991年開始開發(fā)時,根本沒想過Linux有一天能改變世界,那個時候,他跟所有的社區(qū)玩家一樣,期待著GNU的系統(tǒng),所以他在論壇上解釋,做Linux只是一個業(yè)余愛好,最多用來填補GNU系統(tǒng)出來之前的這段空白時間。

          但GNU由于各種名譽加身,導(dǎo)致目標(biāo)定得很高,于是項目一直延期,同時市面上的系統(tǒng)也在發(fā)展,GNU又繼續(xù)調(diào)高目標(biāo),然后繼續(xù)延期,最后難產(chǎn)。

          而Linus從一開始,就沒什么心理壓力,每一點成果都在社區(qū)上公布,快速獲得反饋,然后及時調(diào)整。這種開發(fā)方式無意中就超越了GNU的閉門造車。

          RedHat這種系統(tǒng)免費,服務(wù)收費的模式也取得了成功,這大大激勵了其他發(fā)行版開發(fā)商的信心。目前Linux的發(fā)行版,至少幾百個吧。

          96年2.0版發(fā)布,開始支持多核CPU,這個重要的更新,讓很多企業(yè)開始考慮Linux。

          之后幾年Linux在服務(wù)器的份額快速上升。

          03年2.6版發(fā)布,稍微了解過Linux的人都只要這意味著什么。2.6版本跨越03年-11年,中間有許多小版本更新。2.6版意味著Linux第一次成為真正具有了高穩(wěn)定性,高可用性,高可伸縮性的工業(yè)級別操作系統(tǒng)。

          05年git誕生,Linus和核心團隊摸也索出一套穩(wěn)定實用的合作開發(fā)方式。

          之后就是遍地開花的發(fā)展歷程了。

          不得不說,他對操作系統(tǒng)發(fā)展方向的把控是精準(zhǔn)的。

          總結(jié)一下,Linux的成功,以下幾個條件必不可少:

          1. Linus強大的開發(fā)能力
          2. Linus的項目管理能力
          3. Linus對操作系統(tǒng)發(fā)展方向的把控
          4. 一個群雄割據(jù),缺乏免費好用的操作系統(tǒng)的時代。
          5. 一個不僅群雄割據(jù),缺乏免費好用的操作系統(tǒng),而且程序語言,操作系統(tǒng)理論,編譯器技術(shù)發(fā)展到一定程度,個人PC持續(xù)發(fā)展的時代。
          6. GNU的系統(tǒng)沒做出來
          7. Minix死守著『教育』不放
          8. GNU的支持
          9. 全世界硬件廠商的支持
          10. 全世界軟件廠商的支持
          11. 全世界開源開發(fā)者的巨大貢獻

          再總結(jié)一下,一個人的命運,當(dāng)然要靠自我奮斗,但也要考慮到歷史的進程。



           往期推薦 

          多個段的程序

          卷起來?

          簡單聊聊什么是段

          我是如何看待 ChatGPT 的?

          Git 就是這么簡單!

          瀏覽 38
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色青青草视频 | 色婷婷五月天在线观看 | 久久高清免费视频 | 色情 视频网站入口第一集 | 成人精品一区日本无码网站suv |