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