第2章 Linux操作系统的启动.ppt
《第2章 Linux操作系统的启动.ppt》由会员分享,可在线阅读,更多相关《第2章 Linux操作系统的启动.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章Linux系统的启动n n本章从系统的初始化过程介绍对Linux内核源码的分析的一种方法。系统的初始化流程包括:系统引导,实模式下的初始化,保护模式下的初始化共三个部分。和系统的引导过程相关的概念还有单用户模式、运行级别等。对这些概念的正确理解是配置和维护系统的必要条件。2.1操作系统的启动一般来说,操作系统的引导过程分两个步骤。一般来说,操作系统的引导过程分两个步骤。首先,计算机硬件经过开机自检(首先,计算机硬件经过开机自检(PowerOnPowerOnSelf-TestSelf-Test,POSTPOST)之后,从软盘或硬盘的固定之后,从软盘或硬盘的固定位置装载一小段代码,这段代码一
2、般称为位置装载一小段代码,这段代码一般称为“引导引导装载器装载器”。然后,由引导装载器负责装入并运行。然后,由引导装载器负责装入并运行操作系统。引导装载器非常小,一般只有几百个操作系统。引导装载器非常小,一般只有几百个字节,而操作系统庞大而复杂。上述分成两阶段字节,而操作系统庞大而复杂。上述分成两阶段的引导过程,可将计算机中的固化软件保持得足的引导过程,可将计算机中的固化软件保持得足够小,同时也便于实现对不同操作系统的引导。够小,同时也便于实现对不同操作系统的引导。2.1.1 系统引导过程简介系统启动过程主要由以下几个步骤组成系统启动过程主要由以下几个步骤组成(以硬盘启动为例以硬盘启动为例):
3、(1)(1)开机开机(2)(2)BIOSBIOS加电自检加电自检(PowerOnSelfTestPowerOnSelfTest,POST)POST),内内存地址为存地址为 0 0ffff:0000ffff:0000(3)(3)将硬盘第一个扇区将硬盘第一个扇区(0(0头头0 0道道1 1扇区,扇区,也就是也就是BootBootSector)Sector)读入内存地址读入内存地址 0000:70000:7c00c00处。处。(4)(4)检查检查(WORD)0000:7dfeWORD)0000:7dfe是否等于是否等于 0 0 xaa55xaa55,若不等若不等于则转去尝试其他启动介质,于则转去尝试
4、其他启动介质,如果没有其他启动介质则如果没有其他启动介质则显示显示 NoROMBASICNoROMBASIC然后死机。然后死机。(5)(5)跳转到跳转到 0000:70000:7c00c00处执行处执行 MBRMBR中的程序。中的程序。(6)(6)MBRMBR首先将自己复制到首先将自己复制到 0000:06000000:0600处,处,然后继续执然后继续执行。行。(7)(7)在主分区表中搜索标志为活动的分区。在主分区表中搜索标志为活动的分区。如果发现没有活如果发现没有活动分区或有不止一个活动分区,动分区或有不止一个活动分区,则停止。则停止。(8)(8)将活动分区的第一个扇区读入内存地址将活动分
5、区的第一个扇区读入内存地址0000:70000:7c00c00处。处。(9)(9)检查检查(WORD)0000:7dfeWORD)0000:7dfe是否等于是否等于 0 0 xaa55xaa55,若不等于若不等于则显示则显示 MissingOperatingSystemMissingOperatingSystem然后停止,然后停止,或尝或尝试软盘启动。试软盘启动。(10)(10)跳转到跳转到0000:70000:7c00c00处继续执行特定系统的启动程序。处继续执行特定系统的启动程序。(11)(11)启动系统。启动系统。以上步骤中以上步骤中 2 2,3 3,4 4,55步是由步是由 BIOSB
6、IOS的引导程序完的引导程序完成。成。6 6,7 7,8 8,9 9,1010步由步由MBRMBR中的引导程序完成。一中的引导程序完成。一般多系统引导程序般多系统引导程序(如如 SmartBootManagerSmartBootManager、BootStarBootStar、PQBootPQBoot 等等)都是将标准主引导记录替换成自都是将标准主引导记录替换成自己的引导程序,己的引导程序,在运行系统启动程序之前让用户选择要在运行系统启动程序之前让用户选择要启动的分区。而某些系统自带的多系统引导程序启动的分区。而某些系统自带的多系统引导程序(如如LILOLILO,NTLoaderNTLoade
7、r等等)则可以将自己的引导程序放在系统所处则可以将自己的引导程序放在系统所处分区的第一个扇区中,在分区的第一个扇区中,在 LinuxLinux中即为是两个扇区的中即为是两个扇区的SuperBlockSuperBlock。n n注:以上各步骤中使用的是标准注:以上各步骤中使用的是标准 MBRMBR,其他多系统引导其他多系统引导程序的引导过程与此不同。程序的引导过程与此不同。2.1.2 硬盘结构1.1.硬盘参数硬盘参数当硬盘的容量还非常小的时候,当硬盘的容量还非常小的时候,人们采用与软盘类人们采用与软盘类似的结构生产硬盘。硬盘盘片的每一条磁道都具有相同的似的结构生产硬盘。硬盘盘片的每一条磁道都具有
8、相同的扇区数。扇区数。由此产生了所谓的由此产生了所谓的3 3DD参数参数(DiskGeometry)DiskGeometry)以及相应的寻址方式。到目前为止,通常还是沿用这种以及相应的寻址方式。到目前为止,通常还是沿用这种 CHS(Cylinder/Head/Sector)CHS(Cylinder/Head/Sector)来表示硬盘参数。其中:来表示硬盘参数。其中:磁头数磁头数(Heads)Heads)表示硬盘总共有几个磁头,也就是有几面表示硬盘总共有几个磁头,也就是有几面盘片,盘片,最大为最大为 256(256(用用 88个二进制位存储个二进制位存储);柱面数;柱面数(Cylinders)C
9、ylinders)表示硬盘每一面盘片上有几条磁道,表示硬盘每一面盘片上有几条磁道,最大为最大为 1024(1024(用用 1010个二进制位存储个二进制位存储);扇区数;扇区数(SectorsperSectorspertrack)track)表示每一条磁道上有几个扇区,表示每一条磁道上有几个扇区,最大为最大为63(63(用用 66个二进制位存储个二进制位存储)。每个扇区一般是。每个扇区一般是 512512个字节。个字节。2.2.基本基本 INT13HINT13H调用简介调用简介BIOSBIOSintint13H13H调用是调用是 BIOSBIOS提供的磁盘基本输入提供的磁盘基本输入输出中断调用
10、,输出中断调用,它可以完成磁盘它可以完成磁盘(包括硬盘和软盘包括硬盘和软盘)的复的复位、读写、校验、定位、诊断和格式化等功能。位、读写、校验、定位、诊断和格式化等功能。它使用的是它使用的是 CHSCHS寻址方式,寻址方式,因此最大只能访问因此最大只能访问 88GBGB左右的硬盘左右的硬盘(本文中如不作特殊说明,本文中如不作特殊说明,均以均以 1 1M=M=10485761048576字节为单位字节为单位)。3.3.现代硬盘结构简介现代硬盘结构简介在老式硬盘中,在老式硬盘中,由于每个磁道的扇区数相等,由于每个磁道的扇区数相等,所以所以外道的记录密度要远低于内道,外道的记录密度要远低于内道,因此会
11、浪费很多磁盘空因此会浪费很多磁盘空间。为了进一步提高硬盘容量,人们改用等密度结构生产间。为了进一步提高硬盘容量,人们改用等密度结构生产硬盘。硬盘。也就是说,也就是说,外圈磁道的扇区比内圈磁道多。外圈磁道的扇区比内圈磁道多。采用采用这种结构后,这种结构后,硬盘不再具有实际的硬盘不再具有实际的3 3DD参数,参数,寻址方式也寻址方式也改为线性寻址,改为线性寻址,即以扇区为单位进行寻址。为了与使用即以扇区为单位进行寻址。为了与使用3 3DD寻址的老软件兼容寻址的老软件兼容(如使用如使用BIOSINT13HBIOSINT13H接口的软件接口的软件),在硬盘控制器内部安装了一个地址翻译器,在硬盘控制器内
12、部安装了一个地址翻译器,由它负责由它负责将老式将老式3 3DD参数翻译成新的线性参数。不同的工作模式参数翻译成新的线性参数。不同的工作模式(如(如LBALBA、LARGELARGE、NORMALNORMAL)对应不同的对应不同的3 3DD参数。参数。4.4.扩展扩展 INT13HINT13H虽然现代硬盘都已经采用了线性寻址,但是由于基虽然现代硬盘都已经采用了线性寻址,但是由于基本本INT13HINT13H的制约,使用的制约,使用 BIOSBIOS的的INT13HINT13H接口的程序接口的程序(如(如 DOSDOS等)还只能访问等)还只能访问8 8GG以内的硬盘空间。为了打以内的硬盘空间。为了
13、打破这一限制,破这一限制,MicrosoftMicrosoft等几家公司制定了扩展等几家公司制定了扩展 INTINT13H13H标准标准(ExtendedINT13H)ExtendedINT13H),采用线性寻址方式存取采用线性寻址方式存取硬盘,突破了硬盘,突破了88GG的限制,并还加入了对可拆卸介质的限制,并还加入了对可拆卸介质(如如活动硬盘活动硬盘)的支持。的支持。2.1.3 引导扇区1.1.BootSectorBootSector的组成的组成BootSectorBootSector也就是硬盘的第一个扇区,也就是硬盘的第一个扇区,它由它由 MBRMBR(MasterBootRecord)(
14、MasterBootRecord),DPT(DiskPartitionTable)DPT(DiskPartitionTable)和和 BootRecordIDBootRecordID三部分组成。三部分组成。MBRMBR又称作主引导记录,又称作主引导记录,占用占用 BootSectorBootSector的前的前 446446个字节个字节(0(0to0 x1BD)to0 x1BD),存放系统主引导程序存放系统主引导程序(它负责从活动分区中装载并运行系它负责从活动分区中装载并运行系统引导程序统引导程序)。DPTDPT即主分区表占用即主分区表占用 6464个字节个字节(0(0 x1BEx1BEto0
15、 x1FD)to0 x1FD),记录了磁盘的基本分区信息。记录了磁盘的基本分区信息。主分区表分主分区表分为四个分区项,为四个分区项,每项每项 1616字节,字节,分别记录了每个主分区分别记录了每个主分区的信息的信息(因此最多可以有四个主分区因此最多可以有四个主分区)。BootRecordIDBootRecordID即引导区标记占用两个字节即引导区标记占用两个字节(0(0 x1FEand0 x1FF)x1FEand0 x1FF),对于对于合法引导区,合法引导区,它等于它等于 0 0 xAA55xAA55,这是判别引导区是否合这是判别引导区是否合法的标志。法的标志。BootSector的具体结构如
16、下图所示:2.2.分区表结构简介分区表结构简介分区表由四个分区项构成,分区表由四个分区项构成,每一项的结构如下:每一项的结构如下:n nBYTEState:BYTEState:分区状态,分区状态,0=0=未激活,未激活,0 0 x80=x80=激活激活(注意此项注意此项)n nBYTEBYTEStartHeadStartHead:分区起始磁头号分区起始磁头号n nWORDWORDStartSCStartSC:分区起始扇区和柱面号,分区起始扇区和柱面号,底字节的低底字节的低6 6位为扇区号,高位为扇区号,高2 2位为柱面号的第位为柱面号的第 9 9,1010位,位,高字节为高字节为柱面号的低柱面
17、号的低 88位位n nBYTEType:BYTEType:分区类型,分区类型,如如 0 0 x0B=FAT32x0B=FAT32,0 x83=0 x83=LinuxLinux等,等,0000表示此项未用表示此项未用n nBYTEBYTEEndHeadEndHead:分区结束磁头号分区结束磁头号n nWORDWORDEndSCEndSC:分区结束扇区和柱面号,分区结束扇区和柱面号,定义同前定义同前n nDWORDRelative:DWORDRelative:在线性寻址方式下的分区相对扇区在线性寻址方式下的分区相对扇区地址地址(对于基本分区即为绝对地址对于基本分区即为绝对地址)n nDWORDSe
18、ctors:DWORDSectors:分区大小分区大小(总扇区数总扇区数)在在 DOS/WindowsDOS/Windows系统下,系统下,基本分区必须以柱面基本分区必须以柱面为单位划分为单位划分(Sectors*HeadsSectors*Heads个扇区个扇区),如对于如对于 CHSCHS为为 764/256/63764/256/63的硬盘,的硬盘,分区的最小尺寸为分区的最小尺寸为 256*256*63*512/1048576=7.87563*512/1048576=7.875MBMB。由于硬盘的第一个扇区已经被引导扇区占用,由于硬盘的第一个扇区已经被引导扇区占用,所以所以一般来说,一般来说
19、,硬盘第一个磁道硬盘第一个磁道(0(0头头0 0道道)的其余的其余 6262个扇区个扇区是不会被分区占用的。是不会被分区占用的。某些分区软件甚至将第一个柱面某些分区软件甚至将第一个柱面全部空出来。全部空出来。3.3.扩展分区扩展分区由于主分区表中只能分四个分区,由于主分区表中只能分四个分区,无法满足需求,无法满足需求,因此设计了一种扩展分区格式。因此设计了一种扩展分区格式。基本上说,基本上说,扩展分区的扩展分区的信息是以链表形式存放的,信息是以链表形式存放的,但也有一些特别的地方。但也有一些特别的地方。首先,首先,主分区表中要主分区表中要有一个基本扩展分区项,有一个基本扩展分区项,所有扩展分区
20、都隶属于它,所有扩展分区都隶属于它,也就是说其他所有扩展分也就是说其他所有扩展分区的空间都必须包括在这区的空间都必须包括在这个基本扩展分区中。个基本扩展分区中。对于对于DOS/WindowsDOS/Windows来说,来说,扩展分区的类型为扩展分区的类型为 0 0 x05x05或或 0 0 x0F(LBAx0F(LBA模式模式)。除基本扩展分区以外的除基本扩展分区以外的其他所有扩展分区则以链其他所有扩展分区则以链表的形式级联存放,表的形式级联存放,后一后一个扩展分区的数据项记录个扩展分区的数据项记录在前一个扩展分区的分区在前一个扩展分区的分区表中,表中,但两个扩展分区的但两个扩展分区的空间并不
21、重叠。空间并不重叠。扩展分区类似于一个完整的硬盘,扩展分区类似于一个完整的硬盘,必须进一步分区必须进一步分区才能使用。才能使用。但每个扩展分区中只能存在一个其他分区。但每个扩展分区中只能存在一个其他分区。此分区在此分区在 DOS/WindowsDOS/Windows环境中即为逻辑盘。因此每一环境中即为逻辑盘。因此每一个扩展分区的分区表个扩展分区的分区表(同样存储在扩展分区的第一个扇区同样存储在扩展分区的第一个扇区中中)中最多只能有两个分区数据项中最多只能有两个分区数据项(包括下一个扩展分区的包括下一个扩展分区的数据项数据项)。以上所有扩展分区表中的第二个分区项以上所有扩展分区表中的第二个分区项
22、(指向下一个指向下一个扩展分区扩展分区)的相对扇区地址均相对于主扩展分区,的相对扇区地址均相对于主扩展分区,而不是而不是前一个扩展分区。前一个扩展分区。2.2 Linux 的引导过程 不同计算机平台引导过程的区别主要在于第一阶段的不同计算机平台引导过程的区别主要在于第一阶段的引导过程。对引导过程。对 PCPC机上的机上的 LinuxLinux系统而言,计算机(即系统而言,计算机(即 BIOSBIOS)负责从软盘或硬盘的第一个扇区(即引导扇区)负责从软盘或硬盘的第一个扇区(即引导扇区)中读取引导装载器,然后,由引导装载器从磁盘或其他位中读取引导装载器,然后,由引导装载器从磁盘或其他位置装入操作系
23、统。从软盘引导时,置装入操作系统。从软盘引导时,BIOSBIOS读取并运行引导读取并运行引导扇区中的代码。引导扇区中的代码读取软盘前几百个块扇区中的代码。引导扇区中的代码读取软盘前几百个块(依赖于实际的内核大小),然后将这些代码放置在预先(依赖于实际的内核大小),然后将这些代码放置在预先定义好的内存位置。利用软盘引导定义好的内存位置。利用软盘引导 LinuxLinux时,没有文件时,没有文件系统,内核处于连续的扇区中,这样安排可简化引导过程。系统,内核处于连续的扇区中,这样安排可简化引导过程。但是,如果利用但是,如果利用LILOLILO(LInuxLInux LOaderLOader)也可从包
24、含文件也可从包含文件系统的软盘上引导系统的软盘上引导 LinuxLinux。从硬盘引导时,由于硬盘是可分区的,因此引导过程从硬盘引导时,由于硬盘是可分区的,因此引导过程比软盘复杂一些。比软盘复杂一些。BIOSBIOS首先读取并运行硬盘主引导记录首先读取并运行硬盘主引导记录中的代码,这些代码首先检验主引导记录中的分区表,寻中的代码,这些代码首先检验主引导记录中的分区表,寻找到活动分区(即标志为可引导分区的分区),然后读取找到活动分区(即标志为可引导分区的分区),然后读取并运行活动分区之引导扇区中的代码。活动分区引导扇区并运行活动分区之引导扇区中的代码。活动分区引导扇区的作用和软盘引导扇区的作用一
25、样:从分区中读取内核映的作用和软盘引导扇区的作用一样:从分区中读取内核映象并启动内核。和软盘引导不同的是,内核映象保存在硬象并启动内核。和软盘引导不同的是,内核映象保存在硬盘分区文件系统中,而不象软盘那样保存在后续的连续扇盘分区文件系统中,而不象软盘那样保存在后续的连续扇区中,因此,硬盘引导扇区中的代码还需要定位内核映象区中,因此,硬盘引导扇区中的代码还需要定位内核映象在文件系统中的位置,然后装载内核并启动内核。在文件系统中的位置,然后装载内核并启动内核。LinuxLinux系统的常见引导方式有两种:系统的常见引导方式有两种:LILOLILO引导和引导和LoadinLoadin引导;其中引导;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 Linux操作系统的启动 Linux 操作系统 启动
限制150内