Linux启动流程以及初始化

来源:互联网 发布:淘宝卖衣服规则 编辑:程序博客网 时间:2024/05/19 09:09

首先,不同发行版的Linux启动流程和脚本是略微不太不一样,但是大同小异。

以下是redhat的启动

1、加载内核

2、内核执行,相关驱动的初始化、注册等

3、执行init程序,最开始的程序

4、由init程序去执行第一个脚本

/etc/rc.d/rc.sysinit (较长,没有具体分析)
 /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式 
 /etc/rc.d/rc.local     #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)
/sbin/mingetty # 等待用户登录

在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
调入keymap以及系统字体
启动swapping
设置主机名
设置NIS域名
检查(fsck)并mount文件系统
打开quota
装载声卡模块
设置系统时钟

等等。
/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用 /etc/rc.d/rc3.d/下的脚本。

值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的
action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。

至此,LINUX的启动结束。
2、init运行级别及指令



0 0
原创粉丝点击