linux系统启动过程概述

注:以下是对Centos6中运行“man boot”的大致描述(翻译水平有限,多多包涵^_^),其它分支或许稍有不同。

linux系统启动过程大致可分以下五个步骤:
1、硬件启动。
2、系统引导。
3、启动内核。
4、运行init进程。
5、调用启动脚本。

现在就让咱们一起来追寻一下这个过程吧!
一、硬件启动(注:没讨论网络启动的情况)
    在通电或硬件重置后,系统最先运行的程序叫做BIOS,它存储在ROM中,主要做一些基本的机器自检测和从某些固定内存中读取启动参数的工作。它会执行固定在启动设备上系统引导程序,并把控制权移交给它。

二、系统引导
    系统引导程序一般位于启动设备上的第一个扇区,通常叫做MBR(Master Boot Record),不过它的大小是有限制的(包括文件分区表才512个字节),所以还有第二个引导程序,linux上通常为 lilo 或者 grub。它们的主要工作就是定位到磁盘上的内核,加载并运行它,允许交互使用。

三、启动内核
    内核加载后,它就会初始化驱动设备,启动swapper内核进程,挂载根文件系统,最后通过/sbin/init程序创建第一个用户进程(PID=1)。

四、运行init进程
    init进程启动时首先读取/etc/inittab文件以确定系统运行级别,最后会调用启动脚本,开启对应的管理服务。

五、调用启动脚本
    每个管理服务都以启动脚本的形式存储在/etc/init.d目录中,为了方便启动/停止各个运行级别下所对应的服务,在目录/etc/rc[0-6S].d中包含了针对各运行级别下各服务的符号链接脚本,其中以S开头的代表start该服务,而已K开头的则为stop该服务。另外,为了更好的设置启动参数,linux提供了/etc/sysconfig目录,里面包含了各服务启动脚本所需的参数配置文件。

猜你喜欢

转载自aisxyz.iteye.com/blog/2330746