出版時間:2010-6 出版社:清華大學(xué)出版社 作者:斯圖爾特 頁數(shù):457
Tag標(biāo)簽:無
前言
在20年前,當(dāng)我在研究生院時,就已萌生了寫這本書的想法。1986年夏天,在David Cohen博士的指導(dǎo)下,一群學(xué)生在一起進(jìn)行高級操作系統(tǒng)的學(xué)習(xí)討論。開始時,我們想要編寫操作系統(tǒng),但很快我們的重點(diǎn)發(fā)生了轉(zhuǎn)移,最后決定編寫操作系統(tǒng)的教科書。正如事情經(jīng)常發(fā)生的情況一樣,我們幾乎沒有實(shí)現(xiàn)我們的初衷。然而,通過這種方式,我們對關(guān)于如何組織操作系統(tǒng)的教材進(jìn)行了許多富有成果的討論,通過擴(kuò)展,也找到了如何進(jìn)行操作系統(tǒng)教學(xué)的方法。這些想法與多年講授操作系統(tǒng)課程的實(shí)踐相結(jié)合,使我看到,講授操作系統(tǒng)有幾種不同的做法。同時也使我認(rèn)識到現(xiàn)有的課本都沒有真正提供這種靈活性,使教師可以根據(jù)自己的需求來講授操作系統(tǒng)這門課程。編寫本書的動機(jī)就是為每位教師提供這種靈活性。組織本書主要包括七個主題,首先介紹操作系統(tǒng)的重要?dú)v史、結(jié)構(gòu)和組織、系統(tǒng)調(diào)用和引導(dǎo)。在此之后,較深入地分析了操作系統(tǒng)的主要功能:進(jìn)程、存儲、I/O設(shè)備和文件系統(tǒng)。最后兩個主題是安全性和分布式系統(tǒng)。首先介紹的五個主題依次在前四章中進(jìn)行介紹,每一章都從多個視角分析相關(guān)的主題。第l章依次介紹了與資源管理相關(guān)的基本原理。在這些章中,我介紹了相關(guān)的問題以及為了解決這些問題所使用的一些標(biāo)準(zhǔn)技術(shù)。在某些情況下,著重基本原理的章節(jié)也包括相關(guān)問題的討論。例如,在第5章中的互斥和死鎖主題是與進(jìn)程管理一起進(jìn)行討論的,因?yàn)檫@兩個主題都與進(jìn)程問通信相關(guān)。第2章依次概括性地介紹了操作系統(tǒng)的歷史和目前的操作系統(tǒng)。9個操作系統(tǒng)的示例集合主要包括:CISS、Multics、RT-11、第6版LINIX、4.3BSD、VMS、WindowsNT、FinyOS和Xen。之所以重點(diǎn)研究這些操作系統(tǒng),主要著眼點(diǎn)在于要以高層次的方式來研究這些操作系統(tǒng)的開發(fā)者如何將提供的標(biāo)準(zhǔn)技術(shù)轉(zhuǎn)化為實(shí)踐。在第3章和第4章的每個小節(jié)中,更深層次地研究實(shí)現(xiàn)的細(xì)節(jié)。在第3章中選取了Inferno中的部分代碼進(jìn)行討論,在第4章中選取了Linux中的部分代碼進(jìn)行討論。但是,在第21章和第22章中,并沒有采用前面的這種模式。這兩章分別討論了安全性和分布式系統(tǒng)。因?yàn)檫@兩個主題的每一個主題都可以寫成一本書,所以必須選擇性地討論這兩個主題。這兩章只介紹了一些有代表性的技術(shù)。在第2l章中,也討論了更受限的示例集來說明如何應(yīng)用安全技術(shù)。在附錄A中介紹了如何創(chuàng)建宿主Infer-110的內(nèi)核鏡像。為了完成修改Inferno內(nèi)核這樣的任務(wù),創(chuàng)建鏡像就是解決方案的一部分。以這種方式創(chuàng)建的內(nèi)核鏡像可以像應(yīng)用程序一樣運(yùn)行在現(xiàn)有的主機(jī)操作系統(tǒng)之上。附錄B教給用戶如何創(chuàng)建本地的Inferno內(nèi)核。特別是提供了用于x86PC上創(chuàng)建啟動盤鏡像的必要步驟。這個鏡像可以寫入到軟盤或者用于創(chuàng)建啟動CD-ROM。
內(nèi)容概要
本書的內(nèi)容主要包括7個主題:操作系統(tǒng)簡介、進(jìn)程、存儲器、I/O設(shè)備、文件系統(tǒng)、操作系統(tǒng)安全和分布式操作系統(tǒng)。每一部分都從多個視角分析了主題的基本原理、應(yīng)用分析、詳細(xì)設(shè)計(jì),以及Inferno和Linux的實(shí)現(xiàn)。在詳細(xì)討論Inferno和Linux的這些章節(jié)中,主要側(cè)重與內(nèi)核中相對較小的一部分,這些部分用于說明在原理章節(jié)中涉及的技術(shù)與原理。書中介紹的每個函數(shù)都分成了小段,然后以更詳細(xì)的方式描述這些小段。這樣就能詳細(xì)地學(xué)習(xí)獨(dú)特內(nèi)核的一些關(guān)鍵內(nèi)容。本書除了基本的原理之外,還重點(diǎn)介紹了9個操作系統(tǒng)CTSS、Multics、RT-11、第6版UNIX、4.3BSD、VMS、Windows NT、TinyOS和Xen。這些示例操作系統(tǒng),作為主線貫穿整本書。通過重點(diǎn)研究這些操作系統(tǒng)示例,從高層次的方式來研究操作系統(tǒng)的開發(fā)者如何將標(biāo)準(zhǔn)技術(shù)轉(zhuǎn)化為實(shí)踐。從而在實(shí)踐的基礎(chǔ)上再次提升理論。使理論和實(shí)踐再次相互印證?! ×硗庵档脧?qiáng)調(diào)的是這本書的適用性,它為需要深入研究Linux或者Inferno內(nèi)部結(jié)構(gòu)的專業(yè)人員提供了大量的、翔實(shí)的、來自真實(shí)世界的代碼,也為初學(xué)者提供了從淺入深、循序漸進(jìn)學(xué)習(xí)操作系統(tǒng)原理的豐富實(shí)例。本書既可以用于普通操作系統(tǒng)的學(xué)習(xí),也可以作為高級操作系統(tǒng)的教材。同時這本書每章之后都有印證所學(xué)內(nèi)容的大量、有趣的練習(xí)。要求學(xué)生自己動手來建立自己的Inferno和Linux。
作者簡介
作者:(美國)斯圖爾特(Brian L.Stuart) 譯者:葛秀慧 田浩 劉展威 等
書籍目錄
第1章 操作系統(tǒng)簡介 第2章 操作系統(tǒng)示例 第3章 Inferno的結(jié)構(gòu)與初始化 第4章 Linux的結(jié)構(gòu)與初始化 第5章 進(jìn)程管理原理 第6章 進(jìn)程管理示例 第7章 Inferno中的進(jìn)程管理 第8章 Linux中的進(jìn)程管理 第9章 存儲管理原理 第10章 存儲管理示例 第11章 Inferno中的存儲管理第12章 Linux中的存儲管理 第13章 I/O設(shè)備管理原理 第14章 I/O設(shè)備管理示例 第15章 Inferno中的I/O設(shè)備 第16章 Linux中的I/O設(shè)備 第17章 文件系統(tǒng)原理 第18章 文件系統(tǒng)示例 第19章 Inferno中的文件系統(tǒng) 第20章 Linux中的文件系統(tǒng) 第21章 操作系統(tǒng)安全原理 第22章 分布式系統(tǒng)原理 附錄A 編譯宿主Inferno 附錄B 編譯本地Inferno
章節(jié)摘錄
插圖:在很多情況下,我們會發(fā)現(xiàn)自己正在復(fù)制大量的內(nèi)存。UNIX的f-0rk(1系統(tǒng)調(diào)用就是這種復(fù)制的一個很好的例子,當(dāng)它創(chuàng)建子進(jìn)程時,子進(jìn)程就是父進(jìn)程的副本。最新的系統(tǒng)實(shí)現(xiàn)這種復(fù)制都使用一種稱為寫時復(fù)制(copyonwrite)技術(shù)。它不是制作父進(jìn)程內(nèi)存空間的第二個副本,而是成立內(nèi)存管理單元來將子進(jìn)程的虛擬存儲空間映射到與父進(jìn)程相同的物理內(nèi)存。但是,對于父進(jìn)程和子進(jìn)程,我們都將所有內(nèi)存標(biāo)記為只讀。因此,任何來自父進(jìn)程或子進(jìn)程的寫都會引發(fā)來自MMD的寫保護(hù)錯誤。對于頁或段,當(dāng)我們得到讀/寫這樣的中斷時,我們會制作新副本并將新副本映射到子進(jìn)程的內(nèi)存空間。兩個副本都被標(biāo)記為讀/寫,并且指令使用中斷繼續(xù)。凈效應(yīng)是,我們只復(fù)制了那些最終被寫入的頁。9.6.7 性能問題內(nèi)存空間大于物理內(nèi)存的錯覺并不是免費(fèi)的。如果我們選擇分配和替換策略不當(dāng),系統(tǒng)的性能會受到很大影響。此外,許多過渡分配技術(shù)都有潛在的陷阱,這些陷阱也可以影響性能。本節(jié)介紹在實(shí)現(xiàn)這些技術(shù)時,我們面臨的一些更基本的問題。
編輯推薦
《操作系統(tǒng)原理、設(shè)計(jì)與應(yīng)用》是世界著名計(jì)算機(jī)教材精選。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
操作系統(tǒng)原理、設(shè)計(jì)與應(yīng)用 PDF格式下載