linux开机过程
Linux 开机过程详解 Linux 开机过程可以分为以下几个阶段: 1. 加载 BIOS 的硬件信息、进行自我测试,并依据设定获得第一个可开机的设备; 2. 读取并执行第一个开机设备内 MBR 的 boot Loader(grub 等程序); 3. 依据 boot loader 的设置加载 Kernel,Kernel 会开始检测硬件与加载驱动程序; 4. 内核启动 init; 5. 系统初始化:(/etc/init/rcS.conf exec /etc/rc.d/rc.sysinit); 6. init 找到/etc/inittab 文件,确定默认的运行级别(X); 7. 触发相应的 runlevel 事件(/etc/init/rc.conf exec /etc/rc.d/rc $RUNLEVEL); 8. 开始运行/etc/rc.d/rc,传入参数 X; 9. /etc/rc.d/rc 脚本进行一系列设置,最后运行相应的/etc/rcX.d/中的脚本; 10. /etc/rcX.d/中的脚本按事先设定的优先级依次启动; 11. 最后执行/etc/rc.d/rc.local; 12. 加载终端或 X-Window 接口 BIOS 的角色: 在个人计算机架构下,开机的第一步是加载 BIOS(Basic Input Output System),并通过 BIOS 程序去加载 CMOS 的信息,并且藉由 CMOS 内的设定值取得主机的各项硬件配置信息。BIOS 还会进行开机自检(Power-on Self Test, POST),然后开始执行硬件检测的初始化,并设定 PnP 设备,之后再定义出可开机的设备顺序,接下来就会开始进行开机设备的数据读取了(MBR 相关的任务开始)。 Boot Loader 的角色: Boot Loader 是一个开机管理程序,负责加载内核文件到主存储器中去执行。由于不同的操作系统的文件系统格式不相同,因此我们必须要以一个开机管理程序来处理内核文件的加载问题。Boot Loader 程序安装在开机设备的第一个扇区(sector)内,也就是我们一直谈到的 MBR(Master Boot Record, 主要启动记录区)。 Boot Loader 的功能是认识操作系统的文件格式并加载内核到主存储器中去执行。 多系统安装的解决方案: 如果在一部主机上面安装多种不同的操作系统,每个文件系统(filesystem, 或者是 partition)都会保留一块启动扇区(boot sector)提供操作系统安装 boot loader,而通常操作系统默认都会安装一份 loader 到他根目录所在的文件系统的 boot sector 上。如果我们在一部主机上面安装 Windows 与 Linux 后,该 boot sector, boot loader 与 MBR 的相关性会有点像下图:每个操作系统默认是会安装一套 boot loader 到他自己的文件系统中(就是每个filesystem 左下角的方框),而在 Linux 统安装时,你可以选择将 boot loader 安装到 MBR中,也可以选择不安装。如果选择安装到 MBR 的话,那理论上在 MBR 与 boot sector 都会保有一份 boot loader 程序。