首页 > 代码库 > Linux系统从开机到正常提供服务的详细开机启动流程

Linux系统从开机到正常提供服务的详细开机启动流程

1、BIOS加电自检,检测硬件,找到引导分区
2、读取并执行MBR(主引导记录)的bootloader(grub程序)
3、根据bootloader中的设备加载kernel,kernel会开始检测硬件与加载驱动
/etc/grub.conf 就是bootloader中需要加载kernel的配置文件
4、内核启动
文件为:/sbin/init,主要是准备软件执行环境
5、初始化系统
/etc/init/rcS.conf 文件中执行/etc/rc.d/rc.sysinit
rc.sysinit脚本的功能:
主机名、挂载设备、判断是否启动selinux、网络环境、初始化raid
6、init找到/etc/inittab文件,确定默认的运行级别
运行级别:
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this) 关机
#   1 - Single user mode 单用户模式
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)     多用户模式,不支持网络
#   3 - Full multiuser mode 多用户模式,不支持网络
#   4 - unused 保留项
#   5 - X11 图形模式
#   6 - reboot (Do NOT set initdefault to this) 重启

id:3:initdefault: 默认是图形模式,一般工作场景改成3文本模式

7、系统启动运行的程序 /etc/init/rc.conf 
如果系统运行级别是3,进入/etc/rc3.d下看到许多以K开头的文件,表示该级别不启动服务;S开头的文件,表示该级别下启动服务。数字代表的是启动顺序,由小到大。启动服务查看chkconfig --list
8、执行/etc/rc.d/rc.local
想要开机执行某个命令或是执行某个脚本,就写到这个文件里。
9、开启终端或者图形界面(前提系统安装了桌面的软件包),输入帐号和密码登陆到系统中,开启shell 

备注:附图两张(Linux开机启动技术发展历程:init-upstart-systemd)

图一:

技术分享

图二:


技术分享


Linux系统从开机到正常提供服务的详细开机启动流程