《操作系統(tǒng)原理及應(yīng)用(Linux)》講述了操作系統(tǒng)的基本原理、概念和應(yīng)用,涵蓋了操作系統(tǒng)概論、進(jìn)程管理、內(nèi)存管理、設(shè)備管理和文件管理;同時以Linux系統(tǒng)為主線,對Fedora系統(tǒng)安裝、桌面系統(tǒng)的使用、Linux應(yīng)用程序的安裝和升級、服務(wù)器環(huán)境配置、Linux環(huán)境下的C語言編程,以及Linux內(nèi)核構(gòu)建等實踐內(nèi)容進(jìn)行了介紹;后,以桌面虛擬化管理為例分析了Linux的具體應(yīng)用案例。
《操作系統(tǒng)原理及應(yīng)用(Linux)》既可作為高等學(xué)校計算機(jī)相關(guān)專業(yè)本、?频慕滩,也可作為非計算機(jī)專業(yè)人員深入學(xué)習(xí)操作系統(tǒng)理論和實踐知識的教材和輔導(dǎo)書,同時也適合作為廣大學(xué)生自學(xué)和考研復(fù)習(xí)的參考書使用。
適讀人群 :高等學(xué)校計算機(jī)相關(guān)專業(yè)本、?茖W(xué)生,
內(nèi)容本著重基礎(chǔ)、重能力、求創(chuàng)新、突出應(yīng)用的總體思想,適合作為廣大學(xué)生自學(xué)和考研復(fù)習(xí)的參考書使用。結(jié)合創(chuàng)新創(chuàng)業(yè)型高等院校的教學(xué)要求和IT職業(yè)的能力需求,并兼顧碩士研究生入學(xué)考試知識點(diǎn)。充分考慮了學(xué)習(xí)者對于操作系統(tǒng)原理和實踐應(yīng)用所需要掌握的知識。
操作系統(tǒng)是計算機(jī)系統(tǒng)的基本組成部分,是整個計算機(jī)系統(tǒng)的基礎(chǔ)和核心。正是由于操作系統(tǒng)的重要地位,它已成為各大專院校計算機(jī)相關(guān)專業(yè)的一門必修課程。但是,操作系統(tǒng)課程本身的概念較多、內(nèi)容抽象難懂,初學(xué)者要掌握它需要花費(fèi)很大的心思。而作為教材,如何合理編排教學(xué)內(nèi)容,將操作系統(tǒng)的原理和實踐應(yīng)用結(jié)合起來,使學(xué)習(xí)者能夠融會貫通,從而在工作和生活中發(fā)揮操作系統(tǒng)的作用,并能夠真正解決問題,這是值得人們不斷努力去探討的一件事。
在很多院校中,尤其是獨(dú)立學(xué)院和高職高專院校,其操作系統(tǒng)的教學(xué)偏重于理論部分,而采用的大部分教材主要也是闡述操作系統(tǒng)的概念和原理。這些內(nèi)容偏難、過于抽象,如進(jìn)程管理、內(nèi)存管理等,大多需要學(xué)生去想象,如果沒有一個良好的編程基礎(chǔ),根本無從理解。與一些重點(diǎn)院校不同,這些院校的大部分同學(xué)對深入操作系統(tǒng)內(nèi)部的需求不大,往往只是需要比較方便地理解操作系統(tǒng)的基本原理,然后能夠?qū)inux操作系統(tǒng)的應(yīng)用有更多的要求。雖然現(xiàn)有的一些教材中加入了關(guān)于Linux、UNIX或Windows系統(tǒng)的介紹,但是它們大多還是其前面理論部分的重復(fù)和延伸,或者是加入實際操作系統(tǒng)的源碼理解,很難滿足這部分大專院校和很多操作系統(tǒng)初學(xué)者的需求。
本書內(nèi)容本著重基礎(chǔ)、重能力、求創(chuàng)新、突出職業(yè)應(yīng)用的總體思想,結(jié)合創(chuàng)新創(chuàng)業(yè)型高等院校的教學(xué)要求和IT職業(yè)的能力需求,并兼顧碩士研究生入學(xué)考試知識點(diǎn),經(jīng)專家組多次討論審訂修改確定。
本書主體內(nèi)容基于浙江農(nóng)林大學(xué)和浙江省紹興市的《操作系統(tǒng)》精品課程建設(shè),通過十幾年來操作系統(tǒng)的教學(xué)和項目指導(dǎo),在編者積累經(jīng)驗和資料的基礎(chǔ)上最終整理而成。本書從實用的角度出發(fā),充分考慮了學(xué)習(xí)者對于操作系統(tǒng)原理和實踐應(yīng)用所需要掌握的知識,內(nèi)容包括:第1章引言,包含計算機(jī)系統(tǒng)的主要組成部分和原理概述,以及操作系統(tǒng)的概念、發(fā)展及特征等內(nèi)容;第2章進(jìn)程管理,介紹了進(jìn)程的概念、狀態(tài)、描述和控制、互斥和同步,以及處理器調(diào)度、線程和死鎖等知識;第3章內(nèi)存管理,介紹了分區(qū)管理、頁式、段式和段頁式管理方式,并討論了虛擬存儲技術(shù);第4章設(shè)備管理,介紹了I/O的組織、設(shè)計、緩沖,以及磁盤調(diào)度、RAID和磁盤高速緩存;第5章文件管理,介紹了文件的相關(guān)概念、組織結(jié)構(gòu)與存取方式,文件目錄管理,存儲空間管理,以及文件的共享和保護(hù)問題;第6章Fedora操作系統(tǒng),介紹了Fedora操作系統(tǒng)及其安裝;第7章Fedora桌面系統(tǒng)的使用,介紹了桌面系統(tǒng)的常規(guī)使用、網(wǎng)絡(luò)配置和常用命令行;第8章Linux應(yīng)用程序的安裝和管理,介紹了安裝Linux系統(tǒng)的幾種方法,包括yum、RPM包和源代碼安裝應(yīng)用的問題;第9章Linux服務(wù)器環(huán)境配置,介紹了Java、Tomcat、MySQL、Apache和PHP的環(huán)境安裝與配置;第10章Linux環(huán)境下C語言編程基礎(chǔ),介紹了編程工具vi、gcc和gdb的使用,以及程序查錯和調(diào)試的方法;第11章構(gòu)建Linux內(nèi)核,介紹了如何從源代碼開始配置和編譯Linux內(nèi)核,以及引導(dǎo)加載設(shè)置;第12章以桌面虛擬化管理為例,介紹了Linux虛擬化技術(shù),以及通過oVirt虛擬化管理平臺的應(yīng)用。全書深淺適度,安排系統(tǒng)、合理。
本書包括了操作系統(tǒng)的實踐應(yīng)用的各個方面,實用性很強(qiáng),可作為高等學(xué)校計算機(jī)相關(guān)專業(yè)本、?平滩模部勺鳛榉怯嬎銠C(jī)專業(yè)的人員深入學(xué)習(xí)操作系統(tǒng)理論和實踐知識的教材和輔導(dǎo)書,同時也適合廣大學(xué)生自學(xué)和考研復(fù)習(xí)使用,另外,對于Linux系統(tǒng)和網(wǎng)絡(luò)管理人員而言,本書也是一本很好的參考書。
本書計劃講課學(xué)時為72學(xué)時,不同的學(xué)校和專業(yè)可根據(jù)需要刪去或略講書中的某些章節(jié)。
本書第1、2、8、10章由汪杭軍編寫,第3、4、6、9章由樓吉林編寫,第5、7章由崔坤鵬編寫,第11、12章由張鎮(zhèn)潮和張八一編寫,全書由汪杭軍統(tǒng)稿。
由于時間倉促,加上作者水平有限,教學(xué)需要不斷更新完善,書中難免存在一些錯誤或不妥之處,懇請廣大讀者諒解。也歡迎對本書內(nèi)容提出批評和修改建議,對此將不勝感激。如有需要請聯(lián)系編者。
編者
前言
第1章引言:計算機(jī)系統(tǒng)和操作系統(tǒng)
概述
1.1計算機(jī)系統(tǒng)概述
1.1.1計算機(jī)的基本組成
1.1.2處理器寄存器和指令執(zhí)行
1.1.3中斷
1.1.4存儲器
1.1.5I/O訪問方式
1.2操作系統(tǒng)概述
1.2.1操作系統(tǒng)的概念及功能
1.2.2操作系統(tǒng)的發(fā)展
1.2.3操作系統(tǒng)的結(jié)構(gòu)
1.2.4現(xiàn)代操作系統(tǒng)的基本特征
1.3思考與練習(xí)
第2章進(jìn)程管理
2.1進(jìn)程的概念及其特性
2.1.1進(jìn)程的定義
2.1.2進(jìn)程的特性
2.2進(jìn)程狀態(tài)
2.2.1兩狀態(tài)進(jìn)程模型
2.2.2五狀態(tài)進(jìn)程模型
2.2.3掛起進(jìn)程模型
2.3進(jìn)程描述和控制
2.3.1進(jìn)程描述內(nèi)容
2.3.2執(zhí)行模式
2.3.3進(jìn)程控制操作
2.3.4進(jìn)程切換
2.4進(jìn)程互斥和同步
2.4.1進(jìn)程交互方式
2.4.2進(jìn)程互斥要求
2.4.3進(jìn)程互斥的實現(xiàn)
2.4.4信號量實現(xiàn)進(jìn)程的同步與互斥
2.4.5管程和消息傳遞
2.5處理器調(diào)度
2.5.1處理器調(diào)度的類型
2.5.2調(diào)度的衡量標(biāo)準(zhǔn)
2.5.3處理器調(diào)度算法
2.6線程
2.6.1線程的基本概念
2.6.2線程管理實現(xiàn)機(jī)制
2.6.3多線程的應(yīng)用
2.7死鎖
2.7.1死鎖的原理
2.7.2死鎖預(yù)防
2.7.3死鎖避免
2.7.4死鎖檢測和恢復(fù)
2.8思考與練習(xí)
第3章內(nèi)存管理
3.1計算機(jī)存儲結(jié)構(gòu)
3.1.1存儲器配置方式
3.1.2常見PC存儲結(jié)構(gòu)
3.2地址重定位及內(nèi)存訪問保護(hù)
3.2.1地址空間
3.2.2地址重定位
3.2.3地址重定位及存儲信息保護(hù)
3.3分區(qū)存儲管理技術(shù)
3.3.1單一分區(qū)內(nèi)存管理
3.3.2固定大小的多分區(qū)管理
3.3.3動態(tài)分區(qū)管理
3.4分區(qū)分配算法
3.4.1分區(qū)分配算法描述
3.4.2分配算法使用特性
3.5頁式管理
3.5.1分頁的基本思想
3.5.2靜態(tài)頁式管理
3.5.3動態(tài)頁式管理
3.6段式管理
3.6.1段式管理的基本原理
3.6.2地址變換機(jī)構(gòu)
3.7段頁式管理
3.7.1分頁與分段管理的特點(diǎn)
3.7.2段頁式管理方式
3.8虛擬存儲技術(shù)
3.8.1局部性原理
3.8.2虛擬存儲的基礎(chǔ)
3.8.3用分頁管理實現(xiàn)虛擬存儲
3.8.4虛擬存儲頁面置換算法
3.9思考與練習(xí)
第4章設(shè)備管理
4.1I/O設(shè)備功能的組織
4.1.1I/O功能的發(fā)展
4.1.2直接存儲器訪問
4.2操作系統(tǒng)設(shè)計問題
4.2.1設(shè)計目標(biāo)
4.2.2I/O功能的邏輯結(jié)構(gòu)
4.3I/O緩沖
4.3.1單緩沖
4.3.2雙緩沖
4.3.3循環(huán)緩沖
4.3.4緩沖的作用
4.4磁盤調(diào)序
4.4.1磁盤性能參數(shù)
4.4.2磁盤調(diào)度策略
4.5RAID
4.5.1RAID 0
4.5.2RAID 1
4.5.3RAID 2
4.5.4RAID 3
4.5.5RAID 4
4.5.6RAID 5
4.5.7RAID 6
4.6磁盤高速緩存
4.6.1設(shè)計考慮
4.6.2性能考慮
4.7思考與練習(xí)
第5章文件管理
5.1文件管理概述
5.1.1文件和文件系統(tǒng)
5.1.2文件管理的功能
5.1.3文件管理系統(tǒng)的層次結(jié)構(gòu)
5.2文件的組織結(jié)構(gòu)與存取方式
5.2.1堆文件
5.2.2順序文件
5.2.3索引順序文件
5.2.4索引文件
5.2.5直接文件或散列文件
5.3文件目錄管理
5.3.1文件目錄
5.3.2文件目錄結(jié)構(gòu)
5.3.3文件控制塊
5.3.4目錄與文件
5.4存儲空間管理
5.4.1空閑塊表法
5.4.2空閑塊鏈法
5.4.3位示圖法
5.4.4成組鏈接法
5.5文件共享與文件保護(hù)
5.5.1文件共享方法
5.5.2文件保護(hù)方式
5.6思考與練習(xí)
第6章Fedora操作系統(tǒng)
6.1Fedora操作系統(tǒng)簡介
6.2Fedora操作系統(tǒng)的安裝
6.2.1基本設(shè)置
6.2.2磁盤分區(qū)及軟件包選擇
6.2.3最終設(shè)置
6.3思考與練習(xí)
第7章Fedora桌面系統(tǒng)的使用
7.1登錄、注銷與關(guān)機(jī)
7.1.1開機(jī)與登錄
7.1.2鎖屏、注銷與關(guān)機(jī)
7.2使用 GNOME 桌面
7.2.1查看GNOME 桌面系統(tǒng)版本
7.2.2使用GNOME桌面工具管理Linux
7.3Fedora 網(wǎng)絡(luò)配置
7.4使用命令行
7.4.1認(rèn)識命令行
7.4.2命令的語法
7.4.3常用命令
7.5思考與練習(xí)
第8章Linux應(yīng)用程序的安裝和管理
8.1使用 yum 命令安裝和升級應(yīng)用程序
8.1.1在線安裝
8.1.2本地安裝
8.1.3其他功能
8.2管理 RPM 軟件包
8.3從源代碼安裝應(yīng)用程序
8.3.1準(zhǔn)備工作
8.3.2使用源代碼進(jìn)行安裝
8.4把應(yīng)用程序的圖標(biāo)添加到桌面上
8.5常用應(yīng)用程序推薦列表
8.6思考與練習(xí)
第9章Linux服務(wù)器環(huán)境配置
9.1Java開發(fā)環(huán)境的安裝與配置
9.2Tomcat服務(wù)器的安裝與配置
9.3MySQL數(shù)據(jù)庫的安裝與配置
9.4Apache服務(wù)器的安裝與配置
9.5PHP環(huán)境的安裝與配置
9.6思考與練習(xí)
第10章Linux環(huán)境下C語言編程
基礎(chǔ)
10.1準(zhǔn)備知識
10.1.1vi編輯器
10.1.2gcc編譯器和gdb調(diào)試器
10.2Linux簡單C程序?qū)崿F(xiàn)
10.3程序查錯及調(diào)試
10.4思考與練習(xí)
第11章構(gòu)建Linux內(nèi)核
11.1下載、安裝和預(yù)備內(nèi)核源代碼
11.1.1相關(guān)信息和先決條件
11.1.2下載和安裝源代碼
11.2配置和編譯Linux內(nèi)核
11.2.1配置內(nèi)核
11.2.2定制內(nèi)核
11.2.3編譯
11.3安裝內(nèi)核、模塊和相關(guān)文件
11.4GRUB:Linux引導(dǎo)加載程序
11.5思考與練習(xí)
第12章Linux應(yīng)用案例(桌面云)
12.1云的概念和桌面虛擬化
12.2基于Linux的虛擬化技術(shù)
12.2.1Xen技術(shù)
12.2.2KVM技術(shù)
12.3oVirt虛擬化管理平臺
12.3.1oVirt架構(gòu)和運(yùn)行基礎(chǔ)
12.3.2基于CentOS 7的環(huán)境準(zhǔn)備
12.3.3ovirt-engine安裝
12.3.4ovirt-note安裝
12.3.5操作系統(tǒng)設(shè)置
12.3.6oVirt配置
12.3.7虛擬機(jī)的創(chuàng)建和管理
12.3.8大規(guī)模部署虛擬機(jī)
參考文獻(xiàn)