内核初始化
在第一章中介绍了 Linux 内核引导程序,它的任务就是为执行内核代码做准备 而在本章中,将探究内核代码,看一看内核的初始化过程,即在启动 PID 为 1 的 init 进程前,内核所做的大量工作
本章的内容很多,介绍了在内核启动前的所有准备工作。arch/x86/kernel/head_64.S 文件中定义了内核入口点,会从这里开始,逐步地深入下去。在 start_kernel 函数(定义在 init/main.c) 执行之前,会看到很多的初期的初始化过程,例如 初期页表初始化 、 切换到一个新的内核空间描述符 等等:
这里不是所有内核初始化步骤的介绍,这里只有通用的内核内容 不会涉及到中断控制、 ACPI 、以及其它部分,会在其它章节中描述