注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡操作系統LinuxLinux 內核完全剖析

Linux 內核完全剖析

Linux 內核完全剖析

定 價:¥79.00

作 者: 趙炯 編著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: Linux

ISBN: 9787111180326 出版時間: 2006-01-01 包裝: 膠版紙
開本: 小16開 頁數: 880 字數:  

內容簡介

  本書是一本有關Linux操作系統內核基本工作原理的入門讀物。本書介紹了Linux系統的發(fā)展歷史,然后介紹了PC機的硬件組成結構、編制內核使用的匯編語言和C語言擴展部分,并且重點說明了80x86處理器在保護模式下運行的編程方法,接著詳細介紹了Linux內核源代碼目錄樹組織結構,并依據該組織結構對所有內核程序和文件進行了注釋和詳細說明。本書對早期Linux操作系統內核(vo.11)全部代碼文件進行了詳細的剖析,旨在讓讀者在盡量短的時間內對Linux的工作機理獲得全面而深刻的理解,為進一步學習和研究Linux系統打下堅實的基礎。雖然選擇的版本較低,但該內核已能夠正常編譯運行,并且其中已包括了Linux工作原理的精髓。書中首先以Linux源代碼版本的變遷為主線,簡要介紹了Linux系統的發(fā)展歷史,同時著重說明了各個內核版本之間的主要區(qū)別和改進方面,給出了選擇O.11版內核源代碼作為研究對象的原因。然后概要介紹了PC機的硬件組成結構、編制內核使用的匯編語言和C語言擴展部分,并且重點說明了80x86處理器在保護模式下運行的編程方法。接著詳細介紹了Linux內核源代碼目錄樹組織結構,并依據該組織結構對所有內核程序和文件進行了注釋和詳細說明。為了加深讀者對內核工作原理的理解,書中最后一章給出了圍繞Linux0.11系統的多個試驗。試驗中使用的相關程序均可從本書配套網站(www.oldlinux.org)上下載。本書適合作為高校計算機專業(yè)學生學習操作系統課程的輔助和實踐教材,也適合Linux愛好者作為學習內核工作原理的自學參考書籍,還可供一般技術人員作為開發(fā)嵌入式系統的參考書使用。

作者簡介

  趙炯,上海同濟大學計算機通信專業(yè)畢業(yè),多年從事操作系統,計算機網絡和系統軟件的研究工作,具有很高的學術水平。2004年編寫的《Linux內核完全注釋》一書,一年內印刷4次,在各大計算機排行榜始終名列前茅,并被《中華讀書報》評為“2004年度十大電腦圖書”之一。

圖書目錄


第1章 概述
1.1 Linux的誕生和發(fā)展
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系統開發(fā)的主要貢獻者
1.2 內容綜述
第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 軟盤和硬盤控制器
第3章 內核編程語言和環(huán)境
3.1 as86匯編器
3.1.1 as86匯編語言語法
3.1.2 as86匯編語言程序
3.1.3 as86匯編語言程序的編譯和鏈接
3.1.4 as86和ld86使用方法和選項
3.2 GNU as匯編
3.2.1 編譯as匯編語言程序
3.2.2 as匯編語法
3.2.3 指令語名、操作數和尋址
3.2.4 區(qū)與重定位
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.11目標文件格式
3.5.1 目標文件格式
3.5.2 Linux 0.11中的目標文件格式
3.5.3 鏈接程序輸出
3.5.4 鏈接程序預定義變量
3.5.5 System.map文件
3.6 Make程序和Makefile文件
第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 程序或任務的重新執(zhí)行
4.6.5 開啟和禁止中斷
4.6.6 異常和中斷的優(yōu)先級
4.6.7 中斷描述符表
4.6.8 IDT描述符
4.6.9 異常與中斷處理
4.6.10 中斷處理任務
4.6.11 錯誤碼
4.7 任務管理
4.7.1 任務的結構和狀態(tài)
4.7.2 任務的執(zhí)行
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 用戶申請內存的動態(tài)分配
5.4 Linux系統的中斷機制
5.4.1 中操作原理
5.4.2 80X86微機的中斷子系統
5.4.3 中斷向量表
5.4.4 Linux內核的中斷處理
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 進程運行狀態(tài)
5.7.3 進程初始化
5.7.4 創(chuàng)建新進程
5.7.5 進程調度
5.7.6 終止進程
5.8 Linux系統中堆棧的使用方法
5.8.1 初始化階段
5.8.2 任務的堆棧
5.8.3 任務內核態(tài)堆棧與用戶態(tài)堆棧之間的切換
5.9 Linux 0.11采用的文件系統
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 內存管理程序目錄mrn
5.10.9 編譯內核工具程序目錄tools
5.11 內核系統與應用程序的關系
5.12 linux/Makefile文件
5.12.1 功能描述
5.12.2 代碼注釋
第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 head.s程序
6.4.1 功能描述
6.4.2 代碼注釋
6.4.3 其他信息
第7章 初始化程序
7.1 main.c程序
7.1.1 功能描述
7.1.2 代碼注釋
7.1.3 其他信息
7.2 環(huán)境初始化工作
第8章 內核代碼
8.1 總體功能
8.1.1 中斷處理程序
8.1.2 系統調用處理相關程序
8.1.3 其他通用類程序
8.2 Makefile文件
8.2.1 功能簡介
8.2.2 文件注釋
8.3 asm.s程序
8.3.1 功能描述
8.3.2 代碼注釋
8.3.3 Intel保留中斷向量的定義
8.4 traps.c程序
8.4.1 功能描述
8.4.2 代碼注釋
8.5 system-call.s程序
8.5.1 功能描述
8.5.2 代碼注釋
8.5.3 其他信息
8.6 mktime.c程序
8.6.1 功能描述
8.6.2 代碼注釋
8.6.3 閏年的計算方法
8.7 sched.c程序
8.7.1 功能描述
8.7.2 代碼注釋
8.7.3 其他信息
8.8 signal.c程序
8.8.1 功能描述
8.8.2 代碼注釋
8.8.3 進程信號說明
8.9 exit.c程序
8.9.1 功能描述
8.9.2 代碼注釋
8.10 fork.c程序
8.10.1 功能描述
8.10.2 代碼注釋
8.10.3 任務狀態(tài)段信息
8.11 sys.c程序
8.11.1功能描述
8.11.2 代碼注釋
8.12 vsprintf.c程序
8.12.1 功能描述
8.12.2 代碼注釋
8.12.3 vsprintf()的格式字符串
8.12.4 與當前版本的區(qū)別
8.13 printk.c程序
8.13.1 功能描述
8.13.2 代碼注釋
8.14 panic.c程序
8.14.1 功能描述
8.14.2 代碼注釋
第9章塊設計驅動程序
9.1 總體功能
9.1.1 塊設備請求項和請求隊列
9.1.2 塊設備操作方式
9.2 Makefile文件
9.2.1 功能描述
9.2.2 代碼注釋
9.3 blk.h文件
9.3.1 功能描述
9.3.2 代碼注釋
9.4 hd.c程序
9.4.1 功能描述
9.4.2 代碼注釋
9.4.3 其他信息
9.5 ll_rw_blk.c程序
9.5.1 功能描述
9.5.2 代碼注釋
9.6 ramdisk.c程序
9.6.1 功能描述
9.6.2 代碼注釋
9.7 floppy.c程序
9.7.1 功能描述
9.7.2 代碼注釋
9.7.3 其他信息
第10章 字符設備驅動程序
10.1 總體功能
10.1.1 終端驅動程序基本原理
10.1.2 Linux支持的終端設備類型
10.1.3 終端基本數據結構
10.1.4 規(guī)范模式和非規(guī)范模式
10.1.5 控制臺終端和串行終端設備
10.1.6 終端驅動程序接口
10.2 Makefile文件
10.2.1 功能描述
10.2.2 代碼注釋
10.3 keyboard.S程序
10.3.1 功能描述
10.3.2 代碼注釋
10.3.3 其他信息
10.4 comsole.c程序
10.4.1 功能描述
10.4.2 代碼注釋
10.4.3 其他信息
10.5 serial.c程序
10.5.1 功能描述
10.5.2 代碼注釋
10.5.3 異步串行通信控制器UART
10.6 rs_io.s程序
10.6.1 功能描述
10.6.2 代碼注釋
10.7 tty_io.c程序
10.7.1 功能描述
10.7.2 代碼注釋
10.8 tty_ioctl.c程序
10.8.1 功能描述
10.8.2 代碼注釋
10.8.3 波特率與波特率因子
第11章 數學協處理器
11.1 Makefile文件
11.1.1 功能描述
11.1.2 代碼注釋
11.2 math_emulate.c程序
11.2.1 功能描述
11.2.2 代碼注釋
第12章 文件系統
12.1 總體功能
12.1.1 MINIX文件系統
12.1.2 文件類型、屬性和目錄項
12.1.3 高速緩沖區(qū)
12.1.4 文件系統底層函數
12.1.5 文件中數據的訪問操作
12.1.6 文件和目錄管理系統調用
12.1.7 360 KB軟盤中文件系統實例分析
12.2 Makefile文件
12.2.1 功能描述
12.2.2 代碼注釋
12.3 bufer.c程序
12.3.1 功能描述
12.3.2 代碼注釋
12.4 bitmap.c程序
12.4.1 功能描述
12.4.2 代碼注釋
12.5 truncte.c程序
12.5.1 功能描述
12.5.2 代碼注釋
12.6 inoe.c程序
12.6.1 功能描述
12.6.2 代碼注釋
12.7 super.c程序
12.7.1 功能描述
12.7.2 代碼注釋
12.8 namei.c程序
12.8.1 功能描述
12.8.2 代碼注釋
12.9 file_table.c程序
12.9.1 功能描述
12.9.2 代碼注釋
12.10 block_dev.c程序
12.10.1 功能描述
12.10.2 代碼注釋
12.11 file_dev.c程序
12.11.1 功能描述
12.11.2 代碼注釋
12.12 pipe.c程序
12.12.1 功能描述
12.12.2 代碼注釋
12.13 char_dev.c程序
12.13.1 功能描述
12.13.2 代碼注釋
12.14 read_write.c程序
12.14.1 功能描述
12.14.2 代碼注釋
12.14.3 用戶程序讀寫操作過程
12.15 ope.c程序
12.15.1 功能描述
12.15.2 代碼注釋
12.16 exec.c程序
12.16.1 功能描述
12.16.2 代碼注釋
12.17 stat.c程序
12.17.1 功能描述
12.17.2 代碼注釋
12.18 fcntl.c程序
12.18.1 功能描述
12.18.2 代碼注釋
12.19 ioctl.c程序
12.19.1 功能描述
12.19.2 代碼注釋
第13章 內存管理
13.1 總體功能
13.1.1 內存分頁管理機制
13.1.2 Linux中物理內存的管理和分配
13.1.3 Linux內核對線性地址空間的使用分配
13.1.4 頁面出錯異常處理
13.1.5 寫時復制(copy on write)機制
13.1.6 需求加載(Load on demand)機制
13.2 Makefile文件
13.2.1 功能描述
13.2.2 代碼注釋
13.3 memory.c程序
13.3.1 功能描述
13.3.2 代碼注釋
13.4 page.s程序
13.4.1 功能描述
13.4.2 代碼注釋
13.4.3 頁出錯異處理
第14章 頭文件
14.1 include/目錄下的文件
14.2 a.out.h文件
14.2.1 功能描述
14.2.2 代碼注釋
14.2.3 a.out執(zhí)行文件格式
14.3 const.h文件
14.3.1 功能描述
14.3.2 代碼注釋
14.4 ctype.h文件
14.4.1 功能描述
14.4.2 代碼注釋
14.5 erno.h文件
14.5.1 功能描述
14.5.2 代碼注釋
14.6 fcntl.h文件
14.6.1 功能描述
14.6.2 代碼注釋
14.7 signal.h文件
14.7.1 功能描述
14.7.2 文件注釋
14.8 stdarg.h文件
14.8.1 功能描述
14.8.2 代碼注釋
14.9 stddef.h文件
14.9.1 功能描述
14.9.2 代碼注釋
14.10 string.h文件
14.10.1 功能描述
14.10.2代碼注釋
14.11 termios.h文件
14.11.1 功能描述
14.11.2 代碼注釋
14.11.3 控制字符TIME、MIN
14.12 time.h文件
14.12.1 功能描述
14.12.2 代碼注釋
14.13 unistd.h文件
14.13.1 功能描述
14.13.2 代碼注釋
14.14 utime.h文件
14.14.1 功能描述
14.14.2 代碼注釋
14.15 include/asm/目錄下的文件
14.16 io.h文件
14.16.1 功能描述
14.16.2 代碼注釋
14.17 memory.h文件
14.17.1 功能描述
14.17.2 代碼注釋
14.18 segment.h文件
14.18.1 功能描述
14.18.2 代碼注釋
14.19 system.h文件
14.19.1 功能描述
14.19.2 代碼注釋
14.20 include/linux/目錄下的文件
14.21 config.h文件
14.21.1 功能描述
14.21.2 代碼注釋
14.22 fdreg.h頭文件
14.22.1 功能描述
14.22.2 文件注釋
14.23 fs.h文件
14.23.1 功能描述
14.23.2 代碼注釋
14.24 hdreg.h文件
14.24.1 功能描述
14.24.2 代碼注釋
14.24.3 硬盤分區(qū)表
14.25 head.h文件
14.25.1 功能描述
14.25.2 代碼注釋
14.26 kernel.h文件
14.26.1 功能描述
14.26.2 代碼注釋
14.27 mm.h文件
14.27.1 功能描述
14.27.2 代碼注釋
14.28 sched.h文件
14.28.1 功能描述
14.28.2 代碼注釋
14.29 sys.h文件
14.29.1 功能描述
14.29.2 代碼注釋
14.30 try.h文件
14.30.1 功能描述
14.30.2 代碼注釋
14.31 include/sys/目錄中的文件
14.32 stat.h文件
14.32.1 功能描述
14.32.2 代碼注釋
14.33 times.h文件
14.33.1 功能描述
14.33.2 代碼注釋
14.34 types.h文件
14.34.1 功能描述
14.34.2 代碼注釋
14.35 utsname.h文件
14.35.1 功能描述
14.35.2 代碼注釋
14.36 wait.h文件
14.36.1 功能描述
14.36.2 代碼注釋
第15章 庫文件
15.1 Makefile文件
15.1.1 功能描述
15.1.2 代碼注釋
15.2 exit.c程序
15.2.1 _功能描述
15.2.2 代碼注釋
15.2.3 相關信息
15.3 close.c程序
15.3.1 功能描述
15.3.2 代碼注釋
15.4 ctype.c程序
15.4.1 功能描述
15.4.2 代碼注釋
15.5 dup.c程序
15.5.1 功能描述
15.5.2 代碼注釋
15.6 errno.c程序
15.6.1 功能描述
15.6.2 代碼注釋
15.7 execve.c程序
15.7.1功能描述
15.7.2 代碼注釋
15.8 malloc.c程序
15.8.1 功能描述
15.8.2 代碼注釋
15.9 open.c程序
15.9.1 功能描述
15.9.2 代碼注釋
15.10 setsid.c程序
15.10.1 功能描述
15.10.2 代碼注釋
15.11 string.c程序
15.11.1 功能描述
15.11.2 代碼注釋
15.12 wait.c程序
15.12.1 功能描述
15.12.2 代碼注釋
15.13 write.c程序
15.13.1 功能描述
15.13.2 代碼注釋
第16章 建造工具
16.1 build.c程序
16.1.1 功能概述
16.1.2 代碼注釋
16.2 MINIX可執(zhí)行文件頭部數據結構
第17章 實驗環(huán)境設置與使用方法
17.1 Bochs仿真軟件系統
17.1.1 設置Bochs系統
17.1.2 配置文件*.bxrc
17.2 在Bochs中運行Linux0.1x系統
17.2.1 軟件包中文件說明
17.2.2 運行Linux0.1x系統
17.3 訪問磁盤映像文件中的信息
17.3.1 使用WinImage工具軟件
17.3.2 利用現有Linux系統
17.4 編譯運行簡單內核示例程序
17.5 利用Bochs調試內核
17.5.1 運行Bochs調配試程序
17.5.2 定位內核中的變理或數據結構
17.6 創(chuàng)建磁盤映像文件
17.6.1 利用Bochs軟件自帶的Image生成工具
17.6.2 在Linux系統下使用dd命令創(chuàng)建Image文件
17.6.3 利用WinImage創(chuàng)建DOS格式的軟盤Image文件
17.7 制作根文件系統
17.7.1 根據文件系統和根文件設備
17.7.2 創(chuàng)建文件系統
17.7.3 Linux-0.11的Bochs配置文件
17.7.4 在hdc.img上建立根文件系統
17.7.5 使用硬盤Image上的根文件系統
17.8 在Linux0.11系統中編譯0.11內核
17.9 在Redhat Linux 9系統中編譯Linux0.11內核
17.9.1 修改makefile文件
17.9.2 修改匯編程序中的注釋
17.9.3 內存位置對齊語句align值的修改
17.9.4 修改嵌入宏匯編程序
17.9.5 C程序變量在匯編語句中的引用表示
17.9.6 保護模式下調試顯示函數
17.10 內核引導啟動+根文件系統組成的集成盤
17.10.1 集成盤制作原理
17.10.2 集成盤的制作過程
17.10.3 運行集成盤系統
17.11 從硬盤啟動:利用shoelace引導軟件
17.11.1 shoelace程序設置路徑
17.11.2 設置過程
17.11.3 問題和解決方法
17.12 利用GDB和Bochs調試內核源代碼
17.12.1 編譯帶gdbstub的Bochs系統
17.12.2 編譯帶調試信息的Linux0.11內核
17.12.3 調試方法和步驟
附錄
附錄A 內核數據結構
附錄B ASCII碼表
附錄C 常用C0、C1控制字符表
附錄D 常用轉義序列和控制序列
附錄E 第1套鍵盤掃描碼集
索引
參考文獻

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號