正文 操作係統之哲學原理(2 / 3)

有人說:“讀這本書,用‘愛不釋手’也許有些誇張,但不管是熟悉操作係統還是一點不懂,從中得到的啟迪,不僅僅是操作係統的原理,還有深藏在背後的哲理至真。”

有讀者指出:本書是“打著哲學旗號的新穎的OS教材”。1

評論說:“神學,哲學,科學,作者似乎想把三者結合為一體,但從每章開頭好像和本章內容無甚聯係的小故事來看,恐怕還沒有做到這一點,每章的技術性講解還是沒有脫離‘科學’而上升到‘哲學’,所以想要從所謂‘哲學’的高度(就像作者在序中說的那樣)來理解操作係統的朋友們可能要失望了。但是拋開‘哲學’這個詞,單純從技術上來講,我很欣賞作者的講述方式。一改往日教材‘知其然不知其所以然’,甚至連‘知其然’都不太能做到的國內出版教科書的風格,作者用類似OS開發人員視角的方式,從問題—解決方案—優缺點—改進方案—優缺點—再改進方案這樣帶領我們一路走來,讓我們更加深刻地認識到OS的一些本質和原理,以及許多流行的設計為什麼是這樣。”

一位操作係統老師點評說:“自己多年講授操作係統,雖然感覺每一次的講授都會有不同的視角,自認為對Linux內核源代碼的閱讀有助於原理的講述,但為什麼總有那麼一些概念,比如同步、死鎖、虛擬內存等像從天空飄然而下,那麼硬生生地扔給學生,學生在茫然中不得已地伸手接住,消化與否,無暇顧及,因為還有不少重頭炮彈等著學生接呢。聽了作者對‘鎖’這樣一種看似易於理解的概念一步步的演繹過程,似乎明白了操作係統教材(或其他工科書)枯燥之源。計算機世界中的大部分概念本來自於生活,但現有的教材割舍了其源本,把抽象出來的概念懸掛在空中,讓大家望其項背而無法落地,於是,計算機科學的趣味性和邏輯性也零落在書本的邊邊角角了。”

中國互動出版網的書評1說:“讀了《計算機的心智——操作係統之哲學原理》,這本書確實使得我對之前理解得較為生硬的部分操作係統原理豁然開朗了,這種大白話的風格雖有失教材的嚴謹,但作為靈活生動的學習參考資料的確是不可多得的。然而,貫穿此書的一個細節問題也在閱讀過程中逐漸呈現,作者多次引用《聖經》故事,經常使用基督教中的概念做比喻。盡管書中也有一些儒、釋、道的理念,但從不少行文表達中都可以看出其暗含的對基督教、神創論的認可。……不過作為一個不信神的讀者,我雖然也讀過《聖經》的主要篇章,但對作者給出的部分引言或比喻還是難以理解的,例如為什麼巴別塔與進程調度問題相關?我也曾試圖挑刺似的來找這本書中各處看似不恰當的比喻,包括宗教的和非宗教的。但讀著讀著,慢慢感覺到自己也沒必要和那些文字作對。原因正如宋朝的佛印禪師所說:‘心中有佛,所見萬物皆是佛’。作者寫出這些比喻,是因為作為一個基督徒,在其信仰的指導下使用其獨到的神學觀點來思考人造事物,就其個人而言是相當自然的。而我要是有準備挑刺的潛意識,那無論從中看到什麼略顯玄乎的文字,都會不自覺地將其認定為有失恰當的主觀內容。”

但也有不同意見的。有評論說:“我覺得作為一本入門級的書內容還是不錯的,有其新穎獨到的地方,而且介紹了一些多核的東西,比較不錯。但是作者在每章前麵非加上一段歐洲曆史等東西,搞得太過牽強,不這樣不足以顯示哲學原理的地位?再說這個書名,我感覺有點太大了,其實整本書沒幾處上升到哲學的高度進行總結歸納,絕大部分都是介紹現有技術。盡管其介紹哲學原理的部分有畫龍點睛的作用,但是總感覺這樣的命名有點虛。”

4圖書相關信息

書名:《計算機的心智:操作係統之哲學管理》

作者:鄒恒明 著

ISBN:978-7-111-26642-6

頁數:309

定價:38.0元

出版社:機械工業出版社

北京市西城區百萬莊大街22號

郵編:100037

責編:金純

裝幀:平裝

出版年:2009-4

5主要內容(目錄)

本書的內容結構如圖1所示。

本書的主要目錄如下:

第一篇基礎原理篇

第1章操作係統導論

引子:智者的挑戰

1.1人造學科

1.2程序是如何運行的

1.3什麼是操作係統

1.4魔幻與管理

1.5用戶程序與操作係統

1.6操作係統的範疇

1.7為什麼學習操作係統

思考題(以下各章均有,下略)

第2章操作係統曆史

引子:操作係統進化的推動因素

2.1第一階段:狀態機操作係統(1940年以前)

2.2第二階段:單一操作員、單一控製端操作係統(20世紀40年代)

2.3第三階段:批處理操作係統(20世紀50年代)

2.4第四代:多道批處理操作係統(20世紀60年代)

2.5第五代之一:分時操作係統(20世紀70年代)

2.6第五代之二:實時操作係統

2.7第六代:現代操作係統(1980年以後)

2.8操作係統的演變過程

2.9操作係統的未來發展趨勢

第3章操作係統基本概念

引子:“差不多”精神

3.1計算機硬件基本知識

3.2抽象

3.3內核態和用戶態

3.4操作係統結構

3.5進程、內存和文件

3.6係統調用

3.7殼

第二篇進程原理篇

第4章進程

引子 (以下各章均有,下略)

4.1進程概論

4.2進程模型

4.3多道編程的效率

4.4進程的產生與消失

4.5進程的層次結構

4.6進程的狀態

4.7進程創立

4.8進程與地址空間

4.9進程管理

4.10進程的缺陷

第5章線程

5.1進程的分身術——線程

5.2線程管理

5.3線程的實現方式

5.4現代操作係統的線程實現模型

5.5多線程的關係

5.6討論:從用戶態進入內核態

5.7討論:線程的困惑——確定性與非確定性

第6章線程通信

6.1為什麼要通信

6.2線程對白:管道、記名管道、套接字

6.3線程電報:信號

6.4線程旗語:信號量

6.5線程擁抱:共享內存

6.6信件發送:消息隊列

6.7其他通信機製

第7章進程同步

7.1為什麼要同步

7.2線程同步的目的

7.3鎖的進化

7.4睡覺與叫醒:生產者與消費者問題

7.5信號量

7.6鎖、睡覺與叫醒、信號量

7.7管程

7.8消息傳遞

7.9柵欄

第8章進程調度

8.1調度的目標

8.2處理器調度的總體目標

8.3先來先服務調度算法

8.4時間片輪轉

8.5短任務優先

8.6優先級調度

8.7混合調度算法

8.8其他調度算法

8.9實時調度算法

8.10高級議題:調度異常之優先級倒掛

第9章鎖的實現

引子:鎖的實現哲學

9.1以中斷啟用與禁止來實現鎖

9.2以測試與設置指令來實現鎖

9.3以非繁忙等待、中斷啟用與禁止來實現鎖