加载BIOS(Basic Input Output System):BIOS是系统启动时加载的第一个软件。
启动上电自检POST(Power-On-Self-Test),负责完成对CPU、主板、内存、软硬盘子系统、显示子系统(包括显示缓存)、串并行接口、键盘、CD-ROM光驱等的检测,主要检查硬件的好坏。
对外部设备进行初始化,读取BIOS参数,并和实际的硬件进行比较,如果不符合,会影响系统启动。
查找MBR(Master Boot Record,主引导分区)。如果未找到,会提示找不到硬盘。
读取主引导分区(MBR):拷贝启动引导代码BootLoader
启动引导代码(bootloader):当我们的硬盘上有多个操作系统时,可以用来选择进入到哪个操作系统。
加载内核,进入操作系统:运行第一个程序 : /sbin/init
sbin/init 会读取相关的配置文件,来确定系统的运行级别。
0: 关机
1 : 单用户模式
2 : 无网络支持的多用户模式
3 : 有网络支持的多用户模式
4 : 保留,未使用
5 : 有网络支持,且有图形化界面的多用户模式
6 : 重启
切换运行级别: init 级别
根据对应的运行级别,查找对应的脚本文件。例如,运行5级别,查找 /etc/rc5.d目录,启动该目录下的相关服务。
这些文件夹下的init脚本都有一些特别的名字,命名都以S(start)、K(kill)或D(disable)开头,后面跟一个数字。当init进入一个运行等级的时候,它会按照数字顺序运行所有以K开头的脚本并传入stop参数,除非对应的init脚本在前一个运行等级中没有启动。然后init按照数字顺序运行所有以S开头的脚本并传入start参数。任何以D开头的init脚本都会被忽略—这让你可以在指定的运行等级禁止一个脚本,或者你也可以仅仅移除全部符号链接。
解析用户自定义的启动脚本:/etc/rc.local(如果存在的话)
进入用户界面。