你也能从零开发一个五脏俱全的操作系统你也能从零开发一个五脏俱全的操作系统吗
說(shuō)起操作系統(tǒng),大家都覺(jué)得是一個(gè)龐大的工程,超級(jí)復(fù)雜,可望而不可即。現(xiàn)在我們有一個(gè)大膽的想法,一個(gè)人能不能從第一行代碼碼起,開(kāi)發(fā)一個(gè)五臟俱全的操作系統(tǒng)呢?答案是肯定的,而且這個(gè)操作系統(tǒng)具體商用操作系統(tǒng)的所有主要功能(當(dāng)然達(dá)不到商業(yè)操作系統(tǒng)的全部功能了)。
我們知道商業(yè)操作系統(tǒng)或者開(kāi)源的Linux操作系統(tǒng)多的千萬(wàn)行甚至億行代碼,規(guī)模之大,讓人無(wú)法想象。微軟Windows開(kāi)發(fā)團(tuán)隊(duì)多達(dá)幾千人,而Linux內(nèi)核參與的開(kāi)發(fā)人員也在千級(jí)別。我們當(dāng)然不是要開(kāi)發(fā)一個(gè)這么大規(guī)模的操作系統(tǒng),我們的目標(biāo)是開(kāi)發(fā)一個(gè)具備多進(jìn)程及調(diào)度、內(nèi)存管理、文件系統(tǒng)和中斷管理等功能的操作系統(tǒng)。這個(gè)已經(jīng)具備操作系統(tǒng)的核心功能了。
其實(shí)有很多種方法可以完成上述任務(wù),而且這些方法是實(shí)操類的,只要按照操作,就可以開(kāi)發(fā)出一個(gè)微型操作系統(tǒng)。另外需要說(shuō)明的一點(diǎn)是,這些方法與Linux內(nèi)核講解類的是不同的。后者只能讓你理解Linux內(nèi)核的實(shí)現(xiàn),而本文介紹的方法則可以讓你從頭開(kāi)發(fā)一個(gè)文件系統(tǒng)。下面我們?cè)谶@一一道來(lái)。
操作系統(tǒng)-真象還原
這本書(shū)的名字很貼切,操作系統(tǒng)真的是一頭大象,如果不能看到全貌,就會(huì)有盲人摸象的感覺(jué)。本書(shū)以此名為切入點(diǎn),帶領(lǐng)我們從不同的角度理解操作系統(tǒng)的每個(gè)方面,每個(gè)細(xì)節(jié)。
圖1圖書(shū)封面
本書(shū)開(kāi)發(fā)的每一部分都可以在bochs虛擬機(jī)上面運(yùn)行。從最簡(jiǎn)單的十幾行代碼開(kāi)始,一直到幾千行代碼的完整操作系統(tǒng),每個(gè)實(shí)例都可以編譯運(yùn)行在bochs虛擬機(jī)。最終,本書(shū)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單但完整的操作系統(tǒng),實(shí)現(xiàn)的內(nèi)容包括:MBR,loader,內(nèi)存管理,中斷管理,文件管理,系統(tǒng)調(diào)用,多進(jìn)程切換(內(nèi)核以及用戶態(tài))等內(nèi)容。
客觀的說(shuō),本書(shū)完全從實(shí)踐出發(fā),基本上可以說(shuō)是手把手,把代碼一行行列出來(lái),講解得清清楚楚。本書(shū)另外一個(gè)特點(diǎn)是本書(shū)配套所有代碼都可以找到,因此我們可以安裝作者的思路進(jìn)行編譯和練習(xí)。
Xv6操作系統(tǒng)
Xv6是由麻省理工學(xué)院(MIT)為操作系統(tǒng)工程的課程開(kāi)發(fā)的一個(gè)教學(xué)目的的操作系統(tǒng)。Xv6是在x86處理器上用ANSI標(biāo)準(zhǔn)C重新實(shí)現(xiàn)的Unix第六版(Unix V6,通常直接被稱為V6)。該操作系統(tǒng)不僅僅有源代碼,而且有配套的電子書(shū)和教學(xué)視頻。如下是電子書(shū)的目錄,具體內(nèi)容電子書(shū)可以私信本號(hào)獲得。
圖2 Xv6內(nèi)容目錄
30天自制操作系統(tǒng)
本書(shū)是日本作者川合秀實(shí)的大作,該書(shū)最大的特點(diǎn)不僅僅開(kāi)發(fā)一個(gè)操作系統(tǒng),而且還有圖形界面。日本人的認(rèn)真和嚴(yán)謹(jǐn)想必大家都聽(tīng)說(shuō)過(guò)。讀過(guò)該書(shū)以后,你真的會(huì)體會(huì)到日本人做事的嚴(yán)謹(jǐn)。本書(shū)同樣有配套的源代碼,讀者可以一邊讀書(shū),一邊實(shí)踐。按作者的話,30天真的可以開(kāi)發(fā)出一個(gè)圖形化的操作系統(tǒng)。
圖3 30天自制操作系統(tǒng)
下面本書(shū)中的一個(gè)具體的實(shí)例,可以看到一個(gè)非常初級(jí)的窗體。
圖4 圖形界面操作系統(tǒng)
清華大學(xué)操作系統(tǒng)課程
這個(gè)是學(xué)習(xí)操作系統(tǒng)的壓箱底寶物。清華大學(xué)陳渝教授有一套操作系統(tǒng)的課程,并且開(kāi)發(fā)了一個(gè)類似Xv6的操作系統(tǒng)(uCore),源代碼可以在github下載。這個(gè)操作系統(tǒng)的配套資料非常全,不僅僅有源代碼和配套的電子書(shū),而且有免費(fèi)的視頻教程。
圖5 操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)
私信本號(hào)可以獲得上述內(nèi)容的部分電子書(shū)和源代碼鏈接等信息。
私信內(nèi)容: 操作系統(tǒng)
總結(jié)
以上是生活随笔為你收集整理的你也能从零开发一个五脏俱全的操作系统你也能从零开发一个五脏俱全的操作系统吗的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 华冠照明怎么样?华冠照明价格
- 下一篇: 怎样保持家庭卫生间干净?