2008-10-31 228 views
65

我打算編寫一個操作系統,但我對操作系統的瞭解不多。爲了讓我學習,有沒有好的資源或書籍可供閱讀?你有什麼建議?開發操作系統的資源

回答

43

我在參加的大學使用了Andrew Tannenbaum的Modern Operating Systems。我高度推薦它,因爲它很清楚地解釋了許多設計決策中固有的權衡問題。這本書比Minix書更加「公平和平衡」。

alt text http://ecx.images-amazon.com/images/I/51DptFJH9NL._SL500_AA240_.jpg

我也儘管他net-famous flame war with Linus Torvalds,只有爲數不多的偏見,在這本書來通過推薦這本書的原因。而且,他是一位相當不錯的作家,而且這本書實際上很有趣。

+3

我正在通讀這本書(第二版),在我們講話的同時閱讀這本書,雖然它是一本巨大的書,但它非常詳細。 Silberschatz和Galvin的「操作系統概念」是獲取操作系統知識的兩本最好的書籍。 – 2009-01-10 02:08:43

14

Operating Systems Implementation Prentice Software

alt text http://ecx.images-amazon.com/images/I/3125C47MR4L._SL500_AA180_.jpg

本書由的Tanenbaum,Minix的背後主要的傢伙,這就是Linux的基礎上編寫的。它爲內存管理,文件系統,進程等基本操作系統概念提供了很好的概述。本書中的概念與Minix OS的例子密切相關,這是一件好事。

我想你應該從這樣的事情開始。

+7

我只是想「的基礎上」的Minix指出,Linux的是不是真的它打算作爲它的替代品。 Linux具有單片內核,而Minix則基於微內核設計。 – 2009-01-01 01:30:08

9

Os dev網站有豐富的信息,如果你想開始過編碼自己的操作系統,

9

Operating System Concepts是我們在大學用書。這很難看,但裏面的信息很好解釋了(從基本的內存管理,到OS如何決定要執行什麼或如何避免死鎖)。相當寬。

alt text http://ecx.images-amazon.com/images/I/51TJXR8CV3L._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg

+2

醜陋?但封面是_beautiful_!我喜歡那本書,因爲它在我的書架上看起來非常漂亮。 儘管如此,我們不能真正記得它在裏面的樣子。 – mipadi 2008-10-31 18:17:27

+0

是的,這是一個經典。它通常被稱爲恐龍書。實際上,我現在在沙發上用我的右手。這是一本好書,雖然是介紹。通常情況下,這是一本本科文本。 – BobbyShaftoe 2009-01-10 02:03:53

+0

我一直聽說它被稱爲恐龍書,我會同意它是一本本科教科書。 – 2009-01-10 02:09:28

3

我強烈推薦在考慮看看3210。它有很多有用的參考資料,還有一些實驗練習,你可以隨時玩(包括自動評分腳本,所以你不必是麻省理工學院的學生)。

0

我建議看看嵌入式操作系統和構建嵌入式操作系統。它將處理核心概念,而無需現代臺式機CPU的開銷。

去年春天我寫了一個多任務嵌入式操作系統作爲最終的項目,它比你想象的要容易。

2

由Richard A. Burgess開發自己的32位操作系統。關於引導加載程序的詳細信息,設置了那些奇怪的內存和進程管理寄存器等等。這是1996年的一次很好的回顧,當時我認爲我會從頭開始編寫一個簡單的操作系統,但可能會過時現在只處理前幾代Pentium級CPU。

1

你應該看看MINIX 3.這是一個寫入的操作系統,我認爲它少於10,000行。您可以通過Tanenbaum的書籍幫助您瞭解操作系統的工作方式,並瞭解MINIX 3的工作原理。你可以直接進入Linux,但我認爲這是一個有用的任務,並且真的可以幫助你看到它真的不需要那麼多線來構建一個可用的操作系統。

http://www.minix3.org/

4

看看HelenOS,這是一個從無到有基於微內核的操作系統,旨在成爲一個完全現代化的操作系統。 Disclamer,我是貢獻者,我正在從頭開始研究它的外殼。

HelenOS已經移植到ia32/64,SPARC,ARM等等,它的設計非常好,易於閱讀。它仍處於起步階段,但展示了一種真正利用微內核設計的可能設計,並解決了微內核實現(如IPC)中的許多問題。

它還包含可自動設置交叉編譯所需的適當工具鏈的腳本。它非常容易在大多數模擬器(即QEMU)或裸機中構建和運行。我也會研究L4,Minix3和GNU HURD(基於Mach),後者是試圖利用微內核時設計陷阱的一個例證。

如果你想走單行路線,只要學習Linux。