当前位置: 首页 > Linux kernrl > 正文

Linux开机过程

Linux初探之Linux启动(基础)

Linux操作系统现在广泛应用于各种服务器。它的启动总共可以分为9个步骤。

第一步:

BIOS自检:

也称上电自检(POST,Power On Self Test)。 指计算机系统,接通电源,自动运行主板COMS芯片固化的程序(BIOS程序)的行为,包括对CPU、系统主板、基本内存、扩展内存、系统ROM BIOS等器件的测试。如发现错误,给操作者提示或警告。简化或加快该过程,可使系统能够快速启动

第二步:

读取MBR

在已经设定从硬盘启动的情况下(也可能从CD-ROM,软盘,USB启动这里是从硬盘启动的情况)读取MBR区域(引导扇区)这个区域共有512个字节,其中446个字节保存着操作系统的启动程序。引导启动我们需要的操作系统就是我们常说的grub。

第三步:

Bootloader:

  执行一个引导装载程序Bootloader,通过这个程序我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状 态,以便为最终调用操作系统内核做好一切准备,通常,BootLoade:是严重地依赖于硬件而实现的,不同体系结构的系统存在着不同的Boot Loader。

第四步:

加载内核

     找到操作系统所在区域后就开始加载内核,根据grub设定的内核所在路径,系统读取内存映像,并进行解压缩操作。有时也可能从网络上下载内核并解压到RAM中。调用start_kerenl()函数,它是体系结构无关的开始点。

第五步:

读取/etc/inittab进行初始化工作。

内核内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:

0:关机

1:单用户模式

2:无网络支持的多用户模式

3:有网络支持的多用户模式

4:保留,未使用

5:有网络支持有X-Window支持的多用户模式

6:重新引导系统,即重启

内核初始化各种硬件设备

第六步:

执行rc.sysinit

init进程执行rc.sysinit

在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc

第六步:根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

第七步:

具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块

第八步:

Init执行run-level的各种Scripts,启动服务

根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

第九步:

init执行/etc/rc.d/rc.local

加载用户自己设定的一些参数,具体参照自己个人设定。

最后,

执行/bin/login程序,进入登录状态

参考资料:

http://blog.csdn.net/clozxy/article/details/5487715

http://roclinux.cn/?p=1301

http://bbs.ednchina.com/BLOG_ARTICLE_1983734.HTM

http://blog.chinaunix.net/uid-26421509-id-3887026.html

http://wenku.baidu.com/link?url=QowERRDMlUUNG85S8FOrPtE4GVPF8ilMcpqeEjp0DwZbrZemAizO6sAx-ADbTUsZfSrPqtjvApuIWxx13MYsYH0VLwH-QQrxmxbZOnshKPO

版权声明:本文为博主原创文章,未经博主允许不得转载。

]]>

本文固定链接: http://zmrlinux.com/2015/03/20/linux%e5%bc%80%e6%9c%ba%e8%bf%87%e7%a8%8b/ | Kernel & Me

该日志由 root 于2015年03月20日发表在 Linux kernrl 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Linux开机过程 | Kernel & Me