Linux的启动流程大致上如下图.
现在详细说明一下每个步骤:
-
第一阶段
当系统启动时,系统首先会加载BIOS。BIOS的首先会检查各硬件设备,当检查完毕没有问题之后。BIOS会根据设定的BootSequence来寻找可以引导系统的设备。一般而言,Linux是通过磁盘上MBR来引导系统的。
-
第二阶段
MBR是Master Boot Record,是位于磁盘第0磁道的第1扇区,大小是512字节。其中开始的446字节是主bootloader,接着的64字节是磁盘分区表,剩下的2个字节就是校验码。当系统加载MBR的时候,MBR上的bootloader就会开始发挥作用。
-
第三阶段
Bootloader就是主引导加载器。CentOS5,CentOS6上使用的Bootloader是grub ,而CentOS7上使用的是grub2.以grub为例,grub大体上是分为2步,第一步是stage1,stage1就是寻找位于磁盘上的stage2,第二步就是stage2,就是把内核加载在内存中的特定空间中,解压、展开,并把系统控制权交给内核Kernel。
-
第四阶段
内核Kernel获得控制权之后,会探测可识别到的所有硬件设备;加载硬件驱动程序(有可能会借助于ramdisk加载驱动);以只读方式挂载根文件系统(rootfs);运行用户空间上的第一个程序,CentOS5/6上的是init(于/sbin/init)。
-
第五阶段
init在启动的时候,首先会读取位于/etc/inittab的配置文件来以设定的运行级别。这里介绍Linux上的运行级别分别有:
0:关机
1:单用户模式(root, 无须登录), single, 维护模式;
2: 多用户模式,会启动网络功能,但不会启动NFS;维护模式;
3:多用户模式,正常模式;文本界面;
4:预留级别;可同3级别;
5:多用户模式,正常模式;图形界面;
6:重启
接着init会以设定的运行级别,来运行系统初始脚本(会执行/etc/rc.d/rc#.d上的脚本,#代表对应的运行级别的数字)、完成系统初始化。然后关闭对应下需要关闭的服务,启动需要启动服务。最后就会设置登陆终端,用户就能开始登陆,使用系统。
原创文章,作者:Net17_Tim,如若转载,请注明出处:http://www.178linux.com/11913
评论列表(1条)
写的不错,感谢分享。。。。