Linux内核完全注释
内核版本0.11(0.95)
赵 炯 著
www.plinux.org
gohigh@sh163.net
1
Linux 内核 0.11 详细注释
A Heavy Commented Linux Kernel Source Code
Linux Version 0.11
Zhao Jiong
赵炯
gohigh@sh163.net
www.plinux.org
www.oldlinux.org
2002-10-25
I
内容简介
本书对 Linux 早期操作系统内核(v0.95)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间
内对 Linux 的工作机理获得全面而深刻的理解,为进一步学习和研究 Linux 系统打下坚实的基础。虽然所选择的版本较低,
但该内核已能够正常编译运行,其中已经包括了 LINUX 工作原理的精髓,通过阅读其源代码能快速地完全理解内核的运作机
制。书中首先以 Linux 源代码版本的变迁历史为主线,详细介绍了 Linux 系统的发展历史,着重说明了各个内核版本之间的
重要区别和改进方面,给出了选择 0.11(0.95)版作为研究的对象的原因。另外介绍了内核源代码的组织结构及相互关系,
同时还说明了编译和运行该版本内核的方法。然后本书依据内核源代码的组织结构对所有内核程序和文件进行了注释和详细
说明。每章的安排基本上分为具体研究对象的概述、每个文件的功能介绍、代码内注释、代码中难点及相关资料介绍、与当
前版本的主要区别等部分。最后一章内容总结性地介绍了继续研究 Linux 系统的方法和着手点。
版权说明
作者保留本电子书籍的修改和正式出版的所有权利.读者可以自由传播本书全部和部分章节的内容,但需要注明出处.
由于目前本书尚为草稿阶段,因此存在许多错误和不足之处,希望读者能踊跃给予批评指正或建议.可以通过电子邮件给我发
信息:gohigh@sh163.net, 或直接来信至:上海同济大学 机械电子工程研究所(上海四平路 1239 号,邮编:200092).
© 2002,2003 by Zhao Jiong
© 2002,2003 赵炯 版权所有.
I
“RTFSC – Read The F**king Source Code ☺!”
–Linus Benedict Torvalds
II
目录
文件列表索引 .......................................................................... VI
序言 ................................................................................... 1
本书的主要目标........................................................................1
现有书籍不足之处 ......................................................................1
阅读早期内核其它的好处? ..............................................................2
阅读完整源代码的重要性和必要性 ........................................................2
如何选择要阅读的内核代码版本 ..........................................................3
阅读本书需具备的基础知识 ..............................................................3
使用早期版本是否过时? ................................................................4
Ext2 文件系统与 Minix 文件系统? .......................................................4
第 1 章 概述 ............................................................................ 1
1.1 Linux 的诞生和发展 ................................................................1
1.2 内容综述..........................................................................6
1.3 Makefile 文件 .....................................................................9
1.4 linux/Makefile 文件 ...............................................................9
1.5 其它信息.........................................................................13
第 2 章 引导启动程序(boot) ........................................................... 17
2.1 概述.............................................................................18
2.2 bootsect.s 文件 ..................................................................18
2.3 setup.s 程序 .....................................................................25
2.4 head.s 文件 ......................................................................35
2.5 小结.............................................................................42
第 3 章 初始化程序(init) ............................................................... 43
3.1 概述.............................................................................43
3.2 main.c 程序 ......................................................................43
3.3 其它信息.........................................................................48
3.4 小结.............................................................................48
第 4 章 内核代码(kernel) ............................................................... 49
4.1 概述.............................................................................49
4.2 Makefile 文件 ....................................................................50
4.3 asm.s 文件 .......................................................................52
4.4 system_call.s 程序 ...............................................................57
4.5 traps.c 程序 .....................................................................65
4.6 mktime.c 文件 ....................................................................71
4.7 sched.c 文件 .....................................................................73
4.8 signal.c 文件 ....................................................................84
4.9 exit.c 文件 ......................................................................88
4.10 fork.c 程序 .....................................................................93
4.11 sys.c 程序 ......................................................................98