欢迎来到天天文库
浏览记录
ID:47468897
大小:216.00 KB
页数:54页
时间:2020-01-11
《Linux启动过程详细讲解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、......Linux启动信息解析参考材料......目录Linux启动信息解析1目录21.项目需求分析31.1项目背景:31.2时间:31.3项目要求分析:32.Linux启动过程42.1Linux下各个目录的作用42.2Linux启动过程42.2.1Linux的引导过程52.2.2运行级别(runlevel)52.2.3/etc/rc.d/与/etc/rc.d/init.d的关系53./init/main.c中init()函数74.启动信息10参考材料......1.项目需求分析1.1项目背景:在学习操作系统中,操作系统的如何启动是一个难点,本文基于Linux开源操作系统,
2、分析了从BIOS加载BOOTLOAD,操作系统接管CPU后,init()函数所做的事情以及如何初始化系统的各种服务以及SHELL。1.2时间:开始时间:2010-7-25结束时间:2010-7-251.3项目要求分析:1)介绍Linux启动所需的目录。2)Linux启动过程。3)/etc/rc.d/与/etc/rc.d/init.d的关系。4)分析init/main.c代码中init()函数。参考材料......2.Linux启动过程2.1Linux启动所需的目录init.d/:各种服务器和程序的二进制文件存放目录。rcx.d/:各个启动级别的执行程序连接目录。里头的东西都是指
3、向init.d/的一些软连接。还有三个脚本:rc.sysinit,rc,rc.local。/etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行。在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:i.调入keymap以及系统字体ii.启动swappingiii.设置主机名iv.设置NIS域名v.检查(fsck)并mount文件系统vi.打开quotavii.装载声卡模块viii.设置系统时钟ix.等等。2.2Linux启动过程redhat的启动方式和执行次序是:i
4、.加载内核ii.执行init程序iii./etc/rc.d/rc.sysinit#由init执行的第一个脚本iv./etc/rc.d/rc$RUNLEVEL#$RUNLEVEL为缺省的运行模式v./etc/rc.d/rc.localvi./sbin/mingetty#等待用户登录init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。至此,Linux的启动结束。参考材料......2.2.1Linux的引导过程系统启动之后,在
5、进入init.d之前,我们先来看看系统都做了什么工作.我们从比较高的角度去看开始引导的整个过程,比较清晰明了。系统加电之后,首先进行的硬件自检,然后是bootloader对系统的初始化,加载内核。内核被加载到内存中之后,就开始执行了。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统,并已初始化所有的设备驱动程序和数据结构等之后,就通过启动一个叫init的用户级程序,完成引导进程。2.2.2运行级别(runlevel)init进程是系统启动之后的第
6、一个用户进程,所以它的pid(进程编号)始终为1。init进程上来首先做的事是去读取/etc/目录下inittab文件中initdefaultid值,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6,具有不同的功能。不同的运行级定义如下: #0-停机(千万别把initdefault设置为0,否则系统永远无法启动) #1-单用户模式 #2-多用户,没有NFS #3-完全多用户模式(标准的运行级) #4–系统保留的 #5-X11(xwindow) #6-重新启动(千万不要把ini
7、tdefault设置为6,否则将一直在重启)2.2.3/etc/rc.d/与/etc/rc.d/init.d的关系写到这里,应该差不多要进入init.d了,可是我觉得单写/etc/rc.d/init.d的话不一定能说得清楚明白,就拿它跟/etc/rc.d这个它上一级的目录一起来讨论,可能比较合适一些,因为他们之间有着千丝万缕的关系。在这里先解释一下init.d里面放的都是什么东西。这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本。系统在安装时装了好多rpm包
此文档下载收益归作者所有