快速业务通道

linux的开机启动过程

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-25
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程. 启动第一步 加载BIOS 当你打开计算电源,计算机会加载BIOS信息.这是BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等.在此之后,计算机就知道应该去读取哪个硬件设备了.在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由LINUX来控制系统了. 启动第二步 读取MBR 硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,里面存放了预启动动信息、分区表信息.可分为两部分:第一部分为引导(PRE-BOOT)区,占了446个字节;第二部分分区表,共有66个字节,记录硬盘硬盘时分区信息.预引导区的作用之一是找到标记为活动的分区,并将活动分区的引导区读入内存. 系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0x7c00地址所在的物理内存中.其实被复制到物理内在的内容就是Boot Loader,就是grub 启动第三步 BOOT LOADER BOOT LOADER 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适 的状态,以便为最终调用操作系统内核做好一切准备.通常,BOOT LOADER :是严重地依赖于硬件而实现的,不同体系结构的系统存在着不同的BOOT LOADER 系统读取内存中的grub配置信息,并依照此配置信息来启动不同的操作系统. 启动第四步 加载内核 根据grub设定的内核映像所在路径,系统读取内在映像,并进行解压操作.此时屏幕会输出“Uncompreeing Linux"的提示.当解压缩内核完成后,屏幕输出”OK booting the kernel ". 系统将解压后的内核放置在内存中,并调用start_kernel()函数来启动一系列的初始货柜函数并初始化各种设备,完成LINUX核心环境的建立.至此,linux内核已经建立起来了,基于LINUX的程序应该可以正常运行了.start_kenrel()中主要执行了以下操作: 在start_kenrel()结尾,内核通过kenrel_thread()创建出一个系统内核线程,该线程执行的是内核中的init()函数,负责的是下一阶段的启动任务.调用cpues_idle()函数:进入系统主循环体口默认将一直执行default_idle()函数中的指令,即CPU的halt指令,直到就绪队列中存在其他进程需要被高度时才会转向执行其他函数.此时,系统中唯一存在就绪状态的进程就是由kerne_head()创建的init进程(内核线程),内核并不进入default_idle()函数,而是转向init()函数继续启动过程
启动第五步 用户层init依据inittab文件来设定运行等级
内核被加载后第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来初始化工作.
其实/etc/inittab文件最主要的作用就是设定LINUX的运行等级,其设定形式是“:ID:5:INITDEFAULT:",这就表明LINUX需要运行在等级5上.LINUX的运行等级设定如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留
5:有网络支持有图行化桌面的支持的多用户模式
6:重新引导系统,即重启
启支第六步 init进程执行rc.sysinit
在设定了运行等级后,linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置、启动SWAP分区、设定/proc等等.
线程init的最终完成状态是能够一般的用户程序可以正常地被执行,从而真正完成可供应用程序运行的系统环境.
init()函数结束,linux内核的引导部分才结束.
启动第七步 启动内核模块
具体是依据/etc/modules.conf文件来装载内核模块
启动第八步 执行不同运行级别的脚本程序
根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务.
启动第九步 执行/etc/rc.d/rc.local
分别初始化系统的定时器机制,软中断机制以及系统日期时间.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号