内核程序主目录 kernel

1.linux/kernel 目录中共包含 12 个代码文件和一个 Makefile 文件,另外还有 3 个子目录。
2.所有处理任务的程序都保存在 kernel/ 目录中,其中包括象 fork 、 exit 、调度程序以及一些系统调用程序等。还包括处理中断异常和陷阱的处理过程。
3.子目录中包括了低层的设备驱动程序,如 get_hd_block 和 tty_write 等。
4.各文件之间的引用关系图,可以进行大概分类,见图 2-17 所示。


5.asm.s 程序是用于处理系统硬件异常所引起的中断,对各硬件异常的实际处理程序则是在 traps.c 文件中,在各个中断处理过程中,将分别调用 traps.c 中相应的 C 语言处理函数。
6.exit.c 程序主要包括用于处理进程终止的系统调用。包含进程释放、会话(进程组)终止和程序退出处理函数以及杀死进程、终止进程、挂起进程等系统调用函数。
7.fork.c 程 序 给 出 了 sys_fork() 系 统 调 用 中 使 用 了 两 个 C 语 言 函 数 : find_empty_process() 和copy_process() 。
8.mktime.c 程序包含一个内核使用的时间函数 mktime() ,用于计算从 1970 年 1 月 1 日 0 时起到开机当日的秒数,作为开机秒时间。仅在 init/main.c 中被调用一次。
9.panic. 程序包含一个显示内核出错信息并停机的函数 panic() 。
10.printk.c 程序包含一个内核专用信息显示函数 printk() 。
11.sched.c 程序中包括有关调度的基本函数 (sleep_on 、 wakeup 、 schedule 等 ) 以及一些简单的系统调用函数。另外还有几个与定时相关的软盘操作函数。
12.signal.c 程序中包括了有关信号处理的 4 个系统调用以及一个在对应的中断处理程序中处理信号的函数 do_signal() 。
13.sys.c 程序包括很多系统调用函数,其中有些还没有实现。
14.system_call.s 程序实现了 Linux 系统调用( int 0x80 )的接口处理过程,实际的处理过程则包含在各系统调用相应的 C 语言处理函数中,这些处理函数分布在整个 Linux 内核代码中。
15.vsprintf.c 程序实现了现在已经归入标准库函数中的字符串格式化函数。