电脑操作系统的引导过程概述.doc_第1页
电脑操作系统的引导过程概述.doc_第2页
电脑操作系统的引导过程概述.doc_第3页
电脑操作系统的引导过程概述.doc_第4页
电脑操作系统的引导过程概述.doc_第5页
全文预览已结束

下载本文档

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

文档简介

电脑操作系统的引导过程概述操作系统的更新是相当快速的,从DOS到WIN32、95、98、ME、XP。虽然说系统一直在不断进步发展着,但其实每个操作系统都有各自的发展空间,也各有其的优势和劣势。比如WIN98和WIN ME,它们的普遍特点是多媒体性能佳,支持软硬件多,但缺点是系统不够稳定;而诸如WINNT、WIN2000等系统,则有比较好的稳定性和操作性,但对系统要求比较高,不适合一般的初级使用。这时候,很多朋友都会有鱼和熊掌不可兼得的感叹。那么,能否将各种操作系统都安装在一台计算机上,并根据自己的需要任意选择呢?当然可以呀,这就是我们接下去要讲的多系统共存。要让多系统共存,首先要了解一些基本的原理。在上文的分区篇中,我们大概的谈了一下,这里再做一番比较深入的剖析:操作系统是如何引导的呢?当系统加电自检通过以后,硬盘被复位,BIOS将根据用户指定的启动顺序从软盘、硬盘或光驱进行启动。以从硬盘启动为例,系统 BIOS将主引导记录读入内存。然后,将控制权交给主引导程序,然后检查分区表的状态,寻找活动的分区。最后,由主引导程序将控制权交给活动分区的引导记录,由引导记录加载操作系统。对于DOS和WIN9X等操作系统而言,分区引导记录将负责读取并执行IO.sys(Windows9x的IO.sys)。首先要初始化一些重要的系统数据,然后就会出现我们非常熟悉的蓝天白云。这时候,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作。如果系统中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码。这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本代码。对于WINNT/2000来说,则由是NTLDR这个程序负责将其装入内存,或者让用户选择非WINNT/2000操作系统。引导装入程序和多重引导都由一个具有隐含属性的初始化文件boot.ini控制。在boot.ini中包含有控制计算机可用的操作系统的设置,引导的缺省操作系统以及应当等待多少时间等信息。那么,我们的机会在哪里呢?俗话说的好,见缝插针。从计算机引导过程的描述中大家可以发现,我们可以人为的加一干预的地方只有两处,一是设置物理盘的引导次序,二是修改主引导程序的分区表。(1)多硬盘的多系统共存:如果你采用的是多硬盘的计算机,而且每块硬盘都安装有不同操作系统时,建议你通过在CMOS中指定硬盘的启动次序,实现多操作系统的共存。由于操作系统之间互不影响,所以这种方法完全不受兼容性等其他因素的影响。(2)单硬盘的系统共存:而如果你只有一块硬盘,并也想在上面安装多个操作系统而相互不受影响,你则必须采用修改主引导程序和分区表的方法来实现。一般有两种方法。一是修改主引导记录,在主引导记录的最后用JMP指令跳到自己的代码上来,从而控制计算机的引导过程;另外一种方法是修改主分区第一个扇区的引导代码,以实现多系统的共存。注意事项:接下去,我们将教大家如何进行多系统共存的设置。不过,在开讲之前,有一些基本的准则还是要告诉大家的:1在计算机上安装另外一个操作系统之前,最好能先制作一张启动盘以备意外之需。2每个操作系统必须安装在一个独立的磁盘驱动器或者分区上。3如果你要在DOS、WIN95和WIN 2000之间进行多重启动配置,应该最后安装WIN 2000。否则,启动WIN 2000所需要的一些重要文件可能会被覆盖。对于WIN 98和2000之间的双重启动配置,安装操作系统不必按照特定的顺序,对于在WIN 2000和LINUX之间的双重启动配置,应当先安装WIN 2000,并为LINUX保留所需要的磁盘分区。4要进行双重启动配置,应该使用FAT文件系统。尽管支持在双重启动中使用NTFS,但这样会提高文件系统的复杂程度。5不要在压缩盘上安装WIN 2000,除非该压缩盘是由WIN 2000完成的;如果计划建立WIN 95或WIN 98的双重启动,则不必要对已经压缩的盘进行解压缩。6在设置了双重启动的计算机上,如果希望应用程序在两种操作系统上都可以运行,必须在两种操作系统中都进行安装,无法在操作系统之间共享应用程序。一、系统引导过程简介系统引导过程主要由以下几个步骤组成(以硬盘启动为例)1、 开机;2、 BIOS加电自检(POST-Power On Self Test),内存地址为0fff: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,多系统引导程序的引导过程与此不同.二、硬盘结构及参数3D参数(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder柱面数表示硬盘每面盘片上有几条磁道,最大为1024(用10个二进制位存储);H-Head磁头数表示硬盘总共有几个磁头,也就是几面盘片,最大为256(用8个二进制位存储);S-Sector扇区数表示每条磁道上有几个扇区,最大为63(用6个二进制位存储).1、引导扇区Boot Sector组成Boot Sector也就是硬盘的第一个扇区,它由MBR(Master Boot Record), DPT(Disk Partition Table) 和 Boot Record ID三部分组成. MBR又称为主引导记录,占用Boot Sector的前446个字节(00x1BD),存放系统主引导程序(它负责从活动分区中装载并且运行系统引导程序). DPT即主分区表占用64个字节(0x1BE0x1FD),记录磁盘的基本分区信息.主分区表分为四个分区项,每项16个字节,分别记录每个主分区的信息(因此最多可以有四个主分区). Boot Record ID即引导区标记占用两个字节(0x1FE0x1FF),对于合法引导区,它等于0xaa55,这是判别引导区是否合法的标志).Boot Secor具体结构如图:2、分区表结构简介分区表由四个分区项构成,每一项结构如下:BYTE State:分区状态,0=未激活,0x80=激活(注意此项);BYTE StartHead:分区起始磁头号;WORD StartSC:分区起始扇区和柱面号,底字节的底6位为扇区号,高2位为柱面号的第9,10位,高字节为柱面号的低8位;BYTE Type:分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用;BYTE EndHead:分区结束磁头号;WORD EndSC:分区结束扇区和柱面号,定义同前;DWORD Relative:在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址);DWORD Sectors:分区大小(总扇区数).在DOS或Windows系统下,基本分区必须以柱面为单位划分(Sectors*Heads个扇区),如对于CHS为764/256/63的硬盘,分区的最小尺寸为256*63*512/1048576=7.875MB.由于硬盘的第一个扇区已经被引导扇区占用,所以一般来说,硬盘的第一个磁道(0头0道)的其余62个扇区是不会被分区占用的.某些分区软件甚至将第一个柱面全部空出来.windows vista/7 引导过程概述Window 7 的核心版本号是 NT6.1 ,和 vista NT6.0 还是属于一个系列的,因此采用了一样的启动管理机制。对于双系统来说,正如 98 和 xp 共存的双系统一样, xp 和 7 共存的算系统安装也是要有先后顺序的。因为 windows 的启动管理属于向下兼容, 7 的可以兼容 xp ,而 xp 不可以兼容 7. 所以要先装 xp 再装 7 才不会出问题。先解释一下一些 windows 7 中跟引导有关系的文件和关键位置Mbr&dpt : 硬盘主引导记录和分区表(分区表中包括四部分用来记载四个主分区的物理位置),位于硬盘的第一个扇区,不属于任何系统分区。 Bootmgr : windows nt6 系列的引导管理器,位于主激活分区内,属于系统隐藏文件 Boot.bak : boot.ini 的备份,双系统的时候会存在。 Bootsect.bak: bootsect.bak 是该活动分区的前 16 个扇区的备份文件,所以它的大小是 8KB, 就是 pbr 的备份。 PBR : 分区引导代码 /boot/ 语言 /bootmgr.exe.mui: 在主分区 boot 目录下包括 24 个语言的 BOOTMGR.EXE.MUI ,用来和 bootmgr 组合形成启动菜单 /boot/bcd: 相当于 xp 时代的 boot.ini ,不过 bcd 是基于数据库的,不是基于文本的,也是为了安全性考虑吧。微软专门提供了一个修改 bcd 的程序 bcdeit 来修改相应的参数 /boot/bcd.log&bcd.log1&bcd.log2 : log 文件,具体干嘛的未知。 /boot/bootstat.dat : 引导时候用来记录引导状态的数据文件 /boot/ memtest.exe :内存测试工具下面来解释一下 window 7 的启动原理。(正常流程 , 因为还有很多非正常的情况启动过程有些区别,就不再这里赘述了)首先加电之后是 bios 程序启动, bios 自检完成之后,将 mbr 的代码读入内存,管理权交给 mbr , mbr 再读取 dpt ,从 dpt 找出硬盘的所有分区哪一个是激活的主分区。到这里为止,所以系统都是一样的。下面就有区别了。 Dpt 读完找到主分区之后然后找到这个主分区的 pbr , pbr 位于激活主分区的第一个扇区。安装不同操作系统的时候 pbr 是会被改变的, xp 的 pbr 写死的代码是去找 ntldr 。而 vista 和 7 的 pbr 里写进的就是去找 bootmgr 。这个时候显示器上还没有显示引导管理器的界面。 Bootmgr 被找到之后管理权就交到了 bootmgr 。 Boot Manager 首先从 BCD 中读取 Boot Manager 菜单的语言版本信息,然后再调用 BOOTMGR 与相应语言的 BOOTMGR.EXE.MUI 组成相应语言的启动菜单,之后才会在显示器上显示引导管理器,也就是选择多操作系统的那个文字界面。最后,当你选择了相应的操作系统,这里当然是 7 (如果选择 xp, 会转入 xp 的启动流程,找到 xp 的 ntldr 然后启动), bootmgr 就去寻找系统分区(系统分区和主分区的概念不是一样的哦) windows/system32 下的 winload.exe 加载操作系统内核。剩下的事就是启动 windows7 了。Windows2000/2003/XP系统开机后执行文件的顺序如何?第一步: 首先计算机通电进行自检,并由 BIOS (即基本输入输出系统)完成基本硬件配置,然后读取硬盘的MBR(主引导记录)检查硬盘分区表以确定引导分区,并将引导分区上的操作系统引导扇区调入内存中执行,此处即执行NTLDR(操作系统加载器)文件。 Windows XP支持多重启动。它在安装时会首先将已存在的其它操作系统引导扇区保存为BOOTSECT.DOS文件(位于活动分区根目录下),并修改系统引导扇区,以便系统启动时加载NTLDR文件,从而达到多重启动的目的。而Windows98则不具备这个功能,因此如果先装好Windows XP后再装Windows98会破坏掉Windows XP的引导记录,导致XP不能启动。 第二步: 进行出始化,NTLDR会把处理器从实模式转换为32位保护模式。第三步: 读取BOOT.INI文件。该文件位于活动分区根目录下,它的作用是使系统在启动过程中出现选择菜单,由用户选择希望启动的操作系统。如果选择启动Windows XP,NTLDR会继续引导进行以下过程;如果选择为非Windows XP系统,NTLDR则会读取系统引导扇区副本BOTSECT.DOS转入启动相应系统。BOOT LOADER即操作系统加载器,指定系统选择菜单默认等待时间和默认引导的操作系统。可手工修改或在控制面板中修改,为了保险起见,建议在控制面板中修改。依次选择控制面板-系统-高级-启动和故障恢复,即可更改相关设置。(在WindowsXP中还有另一种方法,即运行msconfig(系统配置实用程序)。 OPERATING SYSTEMS段指定操作系统列表,由双引号括起来的部分就是列表所显示的内容,可任意修改,使其更加个性化。 形如MULTI(0)DISK(0)RDISK(0)PARTITION(1)格式的语句被称为ARC路径,它的格式为:MULTI()指定磁盘控制器(若为SCSI控制器,则此处应替换为SCSI();DISK()指定SCSI设备编号(对于MULTI该处值始终为0);RDISK()指定IDE设备编号(对于SCSI,此处被忽略);PARTITION()指定分区编号。除分区编号由1开始外,其余编号均从0开始。 参数/FASTDETECT表示禁用串行鼠标检测,是系统默认值。还有几个常见参数:MAXMEM指定Windows XP可用内存容量;BASEVIDEO使用标准VGA显示驱动程序;NOGUIBOOT启动过程中不显示图形屏幕;SOS加载设备驱动程序时显示其名称。 在操作系

温馨提示

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

最新文档

评论

0/150

提交评论