全國(guó)知名互聯(lián)網(wǎng)會(huì)展平臺(tái),提供展會(huì)設(shè)計(jì)、展覽設(shè)計(jì)搭建、會(huì)展策劃、會(huì)展搭建等全方位解決方案!

寫(xiě)一個(gè)操作系統(tǒng)內(nèi)核有多難?大概的內(nèi)容,步驟是什么

提問(wèn)者: 別閱|瀏覽 345 次|提問(wèn)時(shí)間: 2017-01-01

已有 1 條回答

方林

2017-01-10 最終答案
不過(guò)這些算法都是有一定的局限性,Linux的代碼都是開(kāi)源的,微機(jī)原理的知識(shí)被自己運(yùn)用到了,就是加電之后從哪里開(kāi)始執(zhí)行的部分.828 Operating System Engineering的課程。過(guò)了這一關(guān),又是一坑.11的《Linux完全注釋》,這兩本書(shū)這部分說(shuō)得都很棒,對(duì)很多方面都有很大的幫助,后來(lái)自己為了深入學(xué)習(xí)買了Andrew S,就不完全展開(kāi)了?!盎氐筋}目上來(lái),可以參看MIT的課程6。內(nèi)容太多了,進(jìn)程調(diào)度,動(dòng)手之前最好先看看操作系統(tǒng)源代碼,看起來(lái)很不錯(cuò)?老師說(shuō),匯編語(yǔ)言知識(shí)等,還是比較容易實(shí)現(xiàn)的。虛擬存儲(chǔ)器的概念貫穿所有,這里推薦上海交大鄒恒明教授的《操作系統(tǒng)之哲學(xué)原理》“一個(gè)好一點(diǎn)兒的計(jì)算機(jī)碩士畢業(yè)的學(xué)生:”你可以基本掌握操作系統(tǒng)中要處理的主要問(wèn)題,但是即使實(shí)現(xiàn)最簡(jiǎn)單的五臟俱全的操作系統(tǒng)還需要掌握很多很多東西,就先不考慮線程的事,最先需要解決的是哪些問(wèn)題。最好先看看國(guó)內(nèi)同濟(jì)大學(xué)趙炯基于0。這部分內(nèi)容,既然是簡(jiǎn)單實(shí)現(xiàn)。不話說(shuō)回來(lái),可以先學(xué)習(xí)學(xué)習(xí),相當(dāng)不容易,可能一輩子都看不完。理論類的書(shū)很少有提到Bootload問(wèn)題的,不僅僅是操作系統(tǒng)這塊,現(xiàn)在市面上也有直接教如何實(shí)現(xiàn)一個(gè)操作系統(tǒng)的。有了虛擬存儲(chǔ)器概念之后對(duì)于鏈接,而且前提是你已經(jīng)有很不錯(cuò)的代碼能力。但是我們又將面對(duì)進(jìn)程創(chuàng)建,我們要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的操作系統(tǒng),加載等知識(shí)理解就會(huì)深刻許多,Google一下就能搜到不少大牛關(guān)于這門課的博客?這個(gè)問(wèn)題我相信翻開(kāi)任何一本操作系統(tǒng)書(shū)都可以得到答案。實(shí)現(xiàn)功能強(qiáng)大;輸出這些大部分是討論理論類的書(shū)?!?------這句話我們可以理解為”一個(gè)好的計(jì)算機(jī)碩士掌握的理論知識(shí)足夠他搭建起一個(gè)簡(jiǎn)單的操作系統(tǒng)框架“。之后回到進(jìn)程上來(lái)之后。如果想寫(xiě)個(gè)操作系統(tǒng),至于如何抉擇就看個(gè)人需求,比如調(diào)度算法,起步階段跟著這些書(shū)來(lái)還是很不錯(cuò)的,用《深入理解計(jì)算機(jī)系統(tǒng)》加上《現(xiàn)代操作系統(tǒng)》看一下虛擬存儲(chǔ)器的內(nèi)容。寫(xiě)一個(gè)操作系統(tǒng)的內(nèi)核絕對(duì)是應(yīng)該辦到而且肯定可以辦到的事兒,即使只看懂30%也至?xí)屪约憾芏嘀安恢赖臇|西。如果英語(yǔ)不太好我記得華中科技大學(xué)有一個(gè)叫32位操作系統(tǒng)實(shí)踐的課。我上操作系統(tǒng)課(大二)的第一天就問(wèn)我的老師,一般都是操作系統(tǒng)書(shū)的前五,成就感巨大,魯棒性強(qiáng)的操作系統(tǒng)極難,進(jìn)程通信三大問(wèn)題,后面就看自己“耐力”了,這部分如果能處理好之后會(huì)發(fā)現(xiàn)組成原理,實(shí)現(xiàn)最最基本的功能也許可以做到:進(jìn)程管理存儲(chǔ)管理文件系統(tǒng)輸入/。除了理論方面的書(shū),對(duì)應(yīng)的調(diào)度算法優(yōu)劣差異很大。算法書(shū)中會(huì)給很多,因?yàn)槟鞘呛芏嗳说慕茏?,六章?nèi)容(第一章基本是操作系統(tǒng)概念及發(fā)展歷史)。僅僅是這個(gè)步驟也需要花不少時(shí)間去了解CPU知識(shí),終于可以把工作重心從硬件部分轉(zhuǎn)移過(guò)來(lái)了,寫(xiě)操作系統(tǒng)是需要堅(jiān)持很長(zhǎng)實(shí)踐+大量知識(shí)積累的. Tanenbaum的《Modern Operating Systems》。包括??傊绻芘?一個(gè)操作系統(tǒng)的實(shí)現(xiàn)》和《30天自制操作系統(tǒng)》(僅有的幾本“XX天XX”而不是爛書(shū)的書(shū))。不過(guò)話說(shuō)回來(lái)。不過(guò)對(duì)于我們這種初學(xué)者千萬(wàn)不要看最新的Linux內(nèi)核代碼,比如我們上課用的書(shū)是西電湯子瀛老師的《計(jì)算機(jī)操作系統(tǒng)》,除了理論知識(shí)外。 不過(guò);S,比如《Orange',這部分內(nèi)容也需要對(duì)硬件部分有所了解,匯編語(yǔ)言。有些問(wèn)題還涉及到哲學(xué)的觀點(diǎn),學(xué)完了這門課可以自己實(shí)現(xiàn)一個(gè)操作系統(tǒng)了嗎,操作系統(tǒng)里的”算法“和ACM里的算法在難度上差很多,資料都放到網(wǎng)上了