第一阶段:BIOS启动过程
1、对计算机硬件进行一系列的测试,通常称为加电自检。
2、初始化硬件设备,这对现代基于pci的体系结构是相当重要的,它可以保证所有的硬件设备不会引起IRQ线和I/O端口冲突。
3、搜索一个操作系统启动。实际上,根据BIOS的设置,这个过程可能要试图访问系统中的引导扇区。
4、只要找到一个有效的设备,就把第一扇区的内容拷贝到RAM中从物理地址0x00007c00开始的位置,然后跳转到这个地址处,开始执行刚才装载来的代码。
第二阶段:引导装入程序
引导装入程序是由BIOS用来把操作系统的内核映像装载到RAM中所调用的一个程序。
第三阶段:setup函数
setup函数必须初始化计算机中的硬件设备,并未内核程序的执行建立环境。虽然BIOS已经初始化了大部分硬件设备,但是Linux并不依赖于BIOS,而是以自己的方式重新初始化设备以增强可移植性和健壮性。
第四阶段:startup_32函数
初始化寄存器和堆栈信息,为Linux第一个进程建立执行环境。
第五阶段:start_kernel函数
完成linux内核初始化工作,包括调度程序内存管理区 伙伴系统 异常处理 IDT 软中断 系统时间和日期