简述操作系统的引导过程_第1页
简述操作系统的引导过程_第2页
简述操作系统的引导过程_第3页
简述操作系统的引导过程_第4页
简述操作系统的引导过程_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简述操作系统的引导过程'['[-101170641019兰天摘要:所谓操作系统的引导过程是将存放在硬盘上的静态的操作系统装载到内存中,并开始执行操作系统的过程。操作系统的整个引导过程应该从计算机上电开始,分为以下几个大步骤:上电、自检、加载引导扇区、加载操作系统、运行操作系统。关键字:引导、运行、结构、参数1、引言(introduction)操作系统是如何引导的呢?当系统加电自检通过以后,硬盘被复位,BIOS将根据用户指定的启动顺序从软盘、硬盘或光驱进行启动。以从硬盘启动为例,系统BIOS将主引导记录读入内存。然后,将控制权交给主引导程序,然后检查分区表的状态,寻找活动的分区。最后,由主引导程序将控制权交给活动分区的引导记录,由引导记录加载操作系统。2、相关研究:一、引导过程的原理与过程(一) 上电上电是指按下计算机的电源按钮让计算机开始加电运行。这个过程与计算机的硬件电路关系非常密切,因为计算机加电的第一个状态是由硬件电路决定的,加电后第一个状态主要由计算机处理器(CPU)生产商决定,对于x86系列的CPU,—加电就将指令寄存器设置为:Offff:OOOO,表示CPU开始从Offff:OOOO这个内存中取出一条指令执行,通常在0ffff:0000处是一条地址转跳指令,转向BIOS的入口。由于BIOS是固化在内存中的,所以,一加电后,CPU可以直接读取BIOS中的指令。(二) 自检进入BIOS后,BIOS的主要功能包括以下两项:1。 功能是进行计算机自检2。 加载引导扇区。BIOS进行自检的工作主要是检查计算机是否出现异常,是否可以继续运行下去,这一部分与引导过程本身关系不大,它只是引导过程中的一个步骤,BIOS中与引导关系密切的是上面提到的BIOS的第二项功能,即加载引导扇区,这一项工作的主要内容是把磁盘的引导扇区的内容加载到内存中来,并且转跳到引导程序的第一条指令。引导详细情况BIOS将所检查磁盘的第一个扇区(512B)载入内存,放在0x0000:0x7c00处,如果个扇区的最后两个字节是“55AA”,那么这就是一个引导扇区,这个磁盘也就是一块可引导盘。通常这个大小为512B的程序就称为引导程序(boot)。如果最后两个字节不是“55AA”,那么BIOS就检查下一个磁盘驱动器。对于DOS和WIN9X等操作系统而言,分区引导记录将负责读取并执行IO.sys(Windows9x的IO.sys)。1、系统引导过程简介系统引导过程主要由以下几个步骤组成(以硬盘启动为例)(1)、开机;、BIOS加电自检(POST---PowerOnSelfTest)内存地址为Offf:OOOO;、将硬盘第一个扇区(0头0道1扇区,也就是BootSector)读入内存地址0000:7c00处;、检查(W0RD)0000:7dfe是否等于0xaa55.若不等于则转去尝试其他介质;如果没有其他启动介质,则显示”NoROMBASIC”,然后死机;、跳转到0000:7c00处执行MBR中的程序;、MBR先将自己复制到0000:0600处,然后继续执行;、在主分区表中搜索标志为活动的分区.如果发现没有活动分区或者不止一个活动分区,则停止;、将活动分区的第一个扇区读入内存地址0000:7c00处;、检查(W0RD)0000:7dfe是否等于0xaa55,若不等于则显示“MissingOperatingSystem”,然后停止,或尝试软盘启动;、跳转到0000:7c00处继续执行特定系统的启动程序;(11)、启动系统.以上步骤中(2),(3),(4),(5)步由BIOS的引导程序完成;⑹,(7),(8),(9),(10)步由MBR中的引导程序完成.一般多系统引导程序(如SmartBootManager,BootStar,PQBoot等)都是将标准主引导记录替换成自己的引导程序,在运行系统启动程序之前让用户选择想要启动的分区.而某些系统自带的多系统引导程序(如LILO,NTLoader等)则可以将自己的引导程序放在系统所处分区的第一个扇区中,在Linux中即为两个扇区的SuperBlock.注:以上步骤中使用的是标准的MBR,多系统引导程序的引导过程与此不同.操作系统的更新是相当快速的,从DOS到WIN32、95、98、ME、XP。虽然说系统一直在不断进步发展着,但其实每个操作系统都有各自的发展空间,也各有其的优势和劣势。比如WIN98和WINME,它们的普遍特点是多媒体性能佳,支持软硬件多,但缺点是系统不够稳定;而诸如WINNT、WIN2000等系统,则有比较好的稳定性和操作性,但对系统要求比较高,不适合一般的初级使用。这时候,很多朋友都会有"鱼和熊掌不可兼得"的感叹。那么,能否将各种操作系统都安装在一台计算机上,并根据自己的需要任意选择呢?当然可以呀,这就是我们接下去要讲的多系统共存。要让多系统共存,首先要了解一些基本的原理。在上文的分区篇中,我们大概的谈了一下,这里再做一番比较深入的剖析:首先要初始化一些重要的系统数据,然后就会出现我们非常熟悉的蓝天白云。这时候,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作。如果系统中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码。这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本代码。对于WINNT/2000来说,则由是NTLDR这个程序负责将其装入内存,或者让用户选择非WINNT/2000操作系统。引导装入程序和多重引导都由一个具有隐含属性的初始化文件boot.ini控制。在boot.ini中包含有控制计算机可用的操作系统的设置,引导的缺省操作系统以及应当等待多少时间等信息。那么,我们的机会在哪里呢?俗话说的好,见缝插针。从计算机引导过程的描述中大家可以发现,我们可以人为的加一干预的地方只有两处,一是设置物理盘的引导次序,二是修改主引导程序的分区表。(1)多硬盘的多系统共存:如果你采用的是多硬盘的计算机,而且每块硬盘都安装有不同操作系统时,建议你通过在CMOS中指定硬盘的启动次序,实现多操作系统的共存。由于操作系统之间互不影响,所以这种方法完全不受兼容性等其他因素的影响。(2)单硬盘的系统共存:而如果你只有一块硬盘,并也想在上面安装多个操作系统而相互不受影响,你则必须采用修改主引导程序和分区表的方法来实现。一般有两种方法。一是修改主引导记录,在主引导记录的最后用JMP指令跳到自己的代码上来,从而控制计算机的引导过程;另外一种方法是修改主分区第一个扇区的引导代码,以实现多系统的共存。注意事项:接下去,我们将教大家如何进行多系统共存的设置。不过,在开讲之前,有一些基本的准则还是要告诉大家的:1.在计算机上安装另外一个操作系统之前,最好能先制作一张启动盘以备意外之需。2.每个操作系统必须安装在一个独立的磁盘驱动器或者分区上。如果你要在DOS、WIN95和WIN2000之间进行多重启动配置,应该最后安装WIN2000。否则,启动WIN2000所需要的一些重要文件可能会被覆盖。对于WIN98和2000之间的双重启动配置,安装操作系统不必按照特定的顺序,对于在WIN2000和LINUX之间的双重启动配置,应当先安装WIN2000,并为LINUX保留所需要的磁盘分区。要进行双重启动配置,应该使用FAT文件系统。尽管支持在双重启动中使用NTFS,但这样会提高文件系统的复杂程度。不要在压缩盘上安装WIN2000,除非该压缩盘是由WIN2000完成的;如果计划建立WIN95或WIN98的双重启动,则不必要对已经压缩的盘进行解压缩。在设置了双重启动的计算机上,如果希望应用程序在两种操作系统上都可以运行,必须在两种操作系统中都进行安装,无法在操作系统之间共享应用程序。二、硬盘结构及参数3D参数(DiskGeometry):CHS(Cylinder/Head/Sector)C-Cylinder柱面数表示硬盘每面盘片上有几条磁道,最大为1024(用10个二进制位存储);H-Head磁头数表示硬盘总共有几个磁头,也就是几面盘片,最大为256(用8个二进制位存储);S-Sector扇区数表示每条磁道上有几个扇区,最大为63(用6个二进制位存储).1、引导扇区BootSector组成BootSector也就是硬盘的第一个扇区,它由MBR(MasterBootRecord),DPT(DiskPartitionTable)和BootRecordID三部分组成.MBR又称为主引导记录,占用BootSector的前446个字节(0〜0xlBD),存放系统主引导程序(它负责从活动分区中装载并且运行系统引导程序).DPT即主分区表占用64个字节(OxlBE〜OxlFD),记录磁盘的基本分区信息.主分区表分为四个分区项,每项16个字节,分别记录每个主分区的信息(因此最多可以有四个主分区).BootRecordID即引导区标记占用两个字节(OxlFE〜OxlFF),对于合法引导区,它等于0xaa55,这是判别引导区是否合法的标志).BootSecor具体结构如图:2、分区表结构简介分区表由四个分区项构成,每一项结构如下:BYTEState:分区状态,0=未激活,0x80=激活(注意此项);BYTEStartHead:分区起始磁头号;WORDStartSC:分区起始扇区和柱面号,底字节的底6位为扇区号,高2位为柱面号的第9,10位,高字节为柱面号的低8位;BYTEType:分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用;BYTEEndHead:分区结束磁头号;WORDEndSC:分区结束扇区和柱面号,定义同前;DWORDRelative:在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址);DWORDSectors:分区大小(总扇区数).在DOS或Windows系统下,基本分区必须以柱面为单位划分(Sectors*Heads个扇区),如对于CHS为764/256/63的硬盘,分区的最小尺寸为256*63*512/1048576=7.875MB.由于硬盘的第一个扇区已经被引导扇区占用,所以一般来说,硬盘的第一个磁道(0头0道)的其余62个扇区是不会被分区占用的.某些分区软件甚至将第一个柱面全部空出来.三大特点1。 它的大小是512B,不能多一字节也不能少一字节,因为BIOS只读512B到内存中去。2。 它的结尾两字节必须是“55AA”,这是引导扇区的标志。3。 它总是放在磁盘的第一个扇区上(0磁头,0磁道,1扇区),因为BIOS只读第一个扇区。参考文献:赵炯:《linux内核完全注释》男,1963年10月5日出生,江苏苏州人,汉族。同济大学机械工程学院机械电子教研室副教授,从事教学和科研工作。现在主要为硕士和博士研究生开设《计算机通信技术》、《计算机控制技术》、《现代电子学》等课程。同时参与国家自然科学基金项目“系统芯片在线测试与容错技术研究”的工作。为国际计算机仿真协会、上海市通信学会会员。主要研究方向为计算机网络协议分析与性能评估、操作系统体系结构和自动化系统中的智能控制技术。至今已发表文章几十篇,出版书籍三本。2009-5,26(9),pp.211-214于渊:《自己动手写操作系统》 本书在详细分析操作系统原理的基础上,用丰富的实例代码,一步一步地指导读者用C语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。全书共分7章。2008-8,20(8),1007-1010卢军:《linux内核分析与操作系统设计》本书巧妙地结合了Linux内核源代码分析、操作系统设计原理和操作系统设计实践三个方面的内容,在对Linux0.01内核源代码进行深入分析的基础上,讲解了操作系统设计的基本原理和方法技巧。同时,还向读者提供了大量的操作系统实践方面的实例。通过对本书的学习,读者可以对操作系统的内核有深入的了解,掌握基本的硬件操作和控制能力,具有对操作系统的理解和实践能力本书中的所有例子,都可以使用GNU编译器来编译,所有的工具软件也都可以应用到GNU的自由软件中。本书内窜丰富、通俗易懂、可操作性强,既可作为大学高年级本科和研究生学习操作系统设计的辅导教材,也可作为计算机爱好者学习和分析Linux内核的教材。同时,也是软件工程师进行各类操作系统设计的最佳参考用书。2004-10,1(3):736-744AndrewSTanenbaum:《操作系统设计与实现》多数操作系统的教材只重理论而轻实践,本书力图实现这两者之间的平衡。本书首先详

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论