一直都对linux的启动过程挺感兴趣,但由于刚接触linux的时间不是很长,所以不是很了解,通过这段时间的学习和从网上查的资料,大概对启动过程有了一个大概的认识,下面给出自己的理解,错误之处还望给予指点,愿意学习! 一,电源加电,此时主板BIOS提供的信息进行自检,即 Power On Self Test ,这段时间主要来确定启动设备的数据。 二,读取MBR(master boot record),来启动主引导加载程序。 三,读取/boot/grub/grub.conf 的信息,来确定是直接启动核心,还是将启动控制权交给下一个引导加载程序来启动令一核心。 四,启动程序找到核心文件后,通过initrd来建立虚拟盘 Raw Disk 来协助启动,然后解压核心到主存储器。 五,运行系统初始化程序init(主要通过执行/etc/rc.d/rc.sysinit脚本来完成初始化)。 六, 加载核心的外挂模块(/etc/modprobe.conf)。 七,根据/etc/inittab设置,启动运行等级,然后执行相应的/etc/rc.d/rc.[n] 中的脚本,然后启动系统服务。 八,执行用户自定义脚本模块/etc/rc.d/rc.local。 九,执行/bin/login 等待用户登录。 十,登录后以shell方式将主机控制权交给用户