Linux核心完全剖析:基於0.12核心

Linux核心完全剖析:基於0.12核心

Linux核心完全剖析:基於0.12核心》一共17章節,對早期Linux核心(V0.12)全部代碼檔案進行了詳細、全面的注釋和說明,旨在幫助讀者用較短的時間對Linux的工作機理獲得全面而深刻的理解,為進一步學習和研究Linux打下堅實的基礎。雖然選擇的版本較低,但該核心已能夠正常編譯運行,並且其中已包括了Linux工作原理的精髓。

基本介紹

  • 書名:Linux核心完全剖析:基於0.12核心
  • 作者趙炯
  • ISBN:9787111250470
  • 類別:計算機
  • 定價:99.00 元
  • 出版社:機械工業出版社
  • 出版時間:2009
  • 裝幀:平裝
  • 開本:787×1092 1/16
內容簡介,目錄,序,第1章 概述,第2章 微型計算機組成結構,第3章 核心程式語言和環境,第4章 80x86保護模式及其編程,第5章 Linux核心體系結構,第6章 引導啟動程式,第7章 初始化程式,第8章 核心代碼,第9章 塊設備驅動程式,第10章 字元設備驅動程式,第11章 數學協處理器,第12章 檔案系統,第13章 記憶體管理,第14章 頭檔案,第15章 庫檔案,第16章 建造工具,第17章 實驗環境設定與使用方法,

內容簡介

書中首先以Linux原始碼版本的變遷為主線,介紹了Linux的歷史,同時著重說明了各個核心版本的主要區別和改進,給出了選擇0.12版核心原始碼作為研究對象的原因。在正式描述核心原始碼之前,概要介紹了運行Linux的PC的硬體組成結構、編制核心使用的彙編語言和C語言擴展部分,並且重點說明了80x86處理器在保護模式下運行的編程方法。接著詳細介紹了Linux核心原始碼目錄樹組織結構,並依據該結構對所有核心程式和檔案進行了注釋和詳細說明。有關代碼注釋的章節安排基本上都分為具體研究對象的概述、每個檔案的功能介紹、代碼內注釋、代碼中難點及相關資料介紹等部分。為了加深讀者對核心工作原理的理解,書中最後一章給出了圍繞Linux0.12系統的多個試驗。
《Linux核心完全剖析:基於0.12核心》適合Linux愛好者作為學習核心工作原理的自學參考書籍,也適合作為高校計算機專業學生學習作業系統課程的輔助和實踐教材,還可供一般技術人員作為開發嵌入式系統的參考書使用。

目錄

第1章 概述

1.1 Linux的誕生和發展
1.1.1 UNIX作業系統的誕生
1.1.2 MINIX作業系統
1.1.3 GNU計畫
1.1.4 POSIX標準
1.1.5 Linux作業系統的誕生
1.1.6 Linux作業系統版本的變遷
1.1.7 Linux名稱的由來
1.1.8 早期Linux系統開發的主要貢獻者
1.2 內容綜述
1.3 本章小結

第2章 微型計算機組成結構

2.1 微型計算機組成原理
2.2 I/O連線埠定址和訪問控制方式
2.2.1 I/O連線埠和定址
2.2.2 接口訪問控制
2.3 主存儲器、BIOS和CMOS存儲器
2.3.1 主存儲器
2.3.2 基本輸入/輸出程式BIOS
2.3.3 CMOS存儲器
2.4 控制器和控制卡
2.4.1 中斷控制器
2.4.2 DMA控制器
2.4.3 定時/計數器
2.4.4 鍵盤控制器
2.4.5 串列控制卡
2.4.6 顯示控制
2.4.7 軟碟和硬碟控制器
2.5 本章小結

第3章 核心程式語言和環境

3.1 as86彙編器
3.1.1 as86彙編語言語法
3.1.2 as86彙編語言程式
3.1.3 as86彙編語言程式的編譯和連結
3.1.4 as86和1d86使用方法和選項
3.2 CNU as彙編
3.2.1 編譯as彙編語言程式
3.2.2 as彙編語法
3.2.3 指令語句、運算元和定址
3.2.4 區與重定位
3.2.5 符號
3.2.6 as彙編命令
3.2.7 編寫16位代碼
3.2.8 AS彙編器命令行選項
3.3 C語言程式
3.3.1 C程式編譯和連結
3.3.2 嵌入彙編
3.3.3 圓括弧中的組合語句
3.3.4 暫存器變數
3.3.5 內聯函式
3.4 C與彙編程式的相互調用
3.4.1 C函式調用機制
3.4.2 在彙編程式中調用C函式
3.4.3 在C程式中調用彙編函式
3.5 Linux 0.12目標檔案格式
3.5.1 目標檔案格式
3.5.2 Linux0.12中的目標檔案格式
3.5.3 連結程式輸出
3.5.4 連結程式預定義變數一
3.5.5 System.map檔案
3.6 Make程式和Makefile檔案
3.6.1 Makefite檔案內容
3.6.2 Makefile檔案中的規則
3.6.3 Makefile檔案示例
3.6.4 make處理Makefile檔案的方式
3.6.5 Makefile中的變數
3.6.6 讓make自動推斷命令
3.6.7 隱含規則中的自動變數
3.7本章 小結

第4章 80x86保護模式及其編程

4.1 80x86系統暫存器和系統指令
4.1.1 標誌暫存器
4.1.2 記憶體管理暫存器
4.1.3 控制暫存器
4.1.4 系統指令
4.2 保護模式記憶體管理
4.2.1 記憶體定址
4.2.2 地址變換
4.2.3 保護
4.3 分段機制
4.3.1 段的定義
4.3.2 段描述符表
4.3.3 段選擇符
4.3.4 段描述符
4.3.5 代碼和數據段描述符類型
4.3.6 系統描述符類型
4.4 分頁機制
4.4.1 頁表結構
4.4.2 頁表項格式
4.4.3 虛擬存儲
4.5 保護
4.5.1 段級保護
4.5.2 訪問數據段時的特權級檢查
4.5.3 代碼段之間轉移控制時的特權級檢查
4.5.4 頁級保護
4.5.5 組合頁級和段級保護
4.6 中斷和異常處理
4.6.1 異常和中斷向量
4.6.2 中斷源和異常源
4.6.3 異常分類
4.6.4 程式或任務的重新執行
4.6.5 開啟和禁止中斷
4.6.6 異常和中斷的優先權
4.6.7 中斷描述符表
4.6.8 IDT描述符
4.6.9 異常與中斷處理
4.6.10 中斷處理任務
4.6.11 錯誤碼
4.7 任務管理
4.7.1 任務的結構和狀態
4.7.2 任務的執行
4.7.3 任務管理數據結構
4.7.4 任務切換
4.7.5 任務鏈
4.7.6 任務地址空間
4.8 保護模式編程初始化
4.8.1 進入保護模式時的初始化操作
4.8.2 模式切換
4.9 一個簡單的多任務核心實例
4.9.1 多任務程式結構和工作原理
4.9.2 引導啟動程式boot.s
4.9.3 多任務核心程式head.s

第5章 Linux核心體系結構

5.1 Linux核心模式
5.2 Linux核心系統體系結構
5.3 Linux核心對記憶體的管理和使用
5.3.1 物理記憶體
5.3.2 記憶體地址空間概念
5.3.3 記憶體分段機制
5.3.4 記憶體分頁管理
5.3.5 CPu多任務和保護方式
5.3.6 虛擬地址、線性地址和物理地址之間的關係
5.3.7 用戶申請記憶體的動態分配
5.4 中斷機制
5.4.1 中斷操作原理
5.4.2 80x86微機的中斷子系統
5.4.3 中斷向量表
5.4.4 I.inux核心的中斷處理
5.4.5 標誌暫存器的中斷標誌
5.5 Linux的系統調用
5.5.1 系統調用接口
5.5.2 系統調用處理過程
5.5.3 Linux系統調用的參數傳遞方式
5.6 系統時間和定時
5.6.1 系統時間
5.6.2 系統定時
5.7 Linux進程控制
5.7.1 任務數據結構
5.7.2 進程運行狀態
5.7.3 進程初始化
5.7.4 創建新進程
5.7.5 進程調度
5.7.6 終止進程
5.8 Linux系統中堆疊的使用方法
5.8.1 初始化階段
5.8.2 任務的堆疊
5.8.3 任務核心態堆疊與用戶態堆疊之間的切換
5.9 Linux0.12採用的檔案系統
5.10 Linux核心原始碼的目錄結構
5.10.1 核心主目錄linux
5.10.2 引導啟動程式目錄boot
5.10.3 檔案系統目錄fs
5.10.4 頭檔案主目錄include
5.10.5 核心初始化程式目錄init
5.10.6 核心程式主目錄kernel
5.10.7 核心庫函式目錄lib
5.10.8 記憶體管理程式目錄mm
5.10.9 編譯核心工具程式目錄tools
5.1l 核心系統與應用程式的關係
5.12 linux/MakeftIe檔案
5.12.1 功能描述
5.12.2 代碼注釋
5.13 本章 小結

第6章 引導啟動程式

6.1 總體功能
6.2 bootsect.S程式
6.2.1 功能描述
6.2.2 代碼注釋
6.2.3 其他信息
6.3 setup.S程式
6.3.1 功能描述
6.3.2 代碼注釋
6.3.3 其他信息
6.4 lead.s程式
6.4.1 功能描述
6.4.2 代碼注釋
6.4.3 其他信息
6.5 本章 小結

第7章 初始化程式

7.1 main.c程式
7.1.1 功能描述
7.1.2 代碼注釋
7.1.3 其他信息
7.2 環境初始化工作
7.3 本章 小結

第8章 核心代碼

8.1 總體功能
8.1.1 中斷處理程式
8.1.2 系統調用處理相關程式
8.1.3 其他通用類程式
8.2 asm.s程式
8.2.1 功能描述
8.2.2 代碼注釋
8.2.3 Intel保留中斷向量的定義
8.3 traps.c程式
8.3.1 功能描述
8.3.2 代碼注釋
8.4 syscall.s程式
8.4.1 功能描述
8.4.2 代碼注釋
8.4.3 其他信息
8.5 mktime.c程式
8.5.1 功能描述
8.5.2 代碼注釋
8.5.3 閏年的計算方法
8.6 sched.c程式
8.6.1 功能描述
8.6.2 代碼注釋
8.6.3 其他信息
8.7 signal.c程式
8.7.1 功能描述
8.7.2 代碼注釋
8.7.3 進程信號說明
8.8 exit.c程式
8.8.1 功能描述
8.8.2 代碼注釋
8.9 fork.c程式
8.9.1 功能描述
8.9.2 代碼注釋
8.9.3 任務狀態段信息
8.10 sys.c程式
8.10.1 功能描述
8.10.2 代碼注釋
8.1l vsprimtfc程式
8.11.1 功能描述
8.11.2 代碼注釋
8.11.3 vsprintf的格式字元串
8.11.4 與當前版本的區別
8.12 printk.c程式
8.12.1 功能描述
8.12.2 代碼注釋
8.13 panic.c程式
8.13.1 功能描述
8.13.2 代碼注釋
8.14 本章 小結

第9章 塊設備驅動程式

9.1 總體功能
9.1.1 塊設備請求項和請求佇列
9.1.2 塊設備訪問調度處理
9.1.3 塊設備操作方式
9.2 blk.h檔案
9.2.1 功能描述
9.2.2 代碼注釋
9.3 hd.c程式
9.3.1 功能描述
9.3.2 代碼注釋
9.3.3 其他信息
9.4 nrwblk.c程式
9.4.1 功能描述
9.4.2 代碼注釋
9.5 ramdisk.c程式
9.5.1 功能描述
9.5.2 代碼注釋
9.6 floppy.c程式
9.6.1 功能描述
9.6.2 代碼注釋
9.6.3 其他信息

第10章 字元設備驅動程式

10.1 總體功能
10.1.1 終端驅動程式基本原理
10.1.2 Linux支持的終端設備類型
10.1.3 終端基本數據結構
lO.1.4 規範模式和非規範模式
10.1.5 控制台終端和串列終端設備
10.1.6 終端驅動程式接口
10.2 keyboard.S程式
10.2.1 功能描述
10.2.2 代碼注釋
10.2.3 其他信息
10.3 console.c程式
10.3.1 功能描述
10.3.2 代碼注釋
10.3.3 其他信息
10.4 serial.c程式
10.4.l 功能描述
10.4.2 代碼注釋
lO.4.3 異步串列通信控制器UART
10.5 rsio.s程式
10.5.1 功能描述
10.5.2 代碼注釋
10.6 ttyi0.c程式
10.6.1 功能描述
10.6.2 代碼注釋
10.6.3 控制字元vnME、VMlN
10.7 ttyjoctl.c程式
10.7.1 功能描述
10.7.2 代碼注釋

第11章 數學協處理器

第12章 檔案系統

第13章 記憶體管理

第14章 頭檔案

第15章 庫檔案

第16章 建造工具

第17章 實驗環境設定與使用方法

相關詞條

熱門詞條

聯絡我們