系统启动过程
2018-12-27 07:40:54来源:博客园 阅读 ()
原创:https://www.cnblogs.com/bluestorm/p/5981435.html
系统启动过程大致流程:上电-->BIOS自检-->系统引导-->启动内核-->初始化系统
BIOS自检
BIOS 输入输出系统,它可以永久的记录在ROM的一个软件,是操作系统输入输出管理的一部分
BIOS的功能有两部分组成:
1.POST码
2.Runtime服务
POST阶段完成后它将从存储器中被清除,而runtime服务会一直保留,用于目标操作系统的启动。
步骤1:上电自检POST,主要负责检查系统外围关键设备(例如:CPU,内存,声卡,显卡,键盘,I/O等)是否正常。
步骤2:步骤1执行成功后,便会执行一段小程序来枚举本地设备对其初始化,这一步主要根据我们在BIOS中设置的系统启动顺序来搜索用于启动系统的驱动,如:硬盘,光盘,U盘,网络等。以硬盘为例,BISO此时会去读硬盘驱动器的第一个扇区,然后执行里面的代码,实际上BISO并不关心这个扇区的内容是什么,它只负责读取扇区的内容,并执行。
这一阶段,主要是检查硬件是否完好,找到第一个扇区的MBR,然后加载到内存并执行,再然后将控制权由BIOS转交给MBR
系统引导
通常情况下,grub等一些常见的文件都是直接安装到MBR中,下面以grub为例
grub 引导可以分为两个阶段stage1和stage2(有些较新的grub有定义了stage1.5)
1.stage1:stage1是直接写到MBR中的,这样机器检查完硬件后,就将控制权交给了gurb的代码,stage1 任务很简单,仅仅是将硬盘的0头0道2扇区读入内存,stage1是没有识别的文件系统的能力。
2.stage2:负责将stage2或stage1.5从硬盘读到内存中
启动内核
当stage2被加载到内存执行时,它首先会解析grub的配置文件/boot/grub/grub.conf 然后加载内核镜像到内存中,并将控制权转交给内核,而内核会立即初始化系统中各个设备并做相关的配置,其中包括CPU,存储设备等。
先加载内核,然后是initrd。
linux的设备驱动加载,有一部分是直接编译到内核镜像,另一部分是以模块的形式放到initrd中。
初始化系统
/sbin/init 进程是系统其它所有进程的父进程,当它有了控制权之后,它会读/etc/inittab文件来执行相应的脚步进行系统初始化,如:键盘,鼠标,设置网络等。主要包括以下:
1.执行系统初始化脚本
2.执行/etc/rc.d/rc脚本
3.执行用户自定义引导程序/etc/rc.d/rc.local
4.完成系统所有的启动任务后,linux会启动终端等待用户登录
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- RAID 1 软件实现(Linux 系统) 2020-06-10
- Linux系统介绍 2020-06-02
- 【原创】Linux中断子系统(一)-中断控制器及驱动分析 2020-05-31
- 微软:悬赏10万美金破解 Linux 系统 2020-05-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash