Linux 启动运行五步曲
1、开机自检
linux 开机加电后,系统进行开机自检,主要对各种硬件设备进行检测,如CPU、内存、主板、硬盘、CMOS芯片等,
如果出现致命故障则停机,由于初始化过程还没完成,所以不会出现任何提示信号;
如果出现一般故障则会发出声音等提示信号,等待故障清除;
若未出现故障,自检完成。
2、开机自检完成,加载BIOS、主引导目录(MBR)
开机自检完成后,CPU首先读取位于CMOS中的BIOS程序,按照BIOS中设定的启动次序(Boot Sequence)逐一查找可启动设备,加载主引导记录
3、加载内核,初始化initrd
initrd文件其实是一个虚拟的根文件系统,里面有bin、lib、lib64、sys、var、etc、sysroot、 dev、proc、tmp等根目录,它的功能就是让内核与真正的根建立联系,加载根文件的驱动程序,然后以读写方式挂载根文件系统,至此, 内核加载完成。
4、运行/sbin/init,进行系统初始化
内核挂载完根文件系统后,执行第一个用户进程init,init首先运行/etc/init/rcS.conf 脚本,调用了/etc/rc.d/rc.sysinit,对系统做初始化设置,比如
获得网络环境、是否启用SELinux、初始化硬件 、挂载设备、检验磁盘文件系统、加载自定义模块、设置主机名、同步存储器、清除开机过程当中的临时文件等。
5、打印登录提示符
系统初始化完成后,init 给出用户登 录提示符(login)或图形化登录界面,用户输入用户和密码登陆后,系统会为用户分配一个uid 、gid,用于检测用户运行程序时的身份验证。登录成功后,整个系统启动流程运行完毕