Linux 的开机启动顺序
Linux 系统启动从你的设备接上电源按下开关开始到你登录系统结束,中间有一个复杂但很连贯的过程:
- 加载 BIOS(Basic Input Output System,基本输入输出系统)。获取 CPU 相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等信息
- 读取 MBR(Master Boot Record,主引导记录)。MBR 就是磁盘上第 0 磁道的第一个扇区,里面含有 boot loader 的代码。
- 运行 boot loader。Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
- 加载内核。根据 boot loader 设定的内核映像所在的路径,读取内核映像并进行解压缩操作。
- 运行 init 程序。init 永远是系统启动后运行的的第一个进程,PID(进程编号)为 1。位置在 sbin/init ,之后会按照设置执行一大堆系统启动时要启动的脚本、加载的驱动等功能,我们要设置的开机启动项就是在这一步执行的。
- 执行 /bin/login程序,进入登录状态。