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