出版時(shí)間:2009-6 出版社:浙江大學(xué)出版社 作者:李善平,季江民,尹康凱 編著 頁數(shù):329
內(nèi)容概要
本書介紹了Linux操作系統(tǒng)機(jī)制,分析了部分Linux內(nèi)核代碼,并列出了操作系統(tǒng)針對(duì)性的實(shí)驗(yàn);從Linux操作系統(tǒng)環(huán)境、系統(tǒng)調(diào)用、定時(shí)器、內(nèi)核模塊、進(jìn)程調(diào)度、虛擬存儲(chǔ)、文件系統(tǒng),循序漸進(jìn)到Linux內(nèi)核的改動(dòng)。Linux.操作系統(tǒng)環(huán)境使用放在本書的附錄中,對(duì)于沒有學(xué)習(xí)過Linux操作系統(tǒng)命令的讀者來說,需要掌握這方面的知識(shí)。 另一方面,作者本身也是程序員,對(duì)程序設(shè)計(jì)過程中的“創(chuàng)造性”有一定的體會(huì)。建議讀者在使用本書時(shí),大可不必循規(guī)蹈矩,讀者可以用自己的思路學(xué)習(xí)Linux內(nèi)核,這樣既學(xué)到Linux源程序本身,更學(xué)到程序的“靈魂”。 本書是操作系統(tǒng)課程的實(shí)驗(yàn)教材,適合計(jì)算機(jī)及相關(guān)專業(yè)的本科生使用。所以,在書的編排上由淺入深,也自成單元。根據(jù)作者的經(jīng)驗(yàn),按照本書章節(jié)的順序做實(shí)驗(yàn)是比較合適的。
書籍目錄
第1章 操作系統(tǒng)課程設(shè)計(jì)概要 1.1 課程設(shè)計(jì)目的 1.2 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告基本要求 1.3 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告樣例第2章 Linux操作系統(tǒng)環(huán)境第3章 編譯Linux內(nèi)核 3.1 Linux內(nèi)核基礎(chǔ) 3.1.1 Linux源程序的目錄分布 3.1.2 kernel目錄 3.1.3 mm目錄 3.1.4 fs目錄 3.1.5 arch目錄 3.1.6 include目錄 3.1.7 net目錄 3.2 實(shí)驗(yàn)編譯Linux內(nèi)核 3.2.1 下載內(nèi)核源代碼 3.2.2 部署內(nèi)核源代碼 3.2.3 配置內(nèi)核 3.2.4 編譯內(nèi)核和模塊 3.2.5 啟動(dòng)Linux內(nèi)核 3.2.6 應(yīng)用grub配置啟動(dòng)文件第4章 系統(tǒng)調(diào)用 4.1 系統(tǒng)調(diào)用基礎(chǔ)知識(shí) 4.1.1 一個(gè)使用系統(tǒng)調(diào)用的例子 4.1.2 系統(tǒng)調(diào)用是什么 4.1.3 為什么需要系統(tǒng)調(diào)用 4.2 Linux系統(tǒng)調(diào)用實(shí)現(xiàn)機(jī)制分析 4.2.1 entry.S匯編文件 4.2.2 traps.c(arch/i386/kelaael/traps.c)文件 4.2.3 系統(tǒng)調(diào)用中普通參數(shù)的傳遞及unistd.h 4.2.4 getuid()系統(tǒng)調(diào)用的實(shí)現(xiàn) 4.3 實(shí)驗(yàn)1添加一個(gè)簡單系統(tǒng)調(diào)用 4.4 實(shí)驗(yàn)2添加一個(gè)更復(fù)雜的系統(tǒng)調(diào)用第5章 進(jìn)程管理 5.1 Linux進(jìn)程 5.1.1 進(jìn)程是什么 5.1.2 Linux進(jìn)程控制塊 5.2 Linux進(jìn)程創(chuàng)建及分析 5.2.1 第一個(gè)進(jìn)程 5.2.2 fork、clone、kernel-thread 5.2.3 exec裝載與執(zhí)行進(jìn)程 5.2.4 Linux中的線程 5.3 實(shí)驗(yàn)1分析系統(tǒng)調(diào)用sys—exit函數(shù) 5.4 實(shí)驗(yàn)2用fork()創(chuàng)建子進(jìn)程 5.5 實(shí)驗(yàn)3用clone()創(chuàng)建子進(jìn)程第6章?。痯roe文件系統(tǒng) 6.1?。痯roc文件系統(tǒng)的介紹 6.1.1 系統(tǒng)信息 6.1.2 進(jìn)程信息 6.2 /proc文件系統(tǒng)的使用 6.2.1 創(chuàng)建與刪除proc文件 6.2.2 讀寫proc文件 6.3?。痯roc文件系統(tǒng)分析 6.3.1 /proc文件數(shù)據(jù)結(jié)構(gòu)定義 6.3.2?。痯roc下文件的創(chuàng)建和刪除 6.3.3?。痯roc下超級(jí)塊和索引節(jié)點(diǎn)的操作 6.3.4?。痯roc文件系統(tǒng)初始化 6.4 實(shí)驗(yàn)1分析/proc文件系統(tǒng)初始化 6.5 實(shí)驗(yàn)2/proc文件系統(tǒng)的一個(gè)簡單應(yīng)用第7章 內(nèi)核模塊 7.1 什么是內(nèi)核模塊 7.2 內(nèi)核模塊實(shí)現(xiàn)機(jī)制 7.2.1 內(nèi)核模塊和應(yīng)用程序的比較 7.2.2 內(nèi)核符號(hào)表 7.2.3 模塊依賴 7.2.4 內(nèi)核代碼分析 7.3 如何使用內(nèi)核模塊 7.3.1 模塊的加載 7.3.2 模塊的卸載 7.3.3 模塊實(shí)用程序modutils 7.4 實(shí)驗(yàn)1編寫一個(gè)簡單的內(nèi)核模塊 7.5 實(shí)驗(yàn)2多文件內(nèi)核模塊的實(shí)現(xiàn)第8章 虛擬內(nèi)存管理 8.1 Linux虛擬內(nèi)存管理 8.1.1 虛擬內(nèi)存的抽象模型 8.1.2 Linux的分頁管理 8.1.3 虛存段(vma)的組織和管理 8.1.4 頁面分配與回收 8.2 實(shí)驗(yàn)1統(tǒng)計(jì)系統(tǒng)缺頁次數(shù) 8.3 實(shí)驗(yàn)2統(tǒng)計(jì)一段時(shí)間內(nèi)系統(tǒng)缺頁次數(shù)第9章 時(shí)鐘與定時(shí)器 9.1 時(shí)鐘和定時(shí)器介紹 9.1.1 系統(tǒng)時(shí)鐘 9.1.2 定時(shí)器 9.1.3 bottom half 9.2 Linux系統(tǒng)時(shí)鐘 9.2.1 系統(tǒng)時(shí)鐘的正常運(yùn)行 9.2.2 系統(tǒng)時(shí)鐘的設(shè)置和調(diào)整 9.3 Linux系統(tǒng)定時(shí)器 9.3.1 定時(shí)器的實(shí)現(xiàn)機(jī)制 9.3.2 定時(shí)器具體實(shí)現(xiàn) 9.4 實(shí)驗(yàn)1一個(gè)簡單的定時(shí)器的實(shí)現(xiàn) 9.5 實(shí)驗(yàn)2統(tǒng)計(jì)進(jìn)程的時(shí)間第10章 文件系統(tǒng) 10.1 Linux文件系統(tǒng)概念 10.2 VFs文件系統(tǒng)分析 10.2.1 什么是VFS文件系統(tǒng) 10.2.2 為什么需要VFS 10.2.3 VFS文件系統(tǒng)的結(jié)構(gòu) 10.2.4 進(jìn)程與文件的關(guān)系 10.2.5 文件系統(tǒng)的安裝(mount.) 10.2.6 路徑的定位和查找 10.3 ext2文件系統(tǒng) 10.3.1 ext2體系結(jié)構(gòu) 10.3.2 ext2的關(guān)鍵數(shù)據(jù)結(jié)構(gòu) 10.3.3 ext2的操作實(shí)現(xiàn) 10.3.4 ext2數(shù)據(jù)塊分配機(jī)制 10.4 文件操作分析 10.4.1 open操作 10.4.2 read操作 10.4.3 ext2的read、write操作 10.5 實(shí)驗(yàn)1 分析close和write操作 10.6 實(shí)驗(yàn)2添加一個(gè)文件系統(tǒng)附錄 Linux操作系統(tǒng)環(huán)境參考文獻(xiàn)
章節(jié)摘錄
插圖:第1章 操作系統(tǒng)課程設(shè)計(jì)概要1.1 課程設(shè)計(jì)目的操作系統(tǒng)是計(jì)算機(jī)科學(xué)與技術(shù)領(lǐng)域中最為活躍的學(xué)科之一,因而操作系統(tǒng)課程也自然是計(jì)算機(jī)專業(yè)的一門核心專業(yè)基礎(chǔ)課。操作系統(tǒng)課程內(nèi)容綜合了基礎(chǔ)理論教學(xué)、課程實(shí)踐教學(xué)、最新技術(shù)追蹤等多項(xiàng)內(nèi)容。但由于操作系統(tǒng)的高度復(fù)雜性,使得它成為專業(yè)課中最難學(xué)的課程之一。通過對(duì)操作系統(tǒng)原理的學(xué)習(xí),要求理解操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中的作用、地位和特點(diǎn),熟練掌握和運(yùn)用操作系統(tǒng)在進(jìn)行計(jì)算機(jī)軟硬件資源管理和調(diào)度時(shí)常用的概念、方法、策略、算法、手段等。操作系統(tǒng)課程概念多、內(nèi)容廣、難度大,抽象強(qiáng)。因此,操作系統(tǒng)課程的學(xué)習(xí)面臨這樣一些難題:如何形象化地學(xué)習(xí)和理解抽象的操作系統(tǒng)概念及原理,如何緊跟飛速發(fā)展的操作系統(tǒng)技術(shù)。為了解決這些問題,我們認(rèn)為不但要學(xué)好操作系統(tǒng)原理,還要加強(qiáng)操作系統(tǒng)實(shí)驗(yàn)。操作系統(tǒng)實(shí)驗(yàn)可幫助學(xué)生理論聯(lián)系實(shí)際,鞏固和復(fù)習(xí)所學(xué)過的操作系統(tǒng)概念與原理;也增強(qiáng)學(xué)生的實(shí)踐能力,培養(yǎng)學(xué)生的動(dòng)手能力,提高學(xué)生綜合分析問題和解決問題的能力。Linux是目前常用的流行操作系統(tǒng)之一,其最大的特點(diǎn)是開放源代碼。使用Linux操作系統(tǒng)和分析Linux內(nèi)核代碼是學(xué)習(xí)操作系統(tǒng)課程的很好選擇。通過對(duì)Linux操作系統(tǒng)內(nèi)核源代碼的分析和實(shí)踐,可以幫助學(xué)生對(duì)操作系統(tǒng)的用戶界面和編程界面、體系結(jié)構(gòu)、各組成部分的實(shí)現(xiàn)技術(shù)等,有更深入的整體認(rèn)識(shí);幫助學(xué)生進(jìn)一步掌握操作系統(tǒng)原理。Linux內(nèi)核的學(xué)習(xí)可以分兩個(gè)階段:在Linux內(nèi)核分析階段,通過閱讀Linux內(nèi)核源代碼,改變部分內(nèi)核源程序,改變系統(tǒng)行為,從而學(xué)習(xí)操作系統(tǒng)各個(gè)組成部分的實(shí)現(xiàn)機(jī)理,鞏固操作系統(tǒng)原理知識(shí)。在Linux內(nèi)核改進(jìn)階段,通過深人、綜合分析Linux操作系統(tǒng)的實(shí)現(xiàn)機(jī)理,通過一定規(guī)模的源代碼重寫,使Linux系統(tǒng)功能或行為產(chǎn)生實(shí)質(zhì)性變化,這個(gè)階段可以鍛煉學(xué)生綜合知識(shí)運(yùn)用的能力。
編輯推薦
《操作系統(tǒng)課程設(shè)計(jì)》由浙江大學(xué)出版社出版。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
操作系統(tǒng)課程設(shè)計(jì) PDF格式下載