Linux基本的启动流程主要分成4个部分。

1、BIOS 阶段

在系统加电检测结束以后,由BIOS中的代码负责把引导器加载进入机器的内存中,控制权交给引导器。

2、Loader阶段

引导器负责确定Linux内核的位置,把Linux内核加载进入内存中;同时,确定文件系统的位置,将根文件系统的镜像加载进入内存中。然后在加载内核的时候给内核传入一些启动参数,用于控制内核执行过程中的一些行为,接下来将控制权交给内核。

3、Kernel阶段

内核接管控制权以后,首先解压缩自己,检测设备,加载内部模块。然后根据启动参数挂载根文件系统。挂载完根文件系统后内核启动的第1个进程是init,默认的位置为“/sbin/init”。如果找不到这个可执行文件,就转而启动“/bin/sh”,提供给用户一个人机交互的界面。

4、init进程阶段

init进程启动后查找的第1个配置文件 硬件资源是“/etc/inittab”,这个文件控制 init 的行动。一般 init 会首先指定启动等级,然后执行“/etc/ 加载 init进程rc.d/rc.sysinit”,同时 rc.sysinit-启动脚本启动系统服务进程(如 update、syslogd等)、网络和必要的环境变量设置。最后inittab会指定init进程去 调用getty打开多个终端控制台,每个终端控制台会执行login,从而出现“login:”的提示符。整 个Linux系统启动完成,下图为Linux系统启动流程。     

 Linux系统启动流程图

Logo

更多推荐