CentOS系统启动流程.docx

CentOS系统启动流程.docx

ID:59256238

大小:15.19 KB

页数:4页

时间:2020-09-08

CentOS系统启动流程.docx_第1页
CentOS系统启动流程.docx_第2页
CentOS系统启动流程.docx_第3页
CentOS系统启动流程.docx_第4页
资源描述:

《CentOS系统启动流程.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CentOS系统启动流程Linux的启动流程分析开机不是只要单机电源按钮而关机只要关掉电源按钮就可以了吗?有何学问?话是这样没错,但是由于Linux是一套多用户、多任务的操作系统,你难保年在关机时没有人在线,如果你关机的时候碰巧一大群在线工作,那会当时在线工作的人马上断线的,那不是害死人?一些数据可是无价之宝。另外Linux在执行的时候,虽然你在界面上只会看到黑黑的一片,完全没有任何界面,但其他它是有很多的进程在后台下面执行的,例如日志文件管理程序、例行性工作调度等,当然还有一大堆网络服务,如邮件

2、服务器、www服务器等。如果随便开关机的话,是会对公司利益产生很大利益损失的。既然启动是很严肃的一件事,我们就需要了解整个启动的过程,也让我们比较容易发现启动过程里面可能会发生的问题地方,以及出现问题后的解决之道。启动流程一览启动第一步--加载BIOS当打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它,这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PNP特性等等。在此之后,计算机心里就有谱了,知道应

3、该去读取哪个硬件设备了。在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由Linux来控制系统了。启动第二部--读取MBR硬盘上第0磁道第一扇区被称为MBR,也就是MasterBootRecord,即主导记录,它的大小是512字节,可里面却存放了预启动信息、分区表信息。可分为两部分:第一部分为引导去,占了446个字节;第二部分为分区表,共66个字节,记录硬盘的分区信息。预引导区的作用之一是找到标记为活动的分区,并将活动分区的引导读入内存。系统找到BIOS所指定的硬盘MBR后,就会将其复制到0

4、*7c00地址所在的物理内存中。其实被复制到物理内存的内容就是BootLoader,而具体到你的电脑,那就是lilo或者grub了。启动第三步--BootLoaderBootLoader就是在操作系统内核运行之前的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境到一个合适的状态,一边为最终调用操作系统内核做好一切准备。通常,BootLoader:是严重地依赖于硬件而实现的,不同体系结构的系统存在着不同的BootLoader。BootLoader有若干

5、种,其中Grub、Lilo和Spfdisk是常见的Loader,但现在主要发行版主要以Grub为用。系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。启动第四步--加载内核根据grub设定的内核映象所在路径,系统读取内存映象,并进行解压缩操作。此时,屏幕一般会输出”UncompressingLinux“的提示。当解压缩内核完成后,屏幕输出”OK,bootingthekernel”。系统将压缩后的内核放置在内存之中,并调用start_

6、kernel()函数来启动一系列的出事化函数并初始化各种设备,完成Linux核心环境的建立,至此Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。Start_kernel()定义在init/main.c中,它就类似于一般可执行程序中的main()函数,系统在此之前所做的仅仅是一些能让内核程序最低限度执行的初始化操作,真正的内核初始化过程是从这里才开始。函数start_kerenl()将会调用一系列的初始化函数,用来完成内核本身的各方面设置,目的是最终建立起基本完整的Linux核

7、心环境。在start_kenrel()的结尾,内核通过kenrelthread()创建出第一个系统内核线程(即1号进程),该线程执行的是内核中的init()函数,负责的是下一阶段的启动任务。最后调用cpues_idle()函数,进入了系统主循环体口默认将一直执行default_idele()函数中的指令,即CPU的halt指令,直到就绪队列中存在其他进程需要被调度是才会转向执行其他函数,此时,系统中唯一存在就绪状态的进程就是由kernel_hread()创建的init进程(内核线程),所以内核并不

8、进入default_idle()函数,而是转向init()函数继续启动过程。启动第五步--用户层init依据inittab文件来设定运行等级内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据文件来进行初始化工作。其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:0:关机1:单用户模式2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。