linux的启动流程

1.BIOS加电自检

计算机在启动后首先会进行BIOS的加电自检,检测计算机的硬件设备,BIOS会把MBR中的引导程序加载到内存中去,然后把控制权交给引导加载程序继续系统的启动过程

2.加载主引导程序MBR

通过主引导程序找到第一个要启动的设备的硬盘,并把此引导程序加载到内存中

3.加载次引导程序grub

grub是载入内核的主要工具,grub的主要功能是提供用户一个选择界面,进而选择用户想要加载的系统内核kernel的影响文件加载至内存中

4.linux核心文件即内核的加载

用户选择启动系统的内核后,grub会根据/boot/grub/grub.conf配置文件中所设置的信息,从/boot/所在的分区读取内核映像文件,然后把内核映像加载到内存中并把控制权交给内核,内核会继续引导系统启动,主要流程如下:

   (1)检测硬件设备,并进行初始化

   (2)内核初始化,内核是压缩文件,会进行自解压缩,同时加载所有硬件设备的驱动程序

   (3)内核初始化后会继续初始化与文件相关的虚拟设备

   (4)装载根文件系统,并将其挂载到根目录中

   (5)当上述引导完成后,内核会在用户空间执行init进程

5.init进程的执行

init是系统执行的第一个进程,该进程通过/etc/fstab中的设置挂载所提供的所有文件系统,并执行/etc/inittab脚本对系统进行初始化,根据信息设置启动相关的服务应用程序等,系统引导完毕,接受用户登录并进行操作。这里会提供用户两种交互式界面,即shell命令行或图形化的命令窗口

linux系统的启动会有很多操作,关机也是如此,我们一定要了解系统启动时都做了些什么,并了解各个阶段的相关信息设置。