《操作系統:精髓與設計原理》《現代操作系統》《深入理解計算機系統》這三本書有什麼不同?
只看過第三本,你看看它的英文原名
Computer System - A Programmers Perspective
啥都講了點內容相當於計算機科學導論剛好三本都看過,第一、三本(現代, 深入)讀的原版,第二本讀的譯版。
首先說《深入理解計算機系統》,可以說「價值超過等重量黃金的無價資源寶庫」這個評價絲毫沒有過譽。只是要注意這本書書名《 Computer Systems: A Programmers Perspective》的中文翻譯有誤導性,其實這並不是一門專門的操作系統教材,其內容涵蓋了彙編、硬體等諸多內容,被CMU當做導論教材。建議配合本書的使用指南(深入理解計算機系統(原書第2版))書評閱讀本書。
Tanenbaum(MINIX系統,同時也是另外一本經典教材《計算機網路》的作者)的《現代操作系統》是針對操作系統課程的教材,進程、內存管理、文件系統、I/O都有很詳細地講解,最後還有專門的的章節介紹Linux和Windous Vista系統。與國內的教材相比其優點主要在於並非不是知識點的簡單的羅列,而用問題引導出技術設計存在的必然性。但我不認為這本教材擔得起豆瓣9.0的評分,事實上在看這本書的過程充滿了痛苦,很多內容都是藉助其他兩本教材理解的。下面列舉一些這本書的缺點:
1.內容安排混亂。目錄上呈現的清晰結構完全沒有反映到正文中,比如block device 和character device這兩個概念全書至少出現了4次,但竟然全都是當做新概念以黑體進行了標註,並反覆進行了定義。
2.重點講解不清。進程通信中的讀者/寫者問題草草帶過,PCI匯流排介紹了一大堆傳輸速度,卻竟然沒有提到它的作用···甚至有時引出了問題卻決口不提解決方案(至少告訴我Linux或Windows中是怎麼解決的吧)。
3.圖、代碼量過少。其實用一張圖可以講明白的東西偏偏用兩頁文字。
··· ···
槽點還有很多,就不一一列舉了。
我建議當做教材使用的是第三本書:《操作系統:精髓與設計原理》,不少被《現代操作系統》弄糊塗的問題都是在這本書中找到了答案。Linux線程一節短短的一頁就說明白了困擾了我很久的問題,進程的概念的演化也是從這本書找到了答案。《操作系統:精髓與設計原理》和《現代操作系統》都是講操作系統的,前者比較雜亂,後者清晰明了些。《深入理解計算機系統》從程序員角度看計算機系統,講了彙編、存儲系統、體系結構、鏈接等等,是程序員補充理論知識的一本好書。
今年剛學(混)過這門課,操作系統真心感覺知識點有點難抽象難以理解。學這門課之前的一年,我學了數據結構與演算法以及計算機系統基本原理,這兩塊是為了給今年的這門課做準備(編程知識是必須的,不多說)。
教授的用的書其中一本是《現代操作系統》英文版,我也同樣在對照讀翻譯版本。這個版本的書讀起來不算難理解,文中會有一些「親切」的人稱和比喻,知識點也標記得比較清楚,這也是教授選這本書的原因吧(因為可以有大段概念好ref在PPT上)。這個版本的譯者是北大的教授陳向群,coursera上也有她主講的免費公開課,用的也是這本書。在備考階段幫助了我不少。其實我看coursera是因為這一年新來的操著印度音的講師很差勁,除了蹂躪耳朵之外(感覺能把絕對音高的孩子搞成音痴),還把這門課運行得很粗糙。Course Evaluation給了差評。扯遠了,抱歉。
用的另外一本是Silberschatz撰寫的《Operating System concepts》9th Ed. 這麼書應該國內也有譯者翻譯,感覺新版本書籍涵蓋的東西比前者翻譯版本涵蓋的東西更細一點(沒細很多),可能是因為中文版本的時間隔了遠的緣故。
如果按學習輔助資源富裕程度來講,我推薦前者哦~
總之,書等一切資源可以搭配來用,你會發現自學的本領更上一層樓了。不要太拘泥於書的選擇,因為有些書並不需要每頁都翻,跳過的那些部分一定會被其他的資源補充到的。
只看過第三本 和操作系統基本沒關係
只看過後兩本。
《現代操作系統》就是一本講解計算機操作系統的書,講的是操作系統的各個方面,比如內存管理,進程調度等的原理與方法。
《深入理解計算機系統》講的是計算機程序相關的東西。比如程序表示,連接,載入,運行等等。第三本比較實用,對於程序猿來說。
正在看《操作系統:精髓與設計原理》,作為國內某高校考博用書,可以見他的理論標杆地位。並且買了本英文版本的,(國內英文版本,本刪除了部分章節)。後續,我會將一些體會發送上來,謝謝大家。
推薦閱讀:
※關於《深入理解計算機系統》除零異常的一個問題?
※有哪些很少人知道的win10黑科技?
※磁碟怎樣分區才合理?
※時鐘在計算機系統中的作用可以稱作激勵(電學術語)么,為什麼?
TAG:操作系統 | 計算機 | 計算機系統 | 深入理解計算機系統書籍 |