linux系统的启动是一个复杂的过程,根据个人所学分析总结,如有错误,敬请指正
1. BIOS 自检
通电后,主板上的BIOS程序检测硬件,根据BIOS中的设定,找到第一个启动介质。
根据INT 13中断功能,读取启动硬盘第一个扇区的内容,此扇区存储446bytes的MBR 和64bytes的分区表
。
2. GRUB引导阶段
MBR中存储boot loader主程序,其配置文件和相关文档默认在/boot/grub/下 ,
BIOS自检完后,boot loader 运行,读取grub.conf中内容,寻找到 initrd 和linux内核
位置,并将内核加载到内存当中。
3.内核引导阶段
initrd内程序运行,虚拟一个根分区,加载其他硬件驱动。然后,linux内核载入硬盘驱动,进而识别硬盘,
只读方式挂载真正的根分区(/),initrd 退出,此时硬件的管理权交给内核。内核开始准备软件的执行环境
4 .系统软件及服务环境初始化阶段
内核呼叫第一支程序,/sbin/init ,init读取配置文件/etc/inittab内容,运行。
->inittab 中规定了默认运行级别,系统初始化需要执行的其他程序,/etc/rc.d/
rc.sysinit , /etc/rc.d/rc[0-6].d, /etc/rc.d/rc.local
->/etc/rc.d/rc [0-6].d 是启动和关闭对应级别的服务,会调用/etc/init.d/下
服务的启动脚本和/etc 下服务的配置文件
->加载登录程序,等待用户输入账户,密码。和/etc/passwd 和/etc/shadow 中
内容比对,是否正确,验证通过,则将相关验证信息写入日志。然后,读取/etc/p
rofile 以及对应用户家目录下的配置文件,如:~/.bash_profile,~/.bashrc,都没有问题则启动登录shell
->或者执行/etc/X11/prefdm 这个文件,启动linux的图形桌面环境
5.启动完成。
转载于:https://blog.51cto.com/geeeek/1124315