系统启动流程
开机自检
由BIOS进行POST自检。
- 检测和初始化硬件:对cpu、内存、显卡、键盘等硬件设备进行初步检测。
- 决定从哪个设备启动系统:根据BIOS内设置的引导程序。
MBR引导
从硬盘启动系统时的引导。
- 根据MBR中的设置,将系统控制权传递给包含操作系统引导文件的分区。
- 根据MBR记录中的引导信息调用启动菜单GRUB。
GRUB菜单
用于引导操作系统启动。
- 系统控制权传递给GRUB后,会显示启动菜单供用户选择。
- 根据所选项加载linux内核文件,将系统控制权转交给内核。
加载内核Kernel
预先编译好的特殊二进制文件,介于各种硬件资源和系统程序之间,负责资源分配与调度。
- 内核拥有系统控制权后,掌控整个linux操作系统运行过程。
init进程初始化
init进程是系统所有进程的起点,它的PID永远为1。
- linux内核首先将系统中的“/sbin/init”程序加载到内存中运行。
- init进程负责完成一系列的系统初始化过程:首先读取配置文件“/etc/inittab”根据文件中的设置来启动相应的运行级别;然后依次运行3个脚本文件,“/etc/rc.d/rc.sysinit”、“/etc/rc.d/rc”、“/etc/rc.d/rc.local”,会对系统环境进行初始化;最后运行终端程序“/sbin/mingetty”,等待用户进行登录(登录过程/bin/login程序负责验证)。