新書推薦:Orange'S:一個操作系統的實現

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

trackback: http://osfromscratch.org/

作為《自己動手寫操作系統》(以下簡稱《自》)的第二版,《Orange'S:一個操作系統的實現》(以下簡稱“新版”)主要有以下變化:

  1. 書中示例操作系統的名字改為 Orange'S
  2. 書名改為《Orange'S:一個操作系統的實現》
  3. 增加了有關 IPC、FS、MM 等內容
  4. 將默認開發平臺改為 GNU/Linux,同時兼顧 Windows
  5. 更改了排版工具,并使用技術手段增加書的可讀性,比如代碼行號的運用
  6. 建立專門網站以服務讀者
  7. 建立專門討論區供讀者交流

讀過《自》的讀者一定知道,其中默認使用 Windows 作為開發平臺,同時使用虛擬機來編譯及運行自己的 OS,在新版中這一點發生了變化(如上述第 4 條所述),具體的變化原因在書中第二章有詳細的敘述。雖然開發平臺是第二位的事情,但書中的默認平臺卻不免影響到敘述細節,所以,如果讀者基于自己的原因 堅持在 Windows 上開發(可能的原因或許有對 Linux 不熟悉、需要邊開發操作系統邊登錄某些網上銀行等等),則可能對讀到的內容進行一點點額外加工。當然,所需的額外加工是少量的,而且在第二章中也有專門的 文字介紹如何在兩種平臺下搭建工作環境。此外,如果讀者不介意花錢,還可以同時購買《自》和新版,相互參照閱讀。

新版的內容是有增加的,新增文字約占整本書的三分之一,新增代碼則是《自》中代碼的數倍。這些新增的內容,讀者只能從新版中獲得。目前并未有將新增內容單獨成書的打算,所以讀者即便僅想閱讀第八章以后的內容,也需要購買整本《Orange'S:一 個操作系統的實現》。已經購買了《自》的讀者可能覺得有點浪費,但事實并不如此,因為《自》的內容經過了重新排版、修訂和編輯(比如代碼格式進行了重排, 更方便與光盤中的文件對照閱讀,以及其中所有的矢量圖都用 pgf/TikZ 重新繪制等)筆者傾注的心血使得新版的感官已經大為不同,讀者一看便知。

坦白講,我在寫作《自》的時候,并沒有想過今天會有一個第二版。原因在于,我希望這本書是用來填補空白的,而不是重復去做別人已經做得很好的事情。所謂填 補空白,具體說就是讓像我一樣的操作系統愛好者在讀完本書之后,能夠有信心去讀其他比較流行的開源的操作系統代碼,有能力從零開始自己動手寫操作系統,而 這個任務第一版已經完成了。

那么為什么我又寫作了第二版呢?原因有幾個方面。第一,雖然第一版未曾涉及的進程間通信、文件系統等內容在許多書中都有講解,但閱讀的時候還是感覺有語焉 不詳的通病,作者本人可能很清楚原委,但寫得太簡略,以至于讀者看來未必清晰。第二,我自己想把這個圈畫圓。第一版的書雖然完成了它的使命,但畢竟到書的 結尾,讀者看到的不是一個真正的操作系統,它沒有文件系統,沒有內存管理,什么也干不了。在第二版中,你將會看到,你已經可以通過交叉編譯的方式為我們的 實驗性OS編寫應用程序了,也就是說,它已經具備操作系統的基本功能,雖然仍然極其簡陋,但第一個圈,畢竟是已經圓起來了。第三,實踐類的操作系統書籍還 是太少了,以至于你要想看看別人是怎么做的,除了讀以《操作系統:設計與實現》為代表的極少數書籍之外,就是一頭扎進源代碼中,而結果有時相當令人氣餒。 我自己也氣餒過,所以我在第二版中,仍然試圖把話說細一點,把自己的經驗拿出來分享。而且我選擇我能想到的最精簡的設計,以便讓讀者不至于陷入太多細節而 無法看到全貌。我想這是本書可能具有的價值所在──簡化的易懂的設計,還有盡量詳細的文字。

新版的排版是我用LaTeX自己完成的。在排版中我花了一些工夫,因為我希望讀者購買的首先是一本易于閱讀且賞心悅目的書,其次才是編寫操作系統的方法。 另外,書中列出的代碼均由我自己編寫的程序自動嵌入LaTeX源文件,從而嚴格保證書和光盤的一致性,讀者可以根據文件名和行號方便地找到光盤中代碼的準 確位置。

此外,在新版中還有一些小的變化。首先是操作系統的名字改變了,原因在于雖然我們的試驗性OS從前輩們那里借鑒了很多東西,但其各個部分的設計(比如文件 系統和內存管理)往往有其獨特之處,所以我將原先的Tinix(本意為Try Minix)改成了新名字Orange'S(這個名字來自于我的妻子),以表示它們的不同。另外,書中的代碼風格,有些地方也做了調整。

新版中,原先的敘述風格都盡量地得以貫徹,而在表現形式上,新版用了更多心思,我相信讀者能在其中發現這些特點:關注動手細節,探尋代碼背后的故事,結果與過程兼顧,內容與形式并重。加上專門為本書建立的網站和討論區,我相信讀者能更容易地閱讀,更輕松地學習。

接下來,我開始編寫屬于自己的操作系統,并將自己學習過程中遇到的問題全部記錄下來,與大家分享,歡迎大家指正。


John Shao's Blog 2014-07-03 12:41:27

[新一篇] 獻給奮戰在一線的程序員:關于性格內向者的10個誤解

[舊一篇] 程序員的幽默笑話
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表