如果我實現了自己的OS,我算開發者中的精英嗎?

發表於2015-07-29

相信有很多Linux愛好者心中都懷有編出一個自己的作業系統的理想,一位外國網友在quora上提出了這個問題。本期#linuxstory 說#節目翻譯節選了一個令人啟迪的回答,讓我們從另一個角度思考個人重新發明輪子的意義。以下是網友的答案:

簡單粗暴的回答是:當然!你絕對成為了一個不為人知,極為小眾的一類開發者。儘管這些開發者掌握了開發作業系統的能力與知識,但99.9999%的普通人類是不關心你的創舉的。如果你還是覺得這樣的事實讓你開心,不要猶豫,放手去做吧。

從頭寫一個OS是一項艱鉅的事業。我用從頭組裝一輛汽車來比喻從零編寫OS。要組裝一輛車,你只需要買到所有能買到的零件,除此以外需要做的就是將這些零件組裝起來。

carparts~1

現在,你組裝完成一輛可以跑起來的汽車,你迫不及待的向周圍人炫耀你的成就,一下就是不同人的反應:

第一類,普通人類,括號,不懂汽車設計和機械工程的人類,他會說,好棒的車,你自己組裝的嗎?真牛逼!

第二類,你極客圈裡的朋友,括號,碰巧也是汽車改裝愛好者,他們對你的創舉真正表現出狂熱的興趣。他們會不停詢問你選的什麼配件呀,那裡應該怎麼組裝啊,然後你就在這個圈子裡贏得了聲望,自尊心得到極大地滿足。

第三類,汽車工程師精英工程師,括號,已經設計了多輛汽車,他會說“歡迎來到俱樂部,讓我們一起分享造車的點子和秘訣吧”。對,你將會成為這個造車俱樂部中一員,可是你還想組裝多少車呢?有時買一輛車比自己組裝便宜多了回到軟體工程上來,你編寫了自己的作業系統,多麼偉大的創舉,讓複雜系統執行起來使你得到個人滿足,你感覺自己簡直站在世界的巔峰。

好,我們看看你有哪些得與失。

  • 得:獲得了對資料結構、程式排程、上下文切換、執行緒、記憶體管理、資源分享、裝置驅動等等一系列核心概念最紮實的理解,期間獲得極大地幸福感,以及向他人吹噓的話語權。
  • 失:你花費了太多太多的時間讓你的系統正確跑起來。在這個時代,這個系統除了你沒有人在乎,沒有人會使用它,沒有實際的應用程式,沒有實際的用途,只有你唯一一個開發者兼維護者。非常小的機會你會憑著你的系統與Linus Torvalds見面,括號,非常不幸,實現中沒有OS作者俱樂部!

所以,缺點是大於優點的。確實你從中學到了很多開發複雜軟體的知識與技巧(但很可能在實際中不會再遇到),但收益也僅限於此。你的這些知識會在你追求你的事業或者啟動你自己的公司時成為優勢,但是你知道嗎?其實你並不需要透過寫OS來得到它。

如果你真的希望自己寫一個OS,首先你要問問自己到底是OS的哪一個部分讓你著迷? 你真的要自己完全實現一個記憶體管理器?或者你對排程感興趣,也許是排程感興趣?你可以試試一些模擬器幫助你學習和理解這些東西。

每次你對一個需要巨大工作量的任務抱有興趣時候,我都建議你嘗試從經濟角度評判一下意義。經常問問自己做這個的價值是什麼,你可以開始著手來設計自己的OS,如果你已經得到你想要的東西,要懂得適時的放手。你也許不需要自己碼程式碼來獲得作業系統如何執行的知識,透過一些經典的參考書你也可以獲得同樣的知識以及與相同程度的樂趣。

華華聯想到目前很多專家教授都在吹鼓國產作業系統,從個人角度來講,我們其實沒有必要重複發明輪子,從國家層面來說,也更應該從經濟角度思考國產輪子真的有必要嗎?為什麼不把有限的資金投入到使用開源輪子的國產發動機上呢?

相關文章