Linux开机流程

Linux开机流程

1,BIOS自检,检测硬件,决定启动介质

BIOS为写入到主板上的一块闪存或EEPROM的程序,它在开机时候执行,并通过BIOS程序去加载CMOS的信息,并通过CMOS内的设置取得主机的各项硬件配置,BIOS程序也可以修改CMOS当中的参数,一般使用Del按键进入BIOS设置界面。

2,从硬盘启动,读硬盘第一个扇区MBR,然后将启动引导工作交给boot loader

MBR引导记录位于物理硬盘的第一块扇区的一段引导代码(第一块扇区512个字节,其中MBR占446字节,分区表占64字节,结束标志占2字节),该扇区又称为主引导扇区(MBR扇区)

3,boot loader去找grub,grub读取配置文件grub.conf,决定默认启动项,找到内核(kernel)和驱动(initrd)

4,内核会主动调用init进程,读取配置文件/etc/inittab,决定启动级别,运行初始化脚本/etc/rc.d/rc.sysinit,运行相应的启动级别下的脚本/etc/rc.d/rcN.d/

5,依据/etc/inittab 执行/etc/rc.d/rc0~6.d

找到/etc/rc.d/rcN.d/K??开头的文件,并进行/etc/rcN.d/K?? stop的动作
找到/etc/rc.d/rcN.d/S??* 开头的文件,并进行/etc/rcN.d/S??* start的动作
如果默认启动是命令模式开启6个文本控制台 [ALT+F1~F6]
如果默认启动项是图形则开启图形界面以及6个文本控制台
用户自定义的开机启动程序/etc/rc.d/rc.local

6,加载X Window界面,等待用户输入用户名和密码

a.通过/etc/passwd、/etc/shadow验证,如果用户名和密码输入正确,
读取4个初始化文件:/etc/profile、/etc/bashrc、~/.bashrc、~/.bash_profile
文本界面直接开启shell
图形界面开启桌面,进入X Window,通过开启终端打开shell
b.系统还会自定义设备与模块对应文件为/etc/modprobe.conf

http://hao360.blog.51cto.com/5820068/1632942/