●前言
第1章概述
1.1Linux的誕生和發展
1.1.1UNIX、MINIX、GNU和 IX
1.1.2Linux操作繫統的誕生和版本的變遷
1.2內容綜述
1.3本章小結
1.4習題
第2章Linux內核體繫結構
2.1Linux內核模式和體繫結構
2.2Linux中斷機制
2.3Linux繫統定時
2.4Linux內核進程控制
2.4.1任務數據結構
2.4.2進程運行狀態
2.4.3進程初始化
2.4.4創建新進程
2.4.5進程調度
2.4.6終止進程
2.5Linux內核對內存的使用方法
2.6Linux繫統中堆棧的使用方法
2.6.1初始化階段
2.6.2任務的堆棧
2.6.3內核態與用戶態堆棧之間的切換
2.7Linux內核源代碼的目錄結構
2.7.1引導啟動程序目錄boot
2.7.2文件繫統目錄fs
2.7.3頭文件主目錄include
2.7.4內核初始化程序目錄init
2.7.5內核程序主目錄kemel
2.7.6內核庫函數目錄lib
2.7.7內存管理程序目錄mm
2.7.8編譯內核工具程序目錄tools
2.8內核繫統與用戶程序的關繫
2.9Linux內核的編譯實驗環境
2.10linux/Makefile文件
2.11本章小結
2.12習題
第3章內核引導啟動程序
3.1總體功能描述
3.2程序分析
3.2.1bootsect.s程序
3.2.2setup.s程序
3.2.3head.s程序
3.3本章小結
3.4習題
第4章內核初始化過程
4.1main.c程序分析
4.2本章小結
4.3習題
第5章進程調度與繫統調用
5.1總體功能描述
5.1.1中斷處理程序
5.1.2繫統調用處理相關程序
5.2程序分析
5.2.1asm.s程序
5.2.2traps.c程序
5.2.3system_call.s程序
5.2.4mktime.c程序
5.2.5sched.c程序
5.2.6signal.c程序
5.2.7exit.c程序
5.2.8fork.c程序
5.2.9sys.c程序
5.2.10vsprintf.c程序
5.2.11printk.c程序
5.2.12panic.c程序
5.3本章小結
5.4習題
第6章輸入輸出繫統——塊設備驅動程序
6.1總體功能描述
6.1.1塊設備請求項和請求隊列
6.1.2塊設備操作方式
6.2程序分析
6.2.1blk.h文件
6.2.2hd.c程序
6.2.3ll_rw_blk.c程序
6.2.4ramdisk.c程序
6.2.5noppy.c程序
6.3本章小結
6.4習題
第7章輸入輸出繫統——字符設備驅動程序
7.1總體功能描述
7.1.1終端驅動程序基本原理
7.1.2終端基本數據結構
7.1.3規範模式和非規範模式
7.1.4控制臺驅動程序
7.1.5串行終端驅動程序
7.1.6終端驅動程序接口
7.2程序分析
7.2.1keyboard.S程序
7.2.2console.c程序
7.2.3serisl.c程序
7.2.4rs-io.s程序
7.2.5ny-io.c程序
7.2.6ny-ioctl.c程序
7.3本章小結
7.4習題
第8章數學協處理器
8.1math-elTILllation.c程序分析
8.2本章小結
8.3習題
第9章文件繫統
9.1總體功能描述
9.1.1MINIX文件繫統
9.1.2高速緩衝區
9.1.3文件繫統底層函數
9.1.4文件中數據的訪問操作
9.2程序分析
9.2.1buffer.c程序
9.2.2bitmap.c程序
9.2.3inode.c程序
9.2.4super.c程序
9.2.5namei.c程序
9.2.6filetable.c程序
9.2.7blockdev.c程序
9.2.8filedev.c程序
9.2.9pipe.c程序
9.2.10chardev.c程序
9.2.11readwrite.c程序
9.2.12truncate.c程序
9.2.13open.c程序
9.2.14exec.c程序
9.2.15stat.c程序
9.2.16fcntl.c程序
9.2.17ioctl.c程序
9.3本章小結
9.4習題
第10章內存管理
10.1總體功能描述
10.1.1內存分頁管理機制
10.1.2Linux中內存的管理和分配
10.1.3寫時復制機制
10.2程序分析
10.2.1memory.c程序
10.2.2page.s程序
10.3本章小結
10.4習題
第11章包含文件
11.1程序分析
11.1.1include/目錄下的文件
11.1.2a.out.h文件
11.1.3const.h文件
11.1.4ctype.h文件
11.1.5errno.h文件
11.1.6fcntl.h文件
11.1.7signal.h文件
11.1.8stdarg.h文件
11.1.9stddef.h文件
11.1.10string.h文件
11.1.11termios.h文件
11.1.12time.h文件
11.1.13unistd.h文件
11.1.14utime.h文件
11.1.15include/asm/目錄下的文件
11.1.16io.h文件
11.1.17memory.h文件
11.1.18segment.h文件
……
本書對早期的Linux操作繫統內核(v0.11)全部源代碼文件進行了詳細的注釋和說明,旨在讓讀者能夠在短時間內對Linux的工作機理獲得全面而深刻的理解,為進一步學習和研究Linux繫統打下堅實的基礎。書中首先介紹了Linux繫統的發展歷史,著重說明了各個內核版本之間的重要區別,給出了選擇0.11版作為研究對像的原因;然後依據內核源代碼的組織結構對所有代碼進行了詳細注釋。在注釋的同時,還介紹了讀者應該了解的相關知識,並給出了相關的硬件信息。本書還介紹了內核源代碼的組織結構及相互關繫。
本書適合作為計算機專業學生學習操作繫統課程的實踐教材和參考書,也適合Linux操作繫統愛好者自學,還可供具有一定基礎的技術人員作為嵌入式開發應用的參考書。