Linux 作業系統原理與套用(第2版)

Linux 作業系統原理與套用(第2版)

《Linux 作業系統原理與套用(第2版)》是2012年清華大學出版社出版的圖書,作者是陳莉君、康華等。

基本介紹

  • 書名:《Linux 作業系統原理與套用(第2版)》
  • 作者:陳莉君等
  • ISBN:9787302278368
  • 定價:28元
  • 出版社清華大學出版社
  • 出版時間:2012年
  • 裝幀:平裝
  • 印次:2-1
圖書簡介,目錄,

圖書簡介

Linux 作業系統原理與套用(第2版)》是Linux核心及動手實踐的入門教程。在龐大的Linux核心中,選取最基本的內容——進程管理、中斷、記憶體管理、系統調用、核心同步、檔案系統、I/O設備管理等進行闡述。從原理出發,基於Linux核心原始碼但又不局限於代碼,分析原理如何落實到代碼,並通過簡單有效的實例說明如何調用Linux核心提供的函式進行核心級程式的開發。主要章節給出了具有實用價值的小型套用,從而讓讀者在實踐中加深對原理的理解和套用能力。
本書是Linux核心及動手實踐的入門教程。在龐大的Linux核心中,選取最基本的內容——進程管理、中斷、記憶體管理、系統調用、核心同步、檔案系統、I/O設備管理等進行闡述。從原理出發,基於Linux核心原始碼但又不局限於代碼,分析原理如何落實到代碼,並通過簡單有效的實例說明如何調用Linux核心提供的函式進行核心級程式的開發。主要章節給出了具有實用價值的小型套用,從而讓讀者在實踐中加深對原理的理解和套用能力。
本書對於希望深入Linux作業系統內部、閱讀Linux核心原始碼以及進行核心級程式開發的讀者具有較高的參考價值。本書可作為高等院校計算機相關專業的本科生、研究生的教材,Linux套用開發人員、嵌入式系統開發人員等均可從本書中獲益。

目錄

第1章概述
1.1認識作業系統
1.1.1從使用者角度看
1.1.2從程式開發者的角度看
1.1.3從作業系統在整個計算機系統所處位置看
1.1.4從作業系統設計者的角度看
1.1.5作業系統組成
1.2開放原始碼的UNIX/Linux作業系統
1.2.1UNIX誕生和發展
1.2.2Linux誕生
1.2.3作業系統標準POSIX
1.2.4GNU 和 Linux
1.2.5Linux的開發模式
1.3Linux核心
1.3.1Linux 核心的技術特點
1.3.2Linux核心的位置
1.3.3Linux核心體系結構
1.4Linux核心原始碼
1.4.1Linux核心版本
1.4.2Linux核心原始碼的結構
1.4.3Linux核心原始碼分析工具
1.5Linux核心模組編程入門
1.5.1模組的定義
1.5.2編寫一個簡單的模組
1.5.3應用程式與核心模組的比較
1.6Linux 核心中鍊表的實現及套用
1.6.1鍊表的演化
1.6.2鍊表的定義和操作
1.6.3鍊表的套用
1.7小結
習題
第2章記憶體定址
2.1記憶體定址
2.1.1Intel x86 CPU定址的演變
2.1.280x86暫存器簡介
2.1.3物理地址、虛擬地址及線性地址
2.2段機制
2.2.1段描述符
2.2.2地址轉換及保護
2.2.3Linux中的段
2.3分頁機制
2.3.1頁與頁表
2.3.2線性地址到物理地址的轉換
2.3.3分頁舉例
2.3.4頁面高速快取
2.4Linux中的分頁機制
2.5Linux中的彙編語言
2.5.1AT&T與Intel彙編語言的比較
2.5.2AT&T彙編語言的相關知識
2.5.3GCC嵌入式彙編
2.6Linux系統地址映射舉例
2.7小結
習題
第3章進程
3.1進程介紹
3.1.1程式和進程
3.1.2進程的層次結構
3.1.3進程狀態
3.1.4進程舉例
3.2Linux系統中的進程控制塊
3.2.1進程狀態
3.2.2進程標識符
3.2.3進程之間的親屬關係
3.2.4進程控制塊的存放
3.2.5當前進程
3.3Linux系統中進程的組織方式
3.3.1進程鍊表
3.3.2哈希表
3.3.3就緒佇列
3.3.4等待佇列
3.4進程調度
3.4.1基本原理
3.4.2時間片
3.4.3Linux進程調度時機
3.4.4進程調度的依據
3.4.5調度函式schedule()的實現
3.4.6Linux 2.6調度程式的改進
3.5進程的創建
3.5.1創建進程
3.5.2執行緒及其創建
3.6與進程相關的系統調用及其套用
3.6.1fork系統調用
3.6.2exec系統調用
3.6.3wait系統調用
3.6.4exit系統調用
3.6.5進程的一生
3.7系統調用及套用
3.8小結
習題
第4章記憶體管理
4.1Linux的記憶體管理概述
4.1.1虛擬記憶體、核心空間和用戶空間
4.1.2虛擬記憶體實現機制間的關係
4.2進程的用戶空間管理
4.2.1進程用戶空間的描述
4.2.2進程用戶空間的創建
4.2.3虛存映射
4.2.4進程的虛存區舉例
4.2.5與用戶空間相關的系統調用
4.3請頁機制
4.3.1缺頁異常處理程式
4.3.2請求調頁
4.3.3寫時複製
4.4物理記憶體分配與回收
4.4.1頁描述符
4.4.2夥伴算法
4.4.3物理頁面的分配
4.4.4物理頁面的回收
4.4.5Slab分配機制
4.4.6核心空間非連續記憶體區的分配
4.4.7物理記憶體分配舉例
4.5交換機制
4.5.1交換的基本原理
4.5.2頁面交換守護進程kswapd
4.6記憶體管理實例
4.6.1相關背景知識
4.6.2代碼體系結構介紹
4.6.3實現過程
4.6.4程式代碼
4.7小結
習題
第5章中斷和異常
5.1中斷是什麼
5.1.1中斷向量
5.1.2 外設可禁止中斷
5.1.3異常及非禁止中斷
5.1.4中斷描述符表
5.1.5相關彙編指令
5.2中斷描述符表的初始化
5.2.1IDT表項的設定
5.2.2對陷阱門和系統門的初始化
5.2.3中斷門的設定
5.2.4中斷處理程式的形成
5.3中斷處理
5.3.1中斷和異常的硬體處理
5.3.2中斷請求佇列的建立
5.3.3中斷處理程式的執行
5.3.4從中斷返回
5.3.5中斷的簡單套用
5.4中斷的下半部處理機制
5.4.1為什麼把中斷分為兩部分來處理
5.4.2小任務機制
5.4.3工作佇列
5.5中斷套用——時鐘中斷
5.5.1時鐘硬體
5.5.2時鐘運作機制
5.5.3Linux時間系統
5.5.4時鐘中斷
5.5.5定時器及套用
5.6小結
習題
第6章系統調用
6.1系統調用與套用編程接口、系統命令以及核心函式的關係
6.1.1系統調用與API
6.1.2系統調用與系統命令
6.1.3系統調用與核心函式
6.2系統調用基本概念
6.2.1系統調用號
6.2.2系統調用表
6.2.3系統調用服務例程和系統調用處理程式
6.3系統調用實現
6.3.1初始化系統調用
6.3.2system_call()函式
6.3.3參數傳遞
6.3.4跟蹤系統調用的執行
6.4封裝例程
6.5添加新系統調用
6.5.1添加系統調用的步驟
6.5.2系統調用的調試
6.6實例系統調用日誌收集系統
6.6.1代碼結構體系介紹
6.6.2把代碼集成到核心中
6.7小結
習題
第7章核心中的同步
7.1臨界區和競爭狀態
7.1.1臨界區舉例
7.1.2共享佇列和加鎖
7.1.3確定保護對象
7.1.4死鎖
7.1.5並發執行的原因
7.2核心同步措施
7.2.1原子操作
7.2.2自旋鎖
7.2.3信號量
7.3生產者消費者並發實例
7.3.1問題分析
7.3.2實現機制
7.3.3具體實現
7.4核心多任務並發實例
7.4.1核心任務及其並發關係
7.4.2問題描述
7.4.3實現機制
7.5小結
習題
第8章檔案系統
8.1Linux檔案系統基礎
8.1.1Linux檔案結構
8.1.2檔案類型
8.1.3存取許可權和檔案模式
8.1.4Linux檔案系統
8.2虛擬檔案系統
8.2.1虛擬檔案系統的引入
8.2.2VFS中對象的演繹
8.2.3VFS的超級塊
8.2.4VFS的索引結點
8.2.5目錄項對象
8.2.6與進程相關的檔案結構
8.2.7主要數據結構間的關係
8.2.8實例——觀察數據結構中的數據
8.3檔案系統的註冊、安裝與卸載
8.3.1檔案系統的註冊和註銷
8.3.2檔案系統的安裝
8.3.3檔案系統的卸載
8.4檔案的打開與讀寫
8.4.1檔案打開
8.4.2檔案讀寫
8.5編寫一個檔案系統
8.5.1Linux檔案系統的實現要素
8.5.2什麼是Romfs檔案系統
8.5.3Romfs檔案系統布局與檔案結構
8.5.4具體實現的對象
8.6小結
習題
第9章 設備驅動
9.1概述
9.2設備驅動程式框架
9.3I/O空間的管理
9.3.1I/O連線埠和I/O記憶體
9.3.2I/O資源管理
9.3.3訪問I/O連線埠空間
9.3.4訪問I/O記憶體資源
9.4字元設備驅動程式
9.4.1字元設備的數據結構
9.4.2分配和釋放設備號
9.4.3字元設備驅動的組成
9.4.4載入和卸載函式
9.4.5實現file_operaions中定義的函式
9.5塊驅動程式
9.5.1塊驅動程式的註冊
9.5.2塊設備請求
9.6小結
習題
參考文獻

相關詞條

熱門詞條

聯絡我們