这几天得到了一分经过了裁剪的内核源码,是Linux系统中常驻内容的部分;大概有1万行的样子,据说这个数量级的行数是一个正常人可以理解的范围,所以就从它开始了。
先从整体上看看源码一共由44个文件组成,其中包括:2个汇编语言文件、28个C语言编写的".c文件"、14个用C语言编写的".h文件"。
因为已经经过了裁剪,所以每个文件都是必需的。
核心代码包含了 初始化、进程初始化、Traps、Hardware interrupts、Software interrupts、主存和磁盘存储器之间的基本输入输出、文件和文件系统、外部设备相关的输入输出 5个部分
第一部分:
param.h 包含很多操作系统常数和参数的定义,以及三个简单结构的说明。
system.h 主要是声明变量,所有的变量都隐式地赋初值为0,并且定义了callout和mount两个结构。
seg.h 包含几个定义和一个说明,在引用段寄存器时使用这些定义。
proc.h 包含了proc结构的声明。proc是一个结构类型,也是这种类型的一个数组。
user.h 包含user结构的说明,还包含一组与"u_error"相关的定义值。
low.s 包含初始化内存低地址部分的有关信息。
m40.s 包含一组例程,执行C不能直接实现的特殊函数。
main.c -----------
slp.c 包含进程管理所需要的各个主要函数。
prf.c 包含几个简单的向终端的输出函数。
malloc.c 包含malloc和mfree。