解密《一個作業系統的實現》這本書
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
解密《一個作業系統的實現》這本書
5月18日見到了《Orange'S:一個作業系統的實現》的樣書,多少有些激動。想一想前一版本《自己動手寫作業系統》是那麼暢銷,這一本一定不能含糊。整個出版過程我能看到作者於淵為此付出的努力,還在自己排版的過程有深入體會,通過於淵的講座也讓博文視點的員工分享到他在排版過程中的很多心得。
應該有幾萬個朋友讀過《自己動手寫作業系統》了,本書的第2版《Orange'S:一個作業系統的實現》出來肯定有非常多的朋友想問,這兩本書到底有何區別呢?就此博文視點對本書作者於淵進行了簡單的採訪。
*提問:《Orange'S:一個作業系統的實現》與《自己動手寫作業系統》明顯區別在哪些方面?*
於淵:作為《自己動手寫作業系統》(以下簡稱《自》)的第二版,《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:一個作業系統的實現》與《自己動手寫作業系統》相比是否有所增加嗎?增加了多少內容量呢?
於淵:新版的內容是有增加的,新增文字約佔整本書的三分之一,《Orange'S:一個作業系統的實現》新增程式碼則是《自己動手寫作業系統》中程式碼的數倍。這些新增的內容,讀者只能從新版中獲得。目前並未有將新增內容單獨成書的打算,所以讀者即便僅想閱讀第八章以後的內容,也需要購買整本《Orange'S:一個作業系統的實現》。已經購買了《自己動手寫作業系統》的讀者可能覺得有點浪費,但事實並不如此,因為《自己動手寫作業系統》的內容經過了重新排版、修訂和編輯(比如程式碼格式進行了重排,更方便與光碟中的檔案對照閱讀,以及其中所有的向量圖都用pgf/TikZ
重新繪製等)筆者傾注的心血使得新版的感官已經大為不同,讀者一看便知。
*提問:在《自己動手寫作業系統》大賣的時候,您是否想過會有第二版出版呢?*
於淵:坦白講,我在寫作《自》的時候,並沒有想過今天會有一個第二版。原因在於,我希望這本書是用來填補空白的,而不是重複去做別人已經做得很好的事情。所謂填補空白,具體說就是讓像我一樣的作業系統愛好者在讀完本書之後,能夠有信心去讀其他比較流行的開源的作業系統程式碼,有能力從零開始自己動手寫作業系統,而這個任務第一版已經完成了。
*提問:那麼為什麼又寫作了第二版呢?*
於淵:原因有幾個方面。第一,雖然第一版未曾涉及的程式間通訊、檔案系統等內容在許多書中都有講解,但閱讀的時候還是感覺有語焉不詳的通病,作者本人可能很清楚原委,但寫得太簡略,以至於讀者看來未必清晰。第二,我自己想把這個圈畫圓。第一版的書雖然完成了它的使命,但畢竟到書的結尾,讀者看到的不是一個真正的作業系統,它沒有檔案系統,沒有記憶體管理,什麼也幹不了。在第二版中,你將會看到,你已經可以通過交叉編譯的方式為我們的實驗性OS編寫應用程式了,也就是說,它已經具備作業系統的基本功能,雖然仍然極其簡陋,但第一個圈,畢竟是已經圓起來了。第三,實踐類的作業系統書籍還是太少了,以至於你要想看看別人是怎麼做的,除了讀以《作業系統:設計與實現》為代表的極少數書籍之外,就是一頭扎進原始碼中,而結果有時相當令人氣餒。我自己也氣餒過,所以我在第二版中,仍然試圖把話說細一點,把自己的經驗拿出來分享。而且我選擇我能想到的最精簡的設計,以便讓讀者不至於陷入太多細節而無法看到全貌。我想這是本書可能具有的價值所在──簡化的易懂的設計,還有儘量詳細的文字。
*提問:這本書為何不考慮用WORD排版?*
於淵:新版的排版是我用LaTeX自己完成的。在排版中我花了一些工夫,因為我希望讀者購買的首先是一本易於閱讀且賞心悅目的書,其次才是編寫作業系統的方法。另外,書中列出的程式碼均由我自己編寫的程式自動嵌入LaTeX原始檔,從而嚴格保證書和光碟的一致性,讀者可以根據檔名和行號方便地找到光碟中程式碼的準確位置。
*提問:第二版還有哪些區別呢?Orange'S這個名字很特別,有什麼寓意嗎?*
於淵:新版中還有一些小的變化。首先是作業系統的名字改變了,原因在於雖然我們的試驗性OS從前輩們那裡借鑑了很多東西,但其各個部分的設計(比如檔案系統和記憶體管理)往往有其獨特之處,所以我將原先的Tinix(本意為TryMinix)改成了新名字Orange'S(這個名字來自於我的妻子),以表示它們的不同。另外,書中的程式碼風格,有些地方也做了調整。
新版中,原先的敘述風格都儘量地得以貫徹,而在表現形式上,新版用了更多心思,我相信讀者能在其中發現這些特點:關注動手細節,探尋程式碼背後的故事,結果與過程兼顧,內容與形式並重。加上專門為本書建立的網站和討論區,我相信讀者能更容易地閱讀,更輕鬆地學習。
更多詳情請登入 http://osfromscratch.org/ 。
《Orange'S:一個作業系統的實現》
出版單位:電子工業出版社 作者:於淵 ISBN:978-7-121-08442-3
本書官方網站:http://osfromscratch.org/
網路購買地址:http://www.china-pub.com/195571
給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow
相關文章
- 學習作業系統的三本書作業系統
- 配置《Orange's一個作業系統的實現》環境心得作業系統
- 現代作業系統-原理與實現【讀書筆記】作業系統筆記
- 一個作業系統的設計與實現——第23章 快速系統呼叫作業系統
- 自制作業系統(一) 第一個作業系統作業系統
- 推薦一本書:計算機的心智:作業系統之哲學原理計算機作業系統
- 作業系統(一):作業系統概述作業系統
- 寫作業系統之實現程式作業系統
- 還可以這樣實現ARM+ROS(機器人作業系統)ROS機器人作業系統
- 第一次作業——圖書管理系統
- 這個國家棄用Windows作業系統?而我們的國產作業系統卻很少人用Windows作業系統
- python實現一個無介面的小型圖書管理系統Python
- 作業系統--怎麼實現中斷作業系統
- 實現一個SSO系統
- 作業系統-1.1_2作業系統四個特徵作業系統特徵
- web端作業控制系統簡易實現Web
- 作業系統能實現國產替代嗎?智慧終端作業系統大調查作業系統
- 硬核!從零實現一個作業系統核心!畢設/專案經驗不愁了作業系統
- 實現一個webscoket聊天系統Web
- 【一】作業系統原理作業系統
- 跟大神一起製作一個屬於自己的Linux作業系統!Linux作業系統
- 作業系統中檔案系統的實現和分配方式探析(下)作業系統
- 作業系統實驗(一)-Shell程式設計作業系統程式設計
- 實踐作業的一種實現方式
- YodaOS: 一個屬於 Node.js 社群的作業系統Node.js作業系統
- 作業系統(1)——作業系統概述作業系統
- 幾個作業系統的基本概念作業系統
- 埃思特電子作業票系統:實現作業管理線上化
- 關於在Windows作業系統下除錯本書第二十章專案1的一些討論Windows作業系統除錯
- 作業系統實驗6之訊號量的實現與應用作業系統
- 重讀經典《作業系統:設計與實現》作業系統
- 作業系統(二):作業系統結構作業系統
- 從原始碼構建一個極簡的Linux作業系統原始碼Linux作業系統
- 一個故事看懂計算機作業系統的進化史計算機作業系統
- 作業系統實驗——程式控制作業系統
- 基礎夯實:作業系統作業系統
- 實現一個簡易的響應式系統
- 作業系統 作業5作業系統