如果我實現(xiàn)了自己的OS,我算開發(fā)者中的精英嗎?
相信有很多Linux愛好者心中都懷有編出一個自己的操作系統(tǒng)的理想,一位外國網(wǎng)友在quora上提出了這個問題。本期#linuxstory 說#節(jié)目翻譯節(jié)選了一個令人啟迪的回答,讓我們從另一個角度思考個人重新發(fā)明輪子的意義。以下是網(wǎng)友的答案:
簡單粗暴的回答是:當(dāng)然!你絕對成為了一個不為人知,極為小眾的一類開發(fā)者。盡管這些開發(fā)者掌握了開發(fā)操作系統(tǒng)的能力與知識,但99.9999%的普通人類是不關(guān)心你的創(chuàng)舉的。如果你還是覺得這樣的事實讓你開心,不要猶豫,放手去做吧。
從頭寫一個OS是一項艱巨的事業(yè)。我用從頭組裝一輛汽車來比喻從零編寫OS。要組裝一輛車,你只需要買到所有能買到的零件,除此以外需要做的就是將這些零件組裝起來。
carparts~1
現(xiàn)在,你組裝完成一輛可以跑起來的汽車,你迫不及待的向周圍人炫耀你的成就,一下就是不同人的反應(yīng):
***類,普通人類,括號,不懂汽車設(shè)計和機械工程的人類,他會說,好棒的車,你自己組裝的嗎?真牛逼!
第二類,你極客圈里的朋友,括號,碰巧也是汽車改裝愛好者,他們對你的創(chuàng)舉真正表現(xiàn)出狂熱的興趣。他們會不停詢問你選的什么配件呀,那里應(yīng)該怎么組裝啊,然后你就在這個圈子里贏得了聲望,自尊心得到極大地滿足。
第三類,汽車工程師精英工程師,括號,已經(jīng)設(shè)計了多輛汽車,他會說“歡迎來到俱樂部,讓我們一起分享造車的點子和秘訣吧”。對,你將會成為這個造車 俱樂部中一員,可是你還想組裝多少車呢?有時買一輛車比自己組裝便宜多了回到軟件工程上來,你編寫了自己的操作系統(tǒng),多么偉大的創(chuàng)舉,讓復(fù)雜系統(tǒng)運行起來 使你得到個人滿足,你感覺自己簡直站在世界的***。
好,我們看看你有哪些得與失。
- 得:獲得了對數(shù)據(jù)結(jié)構(gòu)、進程調(diào)度、上下文切換、線程、內(nèi)存管理、資源分享、設(shè)備驅(qū)動等等一系列內(nèi)核概念最扎實的理解,期間獲得極大地幸福感,以及向他人吹噓的話語權(quán)。
- 失:你花費了太多太多的時間讓你的系統(tǒng)正確跑起來。在這個時代,這個系統(tǒng)除了你沒有人在乎,沒有人會使用它,沒有實際的應(yīng)用程序,沒有實際的用 途,只有你唯一一個開發(fā)者兼維護者。非常小的機會你會憑著你的系統(tǒng)與Linus Torvalds見面,括號,非常不幸,實現(xiàn)中沒有OS作者俱樂部!
所以,缺點是大于優(yōu)點的。確實你從中學(xué)到了很多開發(fā)復(fù)雜軟件的知識與技巧(但很可能在實際中不會再遇到),但收益也僅限于此。你的這些知識會在你追求你的事業(yè)或者啟動你自己的公司時成為優(yōu)勢,但是你知道嗎?其實你并不需要通過寫OS來得到它。
如果你真的希望自己寫一個OS,首先你要問問自己到底是OS的哪一個部分讓你著迷? 你真的要自己完全實現(xiàn)一個內(nèi)存管理器?或者你對調(diào)度感興趣,也許是調(diào)度感興趣?你可以試試一些仿真器幫助你學(xué)習(xí)和理解這些東西。
每次你對一個需要巨大工作量的任務(wù)抱有興趣時候,我都建議你嘗試從經(jīng)濟角度評判一下意義。經(jīng)常問問自己做這個的價值是什么,你可以開始著手來設(shè)計自 己的OS,如果你已經(jīng)得到你想要的東西,要懂得適時的放手。你也許不需要自己碼代碼來獲得操作系統(tǒng)如何運行的知識,通過一些經(jīng)典的參考書你也可以獲得同樣 的知識以及與相同程度的樂趣。
華華聯(lián)想到目前很多專家教授都在吹鼓國產(chǎn)操作系統(tǒng),從個人角度來講,我們其實沒有必要重復(fù)發(fā)明輪子,從國家層面來說,也更應(yīng)該從經(jīng)濟角度思考國產(chǎn)輪子真的有必要嗎?為什么不把有限的資金投入到使用開源輪子的國產(chǎn)發(fā)動機上呢?