免費電子書 -- 作業系統設計 (UNIX v6 研究)

作業系統設計

簡介

開發工具

UNIX xv6

原始碼解讀

啟動程式

行程管理

記憶體管理

檔案管理

輸出入

使用者介面

訊息

相關網站

參考文獻

最新修改

簡體版

English

作業系統的設計通常是一個很大的工程,幾乎沒有辦法在大學當中傳授實際的設計技巧,以至於所有作業系統的課程幾乎都是以理論為主的方式,這讓作業系統成為程式設計師心中的一個未解之謎。

UNIXv6 是一個相當重要且小型的作業系統,幾乎是所有現代 UNIX 的始祖,雖然 UNIXv6 是在 PDP11 機器上寫的,但在網路上卻有相當完整的資料可以參考,UNIX v6 的作業系統核心大約為 10000 行,因此相當適合想要撰寫作業系統的人學習研究,以下是 UNIX v6 的相關資源。

然而,在 MIT 的課程當中,有一門編號 6.828 的 Operating System Engineering,其教師 Frans Kaashoek 將 UNIX v6 的原始碼,修改之後放在 x86 電腦上執行,形成一個只有八千行的 UNIX v6 現代版,稱為 UNIX xv6,,Frans Kaashoek 用這個版本作為作業系統課程的起點,這讓我們有機會一睹作業系統的核心原理。

目前 Frans Kaashoek 的研究方向已經導向一種稱為 Exokernel 的作業系統架構,他們撰寫了一個稱為 JOS 的作業系統,這在他們的課程當中也成為重要的主角之一。

以下是 Frans Kaashoek 的 6.828:Operating System Engineering 課程,以及 UNIX xv6 的首頁。

Frans Kaashoek 是 MINIX 作者 Tanenbaum 的學生,長期都受到作業系統的訓練,因此被網羅到 MIT 教授作業系統課程,本書希望透過研究 Frans Kaashoek 的課程,從 UNIX xv6 開始理解作業系統的設計方法。筆者一邊學習一邊寫書,也希望能夠與大家分享自己在作業系統設計上的一些心得,希望對作業系統設計有興趣的朋友們能多給我們一些意見,也能將訊息回饋給筆者。因此我在 facebook 上開了一個「系統程式」的粉絲團,以便與大家討論相關的設計原理,歡迎大家參與!

陳鍾誠 2011 年 5 月 9 日 於 金門大學

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License