- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章Linux系统的启动 本章从系统的初始化过程介绍对Linux内核源码的分析的一种方法。系统的初始化流程包括:系统引导,实模式下的初始化,保护模式下的初始化共三个部分。和系统的引导过程相关的概念还有单用户模式、运行级别等。对这些概念的正确理解是配置和维护系统的必要条件。 2.1操作系统的启动 一般来说,操作系统的引导过程分两个步骤。首先,计算机硬件经过开机自检(Power On Self-Test,POST)之后,从软盘或硬盘的固定位置装载一小段代码,这段代码一般称为“引导装载器”。然后,由引导装载器负责装入并运行操作系统。引导装载器非常小,一般只有几百个字节,而操作系统庞大而复杂。上述分成两阶段的引导过程,可将计算机中的固化软件保持得足够小,同时也便于实现对不同操作系统的引导。 2.1.1 系统引导过程简介 系统启动过程主要由以下几个步骤组成(以硬盘启动为例): (1) 开机 (2) BIOS 加电自检 ( Power On Self Test,POST ),内存地址为 0ffff:0000 (3) 将硬盘第一个扇区 (0头0道1扇区, 也就是Boot Sector)读入内存地址 0000:7c00 处。 (4) 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则转去尝试其他启动介质, 如果没有其他启动介质则显示No ROM BASIC 然后死机。 (5) 跳转到 0000:7c00 处执行 MBR 中的程序。 (6) MBR 首先将自己复制到 0000:0600 处, 然后继续执行。 (7) 在主分区表中搜索标志为活动的分区。 如果发现没有活动分区或有不止一个活动分区, 则停止。 (8)将活动分区的第一个扇区读入内存地址0000:7c00 处。 (9)检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则显示 Missing Operating System 然后停止, 或尝试软盘启动。 (10)跳转到0000:7c00 处继续执行特定系统的启动程序。 (11)启动系统。 以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成。 6,7,8,9,10步由MBR中的引导程序完成。一般多系统引导程序 (如 Smart Boot Manager、BootStar、PQBoot 等)都是将标准主引导记录替换成自己的引导程序, 在运行系统启动程序之前让用户选择要启动的分区。而某些系统自带的多系统引导程序 (如LILO,NT Loader 等)则可以将自己的引导程序放在系统所处分区的第一个扇区中,在 Linux中即为是两个扇区的SuperBlock。 注:以上各步骤中使用的是标准 MBR,其他多系统引导程序的引导过程与此不同。 2.1.2 硬盘结构 1. 硬盘参数 当硬盘的容量还非常小的时候, 人们采用与软盘类似的结构生产硬盘。硬盘盘片的每一条磁道都具有相同的扇区数。 由此产生了所谓的3D参数 (Disk Geometry)以及相应的寻址方式。到目前为止,通常还是沿用这种 CHS (Cylinder/Head/Sector)来表示硬盘参数。其中:磁头数(Heads) 表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 256 (用 8 个二进制位存储);柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道, 最大为 1024(用 10 个二进制位存储);扇区数(Sectors per track) 表示每一条磁道上有几个扇区, 最大为63 (用 6 个二进制位存储)。每个扇区一般是 512个字节。 2. 基本 INT 13H 调用简介 BIOS int 13H 调用是 BIOS 提供的磁盘基本输入输出中断调用, 它可以完成磁盘(包括硬盘和软盘)的复位、读写、校验、定位、诊断和格式化等功能。 它使用的是 CHS 寻址方式, 因此最大只能访问 8 GB 左右的硬盘 ( 本文中如不作特殊说明, 均以 1M = 1048576 字节为单位)。 3. 现代硬盘结构简介 在老式硬盘中, 由于每个磁道的扇区数相等, 所以外道的记录密度要远低于内道, 因此会浪费很多磁盘空间。为了进一步提高硬盘容量,人们改用等密度结构生产硬盘。 也就是说, 外圈磁道的扇区比内圈磁道多。 采用这种结构后, 硬盘不再具有实际的3D参数, 寻址方式也改为线性寻址, 即以扇区为单位进行寻址。为了与使用3D寻址的老软件兼容 (如使用BIOS INT13H接口的软件), 在硬盘控制器内部安装了一个地址翻译器, 由它负责将老式3D参数翻译成新的线性参数。不同的工作模式(如LBA、LARG
文档评论(0)