Linux作業系統分析與實踐

Linux作業系統分析與實踐

《Linux作業系統分析與實踐》是2008年清華大學出版社出版的圖書,作者是Linux系列教材編寫組。

基本介紹

  • 書名:Linux作業系統分析與實踐
  • 作者:Linux系列教材編寫組
  • ISBN:9787302186892
  • 類別:圖書 > 計算機與網際網路 > 作業系統
  • 頁數:343
  • 出版社:清華大學出版社
  • 出版時間:2008-11-01
  • 裝幀:平裝
  • 開本:16開
內容簡介,目錄,

內容簡介

《Linux作業系統分析與實踐》簡要介紹作業系統的定義、功能、特性,以及發展歷史、分類、核心結構,闡述計算機硬體系統對作業系統的支持與要求,以Linux 2.6版本為例詳細分析Linux作業系統的進程管理、記憶體管理、檔案管理和設備管理的工作原理和設計。然後詳細介紹字元設備、塊設備和網路設備的Linux驅動程式設計與實現方法。除此以外,還給出了Linux系統管理、核心同步機制、進程間通信、記憶體管理、Proc檔案創建、設備驅動程式、核心裁減等實驗內容及有關參考代碼。
《Linux作業系統分析與實踐》通過詳細的例子引導瀆者系統地學習Linux作業系統的工作原理與設計,並通過Linux設備驅動程式設計實踐強化對Linux作業系統的理解和套用。《Linux作業系統分析與實踐》適於作為計算機相關專業方向的高年級學生或研究生的教材,也適合有志於從事Linux作業系統研究和開發的工程師閱讀。

目錄

第1章作業系統概述1
1.1作業系統在計算機系統中的地位1
1.2作業系統的定義、功能和特性2
1.2.1作業系統的定義2
1.2.2作業系統的特徵3
1.2.3作業系統的功能5
1.3作業系統的發展歷史及分類8
1.3.1作業系統的發展過程8
1.3.2作業系統分類12
1.4作業系統的核心體系結構模型19
1.5Linux的特點及發展簡史24
1.5.1什麼是Linux24
1.5.2Linux的發展歷程24
1.5.3Linux的特性25
1.5.4Linux核心的版本演化介紹27
1.6Linux核心的結構及主要組成部分30
1.6.1Linux核心系統體系結構30
1.6.2Linux核心的源碼組織結構31
1.7本章小結32
思考題33
進一步閱讀33
第2章計算機系統硬體基礎34
2.1計算機硬體的組成結構34
2.2處理器的工作模式36
2.380x86的保護模式38
2.3.180x86系統暫存器38
2.3.2存儲管理機制41
2.3.3分段機制41
2.3.4分頁機制43
2.3.5保護機制44
2.4中斷陷入與異常處理45
2.4.1中斷與異常45
2.4.2中斷系統46
2.4.3中斷處理過程48
2.4.4時鐘中斷48
2.5任務切換49
2.6SMP及多核技術51
2.7Linux系統引導過程概述53
2.7.1BIOS引導54
2.7.2LILO/GRUB引導54
2.7.3KernelBoot56
2.7.4Init引導57
2.8本章小結57
思考題57
進一步閱讀58
第3章進程管理59
3.1進程的原理和實現59
3.1.1進程控制塊60
3.1.2進程狀態62
3.1.3進程的標識64
3.1.4進程描述符在記憶體里的組織形式64
3.1.5進程的睡眠和喚醒65
3.2執行緒的原理與實現66
3.3Linux進程創建和結束68
3.3.1進程的創建68
3.3.2進程的結束71
3.4進程調度72
3.4.1進程的切換73
3.4.2進程的調度策略74
3.4.3進程調度的觸發和進程切換的時機75
3.4.4運行佇列76
3.4.5調度域77
3.4.6搶占80
3.4.7調度的時間複雜度81
3.4.8函式schedule的實現81
3.4.9函式load_balance的實現82
3.5並發控制原理83
3.5.1同步原語簡介84
3.5.2死鎖87
3.5.3同步原語87
3.6Linux下的同步機制88
3.6.1處理器數據88
3.6.2可搶占核心89
3.6.3開關中斷89
3.6.4原子操作90
3.6.5柵欄90
3.6.6自旋鎖和讀寫鎖91
3.6.7FastUserSpaceMutex92
3.6.8信號量92
3.7Linux下進程間通信95
3.7.1管道95
3.7.2命名管道97
3.7.3訊息佇列98
3.7.4共享記憶體99
3.7.5套接口101
3.8本章小結101
思考題101
進一步閱讀102
第4章記憶體管理103
4.1記憶體管理概述103
4.1.1記憶體管理的目的和功能103
4.1.2記憶體分配的方式104
4.1.3重定位105
4.2記憶體管理的基本技術108
4.2.1分區法108
4.2.2可重定位分區法110
4.2.3覆蓋技術112
4.2.4交換技術113
4.3分頁技術113
4.3.1分頁記憶體管理的基本原理114
4.3.2分頁技術中的地址映射115
4.3.3頁面保護方式118
4.4分段技術119
4.4.1分段技術的基本原理119
4.4.2分段的地址轉換120
4.4.3段的共享和保護121
4.5段頁式技術122
4.5.1段頁式技術的基本原理122
4.5.2地址轉換過程124
4.6虛擬存儲器技術124
4.6.1程式的局部性原理124
4.6.2虛擬存儲器的概念125
4.6.3虛擬存儲管理需要考慮的問題125
4.6.4虛擬分頁技術的基本原理126
4.6.5請求頁式管理中的置換算法128
4.6.6抖動問題131
4.6.7性能分析133
4.7Linux的記憶體管理134
4.7.1進程的虛存空間及其劃分134
4.7.2進程空間的描述134
4.7.3物理記憶體的管理136
4.7.4基於Slab的快取管理139
4.7.5頁面換出或丟棄142
4.7.6交換Cache143
4.7.7頁面的換入143
4.8本章小結144
思考題145
進一步閱讀146
第5章檔案系統147
5.1檔案147
5.1.1邏輯檔案與物理檔案147
5.1.2邏輯檔案的組織148
5.1.3邏輯檔案的結構149
5.1.4邏輯檔案的存取150
5.1.5物理檔案的結構150
5.2目錄154
5.2.1檔案控制塊154
5.2.2目錄、檔案目錄與目錄檔案155
5.2.3檔案檢索156
5.3檔案存儲空間管理157
5.4檔案共享159
5.4.1靜態共享159
5.4.2動態共享161
5.5Linux檔案系統162
5.5.1虛擬檔案系統162
5.5.2檔案系統註冊與註銷,安裝與卸載174
5.5.3檔案系統的快取機制175
5.5.4Ext2檔案系統177
5.5.5proc檔案系統179
5.6本章小結183
思考題183
進一步閱讀184
第6章設備管理185
6.1設備管理概述185
6.1.1設備的分類185
6.1.2設備控制器187
6.1.3設備管理的目標和功能188
6.1.4I/O設備的控制方式190
6.2I/O軟體194
6.2.1I/O軟體的分層結構194
6.2.2中斷處理程式195
6.2.3設備驅動程式196
6.2.4設備無關197
6.2.5用戶空間的I/O軟體199
6.2.6I/O軟體的層次調用關係200
6.3緩衝技術200
6.3.1緩衝的引入201
6.3.2緩衝的種類201
6.3.3緩衝池的管理203
6.4設備分配205
6.4.1與設備分配相關的因素205
6.4.2設備分配的原則和方式206
6.4.3設備分配技術206
6.4.4設備分配算法207
6.5I/O控制208
6.5.1I/O控制的引入208
6.5.2I/O控制的功能208
6.5.3I/O控制的實現209
6.6磁碟調度209
6.6.1磁碟存取時間209
6.6.2磁碟調度算法210
6.6.3性能比較212
6.7本章小結213
思考題214
進一步閱讀214
第7章Linux驅動程式編寫基礎215
7.1核心模組概述215
7.2核心模組編程基礎217
7.2.1核心模組的基本結構217
7.2.2編譯和載入218
7.2.3核心符號表220
7.2.4初始化與清理函式220
7.2.5模組參數221
7.3中斷服務例程223
7.3.1概述223
7.3.2檢測中斷號224
7.3.3安裝ISR226
7.4上半部和下半部229
7.4.1下半部的實現機制230
7.4.2軟中斷231
7.4.3tasklet機制232
7.4.4工作佇列234
7.4.5選擇合適的下半部機制236
7.5本章小結237
思考題237
進一步閱讀238
第8章字元設備和塊設備驅動程式239
8.1字元設備和塊設備驅動程式設計基礎239
8.1.1驅動層次結構240
8.1.2設備號240
8.1.3字元設備驅動程式註冊240
8.1.4塊設備驅動程式註冊242
8.2字元設備和塊設備驅動程式結構243
8.2.1字元設備驅動程式結構243
8.2.2塊設備驅動程式結構244
8.3字元設備和塊設備驅動程式的核心相關數據結構245
8.4開發實例249
8.4.1字元設備驅動程式249
8.4.2塊設備驅動程式252
8.5本章小結255
思考題255
進一步閱讀256
第9章網路設備驅動程式257
9.1網路設備驅動程式設計基礎257
9.2Linux網路設備驅動程式的結構258
9.3網路設備驅動程式的核心相關數據結構261
9.3.1net_device結構261
9.3.2sk_buffer結構266
9.4開發實例267
9.5本章小結273
思考題273
進一步閱讀274
實驗1Linux系統管理275
實驗2剪裁核心291
實驗3核心同步機制313
實驗4進程間通信(記憶體映射、共享記憶體、信號量、管道和信號等)317
實驗5proc檔案系統325
實驗6虛擬記憶體的管理331
實驗7字元、塊設備和網卡驅動338
參考文獻343

相關詞條

熱門詞條

聯絡我們