Linux开机过程
来源:互联网 发布:北大生命科学知乎 编辑:程序博客网 时间:2024/06/06 09:49
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- Linux 开机过程概述
- Linux开机过程
- Linux开机启动过程
- Linux-- 开机启动过程
- linux 开机过程
- Linux开机启动过程
- Linux开机过程
- linux开机引导过程
- linux开机过程
- linux开机启动过程
- linux开机启动过程
- Linux开机过程
- Linux开机启动过程
- Linux开机过程
- Linux 开机过程
- Linux开机启动过程
- linux开机启动过程
- linux主机开机过程
- 挑战2.3 Cow Bowling(POJ 3176)
- c语言编写九九乘法表
- Spring使用JdbcTemplate、JdbcDaoSupport和返回表自增主键值
- 黑马程序员------OC中代码块(block)的总结
- 反转单链表的四种方法
- Linux开机过程
- 数据库习题二 作业完成者 王典2013211958
- Android之旅---广播(BroadCast)
- 概率统计(DP)
- 9、内部类
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 小黄人软件的故事 -----程序源码,定制专家
- SQL函数说明大全
- 深入浅出Docker