power on BIOS 1、首先检测外围设备 2、其次检测启动设备 3、最后读取与执行启动设备的第一个扇区 HD 读取硬盘上的第0道第一个扇区(MBR) Bootloader
power on
BIOS
1、首先检测外围设备
2、其次检测启动设备
3、最后读取与执行启动设备的第一个扇区
HD
读取硬盘上的第0道第一个扇区(MBR)
Bootloader
1、初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境
带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
2、Bootloader 常用的引导工具为grub , lilo
Lilo|grub
1、GRUB是引导装入器,负责装入内核并引导Linux系统。被广泛的用于替代LILO
2 、支持在启动时使用命令行模式,MD5加密保护,可以从ext2/ext3 、
ReiseFS、JFS、FAT、minix及FFS文件系统启动
3、配置文件为/boot/grub/grub.conf
KERNEL BOOT
1、检测硬件设备
2、设备驱动初始化
3、访问initrd.img取得与启动相关的驱动
4、将根分区以只读方式挂载
5、载入初始进程(一般是init)
init
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,启动启动第一个用户级程序INIT(INIT的进程编号始终为1)
/etc/inittab
<定义了7个运行级别>
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
/etc/rc.d/rc.sysinit
Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,
包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动
swap分区、设定/proc等等。
/etc/rc.d/rcX.d
根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务
/etc/rc.d/rc.local
rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。
getty & login
bash
完成启动