深入探究系统启动流程与常用引导加载器
1. 系统启动流程概述
系统启动是一个复杂且有序的过程,主要分为多个关键步骤:
1. 第一阶段引导加载器 :处理器中的代码读取内存中的特定位置,可能会在控制台或屏幕上显示一条消息。
2. 第二阶段引导加载器 :负责加载系统即将运行的程序,通常为 Linux,但也可以是其他程序。
3. 内核解压 :若内核是压缩的,此时会将其解压到内存中,解压完成后执行跳转指令,定位到下一个可执行指令。
4. 处理器和板级初始化 :执行底层代码进行硬件初始化,随后到达内核的入口点,与处理器无关的代码开始运行,为内核运行 init 进程做准备。内核入口点的代码位于内核源树中 init/main.c 文件的 start_kernel 函数里。
5. 挂载初始 RAM 磁盘 :系统挂载初始 RAM 磁盘,检查是否包含 /init 程序,若有则运行;若不存在或未找到,启动过程进入下一步。
6. 挂载根文件系统 :传递给内核的参数之一是包含根文件系统的设备和文件系统类型,内核尝试挂载该文件系统,若未找到或无法挂载则会报错。
7. 运行初始程序 :内核首先尝试运行的程序是内核参数 init 的值,若该参数不存在,系统会依次尝试运行 /sbin/init、/etc/init、/bin/init 和 /bin.sh。
下面是系统启动流程的 mermaid 流程图: <
超级会员免费看
订阅专栏 解锁全文
1066

被折叠的 条评论
为什么被折叠?



