出版時間:2008-11 出版社:清華大學(xué) 作者:Linux系列教材編寫組 頁數(shù):343
Tag標(biāo)簽:無
前言
誕生于1991年,今年“寂寞十七歲”的Linux一點(diǎn)也不寂寞。從微型嵌入式系統(tǒng)到超級計算機(jī),處處都可看到Linux多彩的光環(huán)。十七年來一步一個腳印,Linux正存成為操作系統(tǒng)的另一主流。 Linux也是開放式創(chuàng)新的好見證。開源社區(qū)集結(jié)全球精英,為共同的需求一起創(chuàng)新。通過熱烈的討論與相互的腦力激蕩,開源項(xiàng)目的開發(fā)過程也就是一個寶貴的學(xué)習(xí)過程?! 禠inux操作系統(tǒng)分析與實(shí)踐》的出版為莘莘學(xué)子及業(yè)界人士提供了一本完整的Linux教材,理論概念介紹與實(shí)驗(yàn)指導(dǎo)緊密結(jié)合,結(jié)構(gòu)清晰、內(nèi)容順暢易懂。除Linux之外,這本教材很有系統(tǒng)地講述了操作系統(tǒng)的主要模塊,因此它也將是一般操作系統(tǒng)課程的好教材;并且更能為未來虛擬化、實(shí)時性及安全性系統(tǒng)的教材打下扎實(shí)的基礎(chǔ)?! ∮⑻貭柟径嗄陙聿粩嗯c高等學(xué)校合作,并積極參與Linux開源項(xiàng)目的開發(fā),此次能夠?yàn)殚L年合作的教授們開發(fā)本教材提供支持,英特爾公司深感欣喜,也祝賀他們?yōu)橹袊叩葘W(xué)校計算機(jī)專業(yè)教學(xué)水平的提高做出新的貢獻(xiàn)。
內(nèi)容概要
《Linux操作系統(tǒng)分析與實(shí)踐》簡要介紹操作系統(tǒng)的定義、功能、特性,以及發(fā)展歷史、分類、內(nèi)核結(jié)構(gòu),闡述計算機(jī)硬件系統(tǒng)對操作系統(tǒng)的支持與要求,以Linux 2.6版本為例詳細(xì)分析Linux操作系統(tǒng)的進(jìn)程管理、內(nèi)存管理、文件管理和設(shè)備管理的工作原理和設(shè)計。然后詳細(xì)介紹字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備的Linux驅(qū)動程序設(shè)計與實(shí)現(xiàn)方法。除此以外,還給出了Linux系統(tǒng)管理、內(nèi)核同步機(jī)制、進(jìn)程間通信、內(nèi)存管理、Proc文件創(chuàng)建、設(shè)備驅(qū)動程序、內(nèi)核裁減等實(shí)驗(yàn)內(nèi)容及有關(guān)參考代碼。 《Linux操作系統(tǒng)分析與實(shí)踐》通過詳細(xì)的例子引導(dǎo)瀆者系統(tǒng)地學(xué)習(xí)Linux操作系統(tǒng)的工作原理與設(shè)計,并通過Linux設(shè)備驅(qū)動程序設(shè)計實(shí)踐強(qiáng)化對Linux操作系統(tǒng)的理解和應(yīng)用?!禠inux操作系統(tǒng)分析與實(shí)踐》適于作為計算機(jī)相關(guān)專業(yè)方向的高年級學(xué)生或研究生的教材,也適合有志于從事Linux操作系統(tǒng)研究和開發(fā)的工程師閱讀。
書籍目錄
第1章 操作系統(tǒng)概述1.1 操作系統(tǒng)在計算機(jī)系統(tǒng)中的地位1.2 操作系統(tǒng)的定義、功能和特性1.2.1 操作系統(tǒng)的定義1.2.2 操作系統(tǒng)的特征1.2.3 操作系統(tǒng)的功能1.3 操作系統(tǒng)的發(fā)展歷史及分類1.3.1 操作系統(tǒng)的發(fā)展過程1.3.2 操作系統(tǒng)分類1.4 操作系統(tǒng)的內(nèi)核體系結(jié)構(gòu)模型1.5 Linux的特點(diǎn)及發(fā)展簡史1.5.1 什么是Linux1.5.2 Linux的發(fā)展歷程1.5.3 Linux的特性1.5.4 Linux內(nèi)核的版本演化介紹1.6 Linux內(nèi)核的結(jié)構(gòu)及主要組成部分1.6.1 Linux內(nèi)核系統(tǒng)體系結(jié)構(gòu)1.6.2 Linux內(nèi)核的源碼組織結(jié)構(gòu)1.7 本章小結(jié)思考題進(jìn)一步閱讀第2章 計算機(jī)系統(tǒng)硬件基礎(chǔ)2.1 計算機(jī)硬件的組成結(jié)構(gòu)2.2 處理器的工作模式2.3 80x86的保護(hù)模式2.3.1 80x86系統(tǒng)寄存器2.3.2 存儲管理機(jī)制2.3.3 分段機(jī)制2.3.4 分頁機(jī)制2.3.5 保護(hù)機(jī)制2.4 中斷陷入與異常處理2.4.1 中斷與異常2.4.2 中斷系統(tǒng)2.4.3 中斷處理過程2.4.4 時鐘中斷2.5 任務(wù)切換2.6 SMP及多核技術(shù)2.7 Linux系統(tǒng)引導(dǎo)過程概述2.7.1 BIOS引導(dǎo)2.7.2 LILO/GRUB引導(dǎo)2.7.3 Kernel Boot2.7.4 Init引導(dǎo)2.8 本章小結(jié)思考題進(jìn)一步閱讀第3章 進(jìn)程管理3.1 進(jìn)程的原理和實(shí)現(xiàn)3.1.1 進(jìn)程控制塊3.1.2 進(jìn)程狀態(tài)3.1.3 進(jìn)程的標(biāo)識3.1.4 進(jìn)程描述符在內(nèi)存里的組織形式3.1.5 進(jìn)程的睡眠和喚醒3.2 線程的原理與實(shí)現(xiàn)3.3 Linux進(jìn)程創(chuàng)建和結(jié)束3.3.1 進(jìn)程的創(chuàng)建3.3.2 進(jìn)程的結(jié)束3.4 進(jìn)程調(diào)度3.4.1 進(jìn)程的切換3.4.2 進(jìn)程的調(diào)度策略3.4.3 進(jìn)程調(diào)度的觸發(fā)和進(jìn)程切換的時機(jī)3.4.4 運(yùn)行隊(duì)列3.4.5 調(diào)度域3.4.6 搶占3.4.7 調(diào)度的時間復(fù)雜度3.4.8 函數(shù)schedule的實(shí)現(xiàn)3.4.9 函數(shù)load balance的實(shí)現(xiàn)3.5 并發(fā)控制原理3.5.1 同步原語簡介3.5.2 死鎖3.5.3 同步原語3.6 Linux下的同步機(jī)制3.6.1 處理器數(shù)據(jù)3.6.2 可搶占內(nèi)核3.6.3 開關(guān)中斷3.6.4 原子操作3.6.5 柵欄3.6.6 自旋鎖和讀寫鎖3.6.7 Fast User Space Mutex3.6.8 信號量3.7 Linux下進(jìn)程間通信3.7.1 管道3.7.2 命名管道3.7.3 消息隊(duì)列3.7.4 共享內(nèi)存3.7.5 套接口3.8 本章小結(jié)思考題進(jìn)一步閱讀第4章 內(nèi)存管理4.1 內(nèi)存管理概述4.1.1 內(nèi)存管理的目的和功能4.1.2 內(nèi)存分配的方式4.1.3 重定位4.2 內(nèi)存管理的基本技術(shù)4.2.1 分區(qū)法4.2.2 可重定位分區(qū)法4.2.3 覆蓋技術(shù)4.2.4 交換技術(shù)4.3 分頁技術(shù)4.3.1 分頁內(nèi)存管理的基本原理4.3.2 分頁技術(shù)中的地址映射4.3.3 頁面保護(hù)方式4.4 分段技術(shù)4.4.1 分段技術(shù)的基本原理4.4.2 分段的地址轉(zhuǎn)換4.4.3 段的共享和保護(hù)4.5 段頁式技術(shù)4.5.1 段頁式技術(shù)的基本原理4.5.2 地址轉(zhuǎn)換過程4.6 虛擬存儲器技術(shù)4.6.1 程序的局部性原理4.6.2 虛擬存儲器的概念4.6.3 虛擬存儲管理需要考慮的問題4.6.4 虛擬分頁技術(shù)的基本原理4.6.5 請求頁式管理中的置換算法4.6.6 抖動問題4.6.7 性能分析4.7 Linux的內(nèi)存管理4.7.1 進(jìn)程的虛存空間及其劃分4.7.2 進(jìn)程空間的描述4.7.3 物理內(nèi)存的管理4.7.4 基于Slab的緩存管理4.7.5 頁面換出或丟棄4.7.6 交換Cache4.7.7 頁面的換人4.8本章小結(jié)思考題第5章 文件系統(tǒng)第6章 設(shè)備管理第7章 Linux驅(qū)動程度編寫基礎(chǔ)第8章 字符設(shè)備和塊設(shè)備驅(qū)動程度第9章 網(wǎng)絡(luò)設(shè)備驅(qū)動程度實(shí)驗(yàn)1 Linux系統(tǒng)管理實(shí)驗(yàn)2 剪裁內(nèi)核實(shí)驗(yàn)3 內(nèi)核同步機(jī)制實(shí)驗(yàn)4 進(jìn)程間通信(內(nèi)存映射、共享內(nèi)存、信號量、管道和信號等)實(shí)驗(yàn)5 proc文件系統(tǒng)實(shí)驗(yàn)6 虛擬內(nèi)存的管理實(shí)驗(yàn)7 字符、塊設(shè)備和網(wǎng)卡驅(qū)動參考文獻(xiàn)
章節(jié)摘錄
第1章 操作系統(tǒng)概述 1.5 Linux的特點(diǎn)及發(fā)展簡史 1.5.1 什么是Linux Linux是由Linus Torvalds和許多自由軟件開發(fā)者,通過Internet共同努力而形成的一種能運(yùn)行于多種硬件平臺(Intel、Alpha、PowerPC和Sun SPARC)之上,源代碼公開,功能強(qiáng)大,運(yùn)行穩(wěn)定高效,遵守POSIX標(biāo)準(zhǔn),與UNIX兼容的免費(fèi)操作系統(tǒng)?! ?.5.2 Linux的發(fā)展歷程 Linux的歷史可以上溯到20世紀(jì)60年代末,美國貝爾實(shí)驗(yàn)室發(fā)明了UNIX,一個多用戶多任務(wù)的操作系統(tǒng)。那個年代,計算機(jī)程序的源碼都是公開的,盡管它們很多時候只能被專業(yè)前沿的程序員們看懂。到了20世紀(jì)70年代,操作系統(tǒng)開始商業(yè)化,出于利益最大化等的考慮,源代碼開始向用戶封閉,這給許多傳統(tǒng)的程序員黑客帶來了不便,他們能夠發(fā)現(xiàn)程序中的漏洞并有解決的能力,但是提供程序的商業(yè)公司卻拒絕讓用戶直接修改。對傳統(tǒng)黑客來說,這對計算機(jī)軟件的發(fā)展是一個相當(dāng)大的限制?! ?984年,黑客Richard M Stallman成立了自由軟件基金會(Free Software Foundation,F(xiàn)SF)和開源項(xiàng)目計劃GNU,并提出了著名的開源協(xié)議標(biāo)準(zhǔn)GPL。GNU的意思就是GNUs Not UNIX,以一個遞歸式的定義描述了自己和UNIX有關(guān)又不同于UNIX的特點(diǎn)。其計劃是開發(fā)出一套完整的免費(fèi)、公開源代碼的UNIX操作系統(tǒng)和及其應(yīng)用軟件?! 〉?0世紀(jì)80年代末,GNU計劃的很多工作已經(jīng)完工,包括了C語言的編譯器GCC,文本編輯軟件emacs等,但是操作系統(tǒng)計劃Hurd卻遲遲沒有推出。這時芬蘭大學(xué)生Linus Tovalds于1991年10月在學(xué)校的ftp上發(fā)布了自己所編寫的類UNIX操作系統(tǒng)——Linux 0.02版的源代碼,并宣布它遵守GPL協(xié)議,而且符合UNIX的操作系統(tǒng)P()SIX標(biāo)準(zhǔn),源代碼可以在UNIX主機(jī)上用9cc編譯生成可執(zhí)行的二進(jìn)制代碼,可以在個人計算機(jī)平臺(Intel 80386)上運(yùn)行。這些純粹是源于他的業(yè)余愛好。Linus在上大學(xué)時,操作系統(tǒng)課程中講述的是Minix,一種用于教學(xué)的小型的類UNIX操作系統(tǒng)。他覺得Minix不太好,決定自己寫一個保護(hù)模式下的操作系統(tǒng)。1991年8月,Linus完成了Linux的0.01版,當(dāng)然它很不完善,甚至沒有軟盤驅(qū)動程序。
編輯推薦
近十年來,Linux在促進(jìn)信息產(chǎn)業(yè)發(fā)展的同時,也為設(shè)計各種新型操作系統(tǒng)提供了難得的案例。應(yīng)該說Linux為操作系統(tǒng)研究者提供了新理論、新方法、新技術(shù)的實(shí)踐和驗(yàn)證平臺,同時反過來促進(jìn)了操作系統(tǒng)的不斷發(fā)展。Linux由于源代碼公開,特別適合于高等學(xué)校計算機(jī)專業(yè)本科生操作系統(tǒng)課程的教學(xué)?! 禠inux操作系統(tǒng)分析與實(shí)踐》注重學(xué)生對Linux操作系統(tǒng)分析和設(shè)計能力的培養(yǎng),系統(tǒng)地介紹了操作系統(tǒng)的定義、功能等基本知識,并以Intel X86為例介紹了計算機(jī)硬件子系統(tǒng)對操作系統(tǒng)的支持與要求,進(jìn)程管理以及在Linux內(nèi)核里的實(shí)現(xiàn)方法,內(nèi)存管理的基本原理、技術(shù);以Ext2,Proc為例詳細(xì)介紹了Linux文件系統(tǒng),設(shè)備管理的基本原理以及Linux設(shè)備管理的特點(diǎn),Linux字符設(shè)備和塊設(shè)備驅(qū)動程序設(shè)計的方法及實(shí)例等等。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Linux操作系統(tǒng)分析與實(shí)踐 PDF格式下載