索引 / 001 ZH-TW
Modern Operating Systems(現代作業系統) cover

電腦科學

電腦科學

Modern Operating Systems(現代作業系統)

Andrew S. Tanenbaum; Herbert Bos

英文原名: Modern Operating Systems

大學部作業系統課程的標準教科書,由安德魯·塔能鮑姆與赫伯特·博斯共同撰寫。書中說明行程、記憶體、檔案系統、輸入輸出與安全的原理,並以 Linux、Android 與 Windows 的詳細案例研究加以印證,同時留意當前研究與設計上的取捨。

需要的基礎: 修過一門使用 C 或類似語言的程式設計入門,以及計算機組織入門課程。

難度等級
中級
學術層次
大學部
operating systemsprocesses and threadsmemory managementfile systemssecurity教科書

01 / 導讀

導讀

引用

Tanenbaum, A. S., & Bos, H. (2022). Modern Operating Systems (5th ed.). Pearson.

章節概要

第5版超過1100頁(不同印次的目錄給出的頁數為1101頁和1184頁),Pearson 只按章名列出13章。Pearson 把這一版的變化概括為:新增一章講 Windows 11,安全部分有新的內容,並且著重介紹基於快閃記憶體的固態硬碟。出版社的宣傳頁補充說,書中還討論了持久記憶體,Linux 與 Android 的案例研究已更新到當前版本,每章都新增了習題。

第1章:引論

開篇一章介紹這門學科。Pearson 的簡介把行程、執行緒、記憶體管理、檔案系統、輸入/輸出和死結列為本書深入討論的主題,後面的各章正是按這個順序展開的。

第2–3章:行程與執行緒;記憶體管理

這是前兩個專題章,排在檔案系統和輸入/輸出之前。兩章合起來講的是透過行程和執行緒體現的執行,以及記憶體,也就是簡介最先列出的兩項內容。

第4–5章:檔案系統;輸入/輸出

第4章講檔案系統,第5章講輸入和輸出。宣傳頁說新版對基於快閃記憶體的固態硬碟和持久記憶體作了充分討論,這與這兩章關係最直接。

第6章:死結

死結獨佔一章。Pearson 的簡介把它列為本書深入討論的主題之一。

第7–8章:虛擬化與雲;多處理器系統

這兩章講作業系統如今執行的環境:虛擬化與雲,以及多處理器系統。宣傳頁把虛擬化與雲列為反映新趨勢的主題之一。

第9章:安全

安全獨立成章。據宣傳頁介紹,更新後的內容聚焦於與作業系統設計和結構直接相關的主題,討論硬體的新發展、軟體漏洞、攻擊與防禦,同時也涉及病毒、蠕蟲和惡意軟體。

第10–11章:案例研究1:Unix、Linux 與 Android;案例研究2:Windows 11

兩個整章的案例研究。第一個講 Unix 家族、Linux 和 Android,據宣傳頁介紹,包含 Linux 和 Android 當前版本中的新進展;第二個是新增的 Windows 11 一章,宣傳頁稱它考察了微軟 NT 作業系統最新的主要版本。

第12–13章:作業系統設計;閱讀書目與參考文獻

設計一章為正文收尾。第13章彙集推薦閱讀和參考文獻,宣傳頁稱這些內容反映了最新的作業系統。

核心概念

第1–6章:原理

  • 行程與執行緒:由作業系統建立和管理的執行單位。
  • 記憶體管理:如何把記憶體分配給各個程式並讓它們共享。
  • 檔案系統與輸入/輸出:如何把持久儲存和裝置呈現給程式;本版著重介紹基於快閃記憶體的固態硬碟和持久記憶體。
  • 死結:行程相互阻塞的局面,用專門一章來講。

第7–13章:現代系統與設計

  • 虛擬化與雲,以及多處理器系統:作業系統所處的當代環境。
  • 安全:與作業系統結構相關的攻擊與防禦。
  • 案例研究:一章講 Unix、Linux 和 Android,另一章講 Windows 11。
  • 作業系統設計:講系統設計的最後一個正文章節。

評析

優點

  • 一卷之內覆蓋面廣。 13章既包括經典核心(行程、記憶體、檔案、輸入/輸出、死結),也包括虛擬化與雲、多處理器系統,還有專門一章講安全。
  • 兩個真實的系統。 對 Unix 家族及 Linux、Android,以及對 Windows 11 的整章案例研究,使讀者在學完原理之後,可以比較兩種不同的設計傳統。
  • 有一章講設計。 正文以題為「作業系統設計」的一章收尾,所以本書並不止於描述現有的系統。
  • 練習與延伸閱讀。 宣傳頁說每章都有新增的習題,第13章提供閱讀書目和參考文獻。
  • 當前的硬體。 宣傳頁突出固態硬碟、持久記憶體和64位架構,因此講儲存的章節並不侷限於旋轉磁碟。

侷限

  • 篇幅。 超過1100頁,內容多於一個學期的閱讀量,課程必須選取章節。
  • 概念優先。 出版社的資料強調講解、案例研究和習題,沒有提到程式設計專案。想要系統程式設計練習的讀者,需要另找材料或在課程中安排專案。
  • 宣傳語部分較為泛泛。 Pearson 的介紹仍然列出「介面設計」和「多媒體」,但目錄裡並沒有這樣命名的章;宣傳頁提到了多媒體檔案系統,卻沒有說明它出現在何處。在指望這些主題之前,應先檢視細到小節的目錄。

在課程中的定位

Tanenbaum 和 Bos 的這本書是面向標準大學部作業系統課程的綜合性教材兼參考書。Silberschatz、Galvin 和 Gagne 的 Operating System Concepts 是書單中另一本覆蓋面廣的教材,帶有 Linux、Windows、macOS、Android 和 iOS 的例子以及簡短的程式設計專案;兩本都可以作主教材,選哪一本取決於文風,以及課程希望有多少程式設計內容。

Operating Systems: Three Easy Pieces 走的是更窄的路線,圍繞虛擬化、併發和永續性來組織,當需要更簡短的概念性講解時,是有用的配套讀物。Ward 的 How Linux Works 是實務方面的補充,從 shell 一直講到核心,解釋一個真實的 Linux 系統,與第10章自然搭配。Saltzer 和 Kaashoek 的 Principles of Computer System Design 超出單一作業系統,講抽象、模組化、命名、保護和通訊,適合在第12章之後閱讀。

如何使用本書

本書適合以前寫過程式的學生(出版社的資料沒有寫明先修要求);最適合用於第一門完整的作業系統課程,之後也可當作參考書。

一個實用的讀法:

  • 核心: 按順序讀第1–6章。把第2章和第3章當作課程的中心,第4–5章講儲存和裝置。
  • 當代主題: 第7章(虛擬化與雲)、第8章(多處理器)和第9章(安全),按課程需要選擇。
  • 案例研究: 在原理章節之後讀第10章或第11章,最好面前有一個執行著的系統;兩章都讀,可以比較兩種傳統。
  • 收尾: 讀設計一章(第12章),再用第13章的閱讀書目做後續閱讀。

不要跳過章末的習題,並配合 How Linux Works 這樣的實務資料或程式設計專案,因為出版社的資料沒有提到這方面的內容。