X86 体系结构内核启动分析
一、硬件检测
当机器加电后它首先执行 基本输入输出系统中的代码, 首先执行加电自
检程序,当自检通过程便完成了硬件的启动。当自检完成后 按照系统
中设置的启动顺序搜寻有效的启动驱动器这里我们以硬盘为例,并读入系统引导扇区,
并将系统控制权交给引导程序。
二、加载和执行引导程序
系统引导程序主要是把系统内核装载到内存,启动盘必须在第一个逻辑磁道上包含引
导记录。这 个字节的扇区又被称作是引导扇区,在系统完成加电自检后, 从启
动盘中将引导扇区读入到内存中。一旦引导记录加载完毕, 就交出系统的执行控制
权,跳转到引导程序的头部执行。
有关 的引导程序 和 , 和 可以引导多个系统,嵌入式系统
上,最常见的 是 ,如果机器上要装多系统的话一般都会用到它们,
这一引导程序也储存在引导扇区中或者存放在主引导记录中, 和 都许允用
户自己配置,它们在系统安装时建立了关于系统内核占用磁盘数据块的位置对照表。
比如, 程序就非常强大。 运行后,将初始化设置内核运行所需的环境。然
后加载内核镜像。
磁盘引导全过程:
!" 读取磁盘第一个 字节(硬盘的 # 道 # 面 扇区,被称为 (主
引导记录)$也称为 !)。 由一部分 的引导代码、分区表和魔数
三部分组成。
!%"识别各种不同的文件系统格式。这使得 识别到文件系统。
!"加载系统引导菜单&&&'(! 或 (!根据 版本不同
文件位置会有所不同,加载内核 )'* 和 + 磁盘 。
有时候基本引导装载程序!不能识别 ! 所在的文件系统分区$那么这时候
就需要 !( 来连接 ! 和 ! 了
假设有如下 配置代码
,#$# && 分区
-&)'*.(/(0(#.12(32(/4/5&)&'# && 分区
&'3!.(/(0(#.12(32(/4/('
要搞清楚上面两个 的关系$,#$#中的 是 命令$它用来指定
所在的分区作为 的根目录(而 5&)&'# 是 - 的参数$它告诉操作
系统内核加载完毕之后$真实的文件系统所在的设备(要注意 的根目录和文件系统的根
目录的区别。- 命令用来指定内核所在的位置$6&6代表,#$#$也就是 的根目
录 命令用来指定初始化 ' 的 ' 文件所在位置。
评论0
最新资源