本发明涉及个人计算机系统,更准确地说涉及用于在个人计算机系统大容量存储器的保护分区中保护并存储系统实用程序的方法和装置。 本专利申请是共同未决的一组申请之一,这组申请都和一个完整的个人计算机系统有关但各个对这种计算机系统中体现的不同的发明概念有相应的权利要求。这些相关专利申请是同一日期提交即1989年8月25日提交的,在此特意结合作为参考,这些相关申请更具体地说明如下:
1.申请号07/399,631,标题为“从个人计算机系统磁盘装载BIOS的装置和方法”,其代理人案卷号为BC9-89-024,发明人为Bealkowski等人;
2.申请号07/398,865,题目为“个人计算机系统的初始BIOS装载”,代理人案卷号为BC-89-623,发明人为Bealkowski等人;
3.申请号07/398,860,题目为“减少个人计算机系统对BIOS存储器需求的装置和方法”,代理人案卷号为BC9-89-025,发明人为Bealkowski等人。
4.申请号07/398,820,题目为“防止非法存取个人计算机系统BIOS的装置和方法”,代理人案卷号为BC9-89-026,发明人为Bealkowski等人。
一般的个人计算机系统及具体的IBM个人计算机已广泛用于给今日现代社会许多方面提供计算机机能。个人计算机系统通常可限定为台式,立式和便携式微计算机,该微计算机由带有单个系统处理器的系统部件,显示监视器、键盘、一个或多个磁盘驱动器、硬磁盘存储器和一个可选打印机组成。这些系统的区别特征之一是使用母板或系统板将这些元件电气地连接在一起。最初设计这些系统是为赋与单个用户以独立的计算能力以及具有个人或小型企业买得起的便宜价格。这种个人计算机系统地例子是IBM PC AT和IBM PS/II 25、30、50、50Z、55SX、60、65SX、70及80型。
这些系统可分类为两种一般系列。第一系列通常称为Ⅰ型系列,使用由IBM PC AT和其它“IBM兼容”机所示例的总线结构。第二系列称为Ⅱ型系列,使用由IBM PS/II 50型到80型示例的IBM微通道总线结构。
自Ⅰ型系列的最早的个人计算机系统,例如IBM PC,开始就认识到软件兼容性最为重要。为实现该目标,在硬件和软件之间建立了也称作“固件”的系统驻留代码的隔离层。该固件提供了用户应用程序/操作系统与硬设备之间的操作接口以及让用户无须关心硬设备特性。最终发展成为基本输入/输出系统(BIOS)的代码使得在让新设备加入该系统的同时,将应用程序与硬件的特定情况隔离开来。BIOS的重要性曾经是极为明显的,因为它使设备驱动程序不再依赖于特定设备硬件的特性,而是将设备的中间接口提供给设备驱动程序。由于BIOS是系统一个整体部分并控制着进出系统处理器数据的运动,它驻留系统板或由存放在只读存储器(ROM)中提供给用户。例如,最初的IBM PC的BIOS占据平面板上常驻8K ROM中。
当引进个人计算机系列的新的型号,必须修改BIOS并将BIOS扩展以包括新的硬件和I/O设备。如所预料的那样,BIOS的存贮规模开始增加。例如,由于引进IBM PC AT,BIOS增大至需32K字节ROM。
今天,随着新技术的发展,Ⅱ型系列的个人计算机系统变得更为复杂并更多地被消费者所利用。由于技术在迅速改变,以及新的I/O设置被加到个人计算机系统,所以BIOS的修改成为个人计算机开发周期中重要问题。
例如,随着带微通道结构的IBM PS/2的引入,开发了非常新的新型BIOS,称为高级BIOS或ABIOS。然而,为保持软件兼容性,Ⅰ型系列的BIOS必须包括在Ⅱ型系列中。Ⅰ系列BIOS称为兼容BIOS或CBIOS。然而,如前面就IBM PC AT所述,在底板平面上只有32K字字的ROM。幸而,该系统可扩展为96K字节的ROM。但由于系统局限,这便成为对BIOS可用的最大容量。幸好即使加上ABIOS,ABIOS和CBIOS仍可挤入96K字节的R OM。然而,96K ROM区中只有很小的部分可用于扩展。随着将来I/O设备的增加,CBIOS和ABIOS最终会用尽ROM空间。这样,新的I/O技术便不能容易地加入CBIOS和ABIOS中。
由于这些问题,加上希望在开发周期中尽可能迟对Ⅱ系列BIOS进行修改,有必要使BIOS的部分从ROM卸载。这可通过将BIOS部分存储在例如硬磁盘的大容量存储装置中来实现。由于磁盘提供写和读功能,所以可灵活修改磁盘上实际BIOS代码。该磁盘尽管提供存储BIOS代码的快速有效途径,但也大大增加BIOS代码被搞乱的可能性。由于BIOS是操作系统一整体部分,所以出错的BIOS是操作系统一整体部分,所以出错的BIOS会导致毁灭性结果并在很多情况下导致完全失效和系统不可操作。这样,非常明显防止对硬磁盘上BIOS代码的非法修改是非常合乎需要的,这就是美国申请07/398,820(于1989年8月25日提交)的主题。
除了将BIOS存储在大容量存储器上,亦非常需要将一般包含在系统参考磁盘上的系统实用程序存储起来。取消系统磁盘不但降低了系统,价格,而且提供了更为用户友好的环境。
此时简略地说明先前存储在参考磁盘上的系统实用程序的目的是适当的。由于引进IBM PS/2微信道,系统可从I/O适配卡及系统板上去除开关和跨接器。微通道结构以可编程寄存器替换了它们。需要若干构造这些可编程寄存器或可编程选择开关(POS)寄存器。此外,另一些改进系统可用特性的实用程序和系统诊断程序一起随系统装在该系统参考磁盘中提供给用户。
在首次使用之前,每个微通道系统需要初始化其POS寄存器。例如,如用新的I/O卡引导该系统,即I/O卡的槽变化,便产生一配置错,并且该系统引导过程中止。然后提示用户装入系统参考磁盘并按下F1键。然后便可从系统参考磁盘引导“配置设置实用程序”以对该系统配置。该配置设置实用程序会提示用户做所要求进行的动作。如果适当I/O卡的描述文件装在该系统参考磁盘上,配置设置实用程序将在非挥发存储器上产生正确的POS或配置数据。该描述文件包含配置信息以使该卡和系统沟通。
尽管该过程相当容易执行,但系统参考磁盘必须在手头或方便地存放在附近。曾有这种情形,过了一段时间而将系统参考磁盘放错位置。所以将系统参考磁盘的一个副本和BIOS一起存储在大容量存储器以改进系统可用性是非常合乎要求的。
为解决上述所提到的问题,已产生本发明。作为其目的之一,本发明有一个用于将该系统参考磁盘的映象存储在个人计算机系统的直接存取存储器上的装置。
本发明另一目的是通过提供给每一系统其私有的系统参考磁盘考贝和配置文件来改进这些系统的可用性。
广义地说,本发明的个人计算机系统包含系统处理器,随机存取存储器,只读存储器以及至少一个直接存取存储器。耦合在系统处理器和直接存取存储器之间的直接存取存储器控制器包括用于保护存储器区域的装置。存储器的受保护区包括主引导记录、BIOS映象和系统参考磁盘映象。BIOS映象包括称为自检电源的段(POST)。POST用于测试和初始化系统。一旦检测到任何配置错误,来自系统参考磁盘映象的系统实用程序,例如配置设置程序,诊断程序以及实用程序可以被自动地起动。
具体而言,响应引导系统的复位信号,保护装置允许存取被保护区以使主引导记录装入随机存取存储器。运行时,主引导记录进而将BIOS映象装入随机存取存储器。BIOS,现位于随机存取存储器中而被执行并引导操作系统开始系统操作,然后BIOS产生第二信号,该第二信号起动保护装置以防止对包含主引导记录和BIOS映象的磁盘区的存取。如果BIOS(POST)检测到一错误,BIOS产生第三信号中止保护装置然后试着引导可引导磁盘驱动器中找到的系统参考磁盘,如果没有系统参考磁盘,那么BIOS引导系统分区中的系统实用程序。
具体而言,只读存储器包括BIOS的第一部分。BIOS的第一部分对系统处理器、直接存取存储器初始化,以及复位保护装置,以便从被保护区直接存取存储器的分区中读出主引导记录到随机存取存储器。该主引导记录包括一数据段和一可执行代码段。数据段包括表示系统硬件和由主引导记录支持的系统配置。第一BIOS部分通过验证来自主引导记录的数据段与包括在第一BIOS部分、表示系统处理器、系统平面和平面I/O配置的第一BIOS部分中的数据是否一致来确认主引导记录和系统硬件是否兼容。
如果主引导启示和系统硬件兼容,则第一BIOS部分引导系统处理器执行主引导记录中可执行代码段。该可执行代码段确定该系统配置未变并从直接存取存储器将剩余BIOS部分装入随机存取存储器。然后该可执行代码段验证剩余BIOS部分的正确性,引导系统处理器开始执行现处于随机存取存储器中的BIOS。在随机存取存储器中执行的BIOS产生用于保护具有剩余BIOS的磁盘分区的第二信号并引导操作系统开始个人计算机系统的操作。为保护BIOS代码完整性,保护载有剩余BIOS的分区以防存取磁盘上的BIOS代码。
然而,如在引导操作系统之前由BIOS检测到错误或用户启动的诊断引导键序列,则如果有系统参考磁盘映象的话则从系统分区引导该映象。此外,如果在磁盘驱动器A检出有系统参考磁盘,该系统参考磁盘会优先于该系统分区的映象而被引导。在这些情形下,BIOS确保在引导程序装入程序开始控制引导记录之前保护装置是不工作的。这样,对防止对磁盘上包含主引导记录的区域的存取,BIOS映象和系统参考磁盘映象这时的保护装置是无效的。BIOS将引导系统参考磁盘映象或其磁盘上区域开放为软件所存取的系统参考磁盘。
结合附图,用以下书面说明解释本发明的最显著方面和其它特点,附图中:
图1说明个人计算机系统的切开视图,示出与多个直接存取存储器相连的系统板;
图2示出图1个人计算机系统方框图;
图3是包括在系统板上的ROM BIOS的存储器映象;
图4是说明用于从直接存取存储器装入BIOS映象的全过程的流程图;
图5说明主引导记录的记录格式;
图6A是说明IBL例程操作的流程图;
图6B是说明从硬磁盘装入BIOS映象的步骤的流程图;
图6C是说明从软盘上装入BIOS映象的步骤的流程图;
图6D是更详细地说明检验主引导记录和系统板/处理器之间兼容性的流程图;
图7是说明主引导记录可执行代码段的操作的详细流程图;
图8是直接存取存储器控制器的框图;
图9是说明磁盘控制器操作以保护存储于磁盘驱动器中的IBL媒介的流程图;
图10是说明保护BIOS映象的方法的流程图;
图11是描述确定何时从直接存取存储器装入系统参考磁盘的过程的流程图;
图12是说明引导程序装载程序从直接存取存储器引导包括系统参考磁盘映象的正确媒介的流程图,
图13是说明对BIOS修改以使系统分区被当作硬磁盘上活动分区加以对待的流程图。
以下是目前认为执行本发明的最好方式的详细说明。该说明不用作限制而只是说明本发明一般原理,而本发明范围是由所附权利要求书所明确限定。
现在参考附图,具体见图1,该图示出了个人计算机系统10的剖视图,该系统具有通过多个I/C槽连接到系统或底板24的多个DASD(直接存取存储器)12-16。电源22以周知方式提供电力给系统10。系统板24包括在计算机指令控制下对信息进行输入、处理和输出的系统处理器。
在使用方面,最初设计个人计算机系统10是将独立计算能力提供给小组的用户或单个用户,并且对个人或小企业购买而言价格低廉。在操作方面,系统处理器在操作系统控制下运行,操作系统例如有IBM的OS/2操作系统或DOS。这种操作系统包括DASD 12-16和操作系统之间的BIOS接口。按功能分为模块的BIOS部分存储在系统板24上的ROM中,下文称之为ROM-BIOS。BIOS提供硬件和操作系统软件之间的接口以允许程序员或用户对他们的机器偏程而无需具体设备方面很深的操作知识。例如,BIOS磁盘模块允许程序员对磁盘驱动器编程而无需磁盘驱动器硬件的深入了解。这样可将多个由不同公司设计并制造的磁盘驱动器用于该系统。这不仅降低了系统10的成本,而且让用户可从多种磁盘驱动器中选择。
在说明上述结构与本发明关系之前,可先回顾一下个人计算机系统10的一般操作的小结。参考图2,示出个人计算机系统10的框图。图2示出系统板24的元件、系统板24到I/O槽18和个人计算机系统其它硬件的连接。位于底板24上的系统处理器26包括由局部总线28连接到存储器控制器30的微处理器,所述存储器控制器30进而被连接到随机存取存储器(RAM)32。尽管可使用任何合适的微处理器,但一种适合的微处理器是Intel公司出售的80386。
尽管下文具体参考图2的系统模块图对本发明作了说明,但从该说明的开头就可以理解,按照本发明的装置和方法可用于别的系统板硬件配置。例如,系统处理器可以是Intel 80286或80486微处理器。
由处理器可存取的是系统板标识号(系统板ID)。对一板而言板ID是唯一的并标识所用板类型。例如,板ID可硬连接以通过系统处理器26的I/O端口或使用开关加以读出。另外,系统处理器26的另一I/O端口可用板上逻辑电路产生复位信号给磁盘控制器。例如,通过软件寻址I/O端口并激活板逻辑产生复位信号的方法来启动复位信号。
局部总线28进而通过总线控制器34连接到板24上的只读存储器(ROM)36。将附加非挥发存储器(MVRAM)58通过进一步连至总线控制器34的串/并端接口40连接到微处理器26。非挥发存储器可以是带后备电池以便当电源从系统撤去时维持信息的CMOS。由于ROM通常装在系统板上,存储在ROM中的型号值和子型号值分别用于标识系统处理器和系统板I/O配置。这样,这些数值可物理上标识处理器和电路板I/O配置。
NVRAM用于存储系统配置数据。即,NVRAM将包含描述系统当前配置的数值。例如,NVRAM包含说明硬盘或软盘容量、显示器类型、存储量、时间、日期等的信息。此外,存储在ROM的型号值和子型号值数据只要当一个特定配置程序例如配置设置程序被执行时使被复制到NVRAM。配置设置程序的作用在NVRAM中存储系统配置的特征数据。这样对正确配置的系统来说,NVRAM的型号值和子型号值数据将分别等于存储于ROM的型号和子型号值。如果这些数值不相等便表示系统配置已修改。参考图6D。结合装载BIOS更详细说明该特性。
参考图2继续讨论,总线控制器34通过I/O板总线43进一步耦合到I/O槽18、串/并接口40和外设控制器42。外设控制器42进一步连接到键盘44,鼠标器46,诊断板47和磁盘控制器64。除了NVRAM 58,串/并接口40进一步连到串行口48和并行口50以输入/输出信息到打印机,硬拷贝设备等。如先有技术所知,局部总线28也可连接到高速缓存控制器52高速缓冲存储器68、协处理器54和DMA控制器56。
系统处理器26控制其内部操作以及与个人计算机系统10的其它单元的接线。例如,示出系统处理器26被连接到小型计算机系统接口(SCSI)I/O卡60,该卡进一步连接到诸如硬磁盘驱动器62的DASD。可以理解非SCSI的磁盘驱动器也可用作本发明的硬磁盘。除了硬磁盘62,系统处理器26可与控制软磁盘机66的软磁盘控制器64接口。至于术语,也可理解术语“硬文件”是指硬磁盘驱动器62而术语“软磁盘”是指软磁盘机66。
在本发明之前,ROM 36能够包括所有BIOS代码,该BIOS代码用作操作系统与硬件设备的界面。然而,按照本发明的一个方面,使ROM36只存贮BIOS的一部分。在由系统处理器26执行时,该部分从硬磁盘62或软盘66输入BIOS的第二或剩余部分,下文也称为BIOS映象。该BIOS映象覆盖第一BIOS部分并成为常驻例如RAM 32的主存储器的系统整体之一部分。一般可参考图3-4说明ROM 36中存储的BIOS(ROM-BIOS)的第一部分,更详细的描述可参考图6A-D。BIOS的第二部分(BIOS映象)可参考图5加以说明,而BIOS映象的装载参考图7。从DASD装载BIOS映象的另一好处是直接将BIOS装入系统处理器的RAM 32中的能力。由于存取RAM比存取ROM要快得多,从而可获得计算机系统处理速度的显著改进。另一额外优点通过将系统实用程序存贮在DASD可获得。在需要系统实用程序使用的条件时,系统实用程序可自动在DASD上被引用。
现在对ROM 36中BIOS操作和从硬磁盘或软盘上装载BIOS映象和系统参考软盘映象的操作加以说明。一般,诸如ROM-BIOS的第一程序对系统预校验并将BIOS主引导记录装入ROM。主引导记录包括具有验证信息的数据段以及(作为装入装置)的、带有可执行代码的代码段。可执行代码使用数据信息验证硬件兼容性和系统配置。在对硬件兼容性和系统配置测试之后,可执行代码将BIOS映象装入RAM产生主存常驻程序。BIOS映象接在ROM-BIOS之后并装载操作系统以开始机器操作。为清楚起见,主引导记录的可执行代码段可称为MBR代码而数据段称为MBR数据。
参考图3,存储器映象示出构成ROM-BIOS的不同代码模块。ROM-BIOS包括加电自检(POST)阶段Ⅰ模块70,初始BIOS装载(IBL)例程模块72,软盘模块74,硬文件模块76、视频模块78、诊断面板模块80和硬件兼容数据82。简言之,POST阶段Ⅰ 70执行系统预初始化及测试。IBL例程72判定是否从硬盘或软盘装入BIOS映象,校验兼容性并装载主引导记录。软盘模块74提供软盘机的输入/输出功能。硬文件模块76控制硬盘或类似设备的I/O。视频模块78控制进一步连至视频显示器视频I/O控制器的输出功能。诊断面板模块80提供对系统诊断显示器的控制。硬件兼容性数据82包括如系统型号或子型号值,它们将参考图5在下文加以说明。
参考图4,示出将BIOS从硬盘或软盘装入系统的过程概观。当系统加电时,系统处理器跳转至POST阶段Ⅰ入口点,即步骤100处。POST阶段Ⅰ在步骤102对系统初始化并只对那些需从所选PASD装载BIOS映象的系统功能进行测试。具体而言,POST阶段Ⅰ对处理器/系统功能、诊断平面、存储器子系统、中断控制器,计时器、DMA子系统,硬磁盘BIOS例程(硬文件模块76)、和软盘BIOS例程(软磁盘模块74)进行初始化,如必须的话。
如POST阶段Ⅰ对系统预初始条化之后,POST阶段Ⅰ将系统处理器跳转至包括在初始BIOS装载模块72的初始BIOS装载(IBL)例程。IBL例程首先确定BIOS映象是否存储在硬盘或可从软盘装入,其次,在步骤104从所选介质(硬盘或软盘)将主引导记录装入ROM。主引导记录包括MBR数据和MBR代码。MBR数据用于验证目的而执行MBR代码以装载BIOS映象。IBL例程操作的详细描述参考图6A-D给出。
继续参考图4,在IBL例程将主引导记录装入RAM之后,系统处理器跳转到MBR代码开始地址并在步骤106开始执行。MBR代码执行一系列验证测试以判定BIOS映象正确性以及验证系统的配置。为更好理解MBR代码操作注意图7,该图较详细描述了MBR代码。根据这些有效性测试,MBR代码将BIOS映象装入RAM并在步骤108将控制传到新装的主存储器中的BIOS映象。具体而言,将BIOS映象装入以前被ROM-BIOS所占据的地址空间。即,如果ROM-BIOS地址为从E0000H到FFFFFH,则将BIOS映象装入该RAM地址空间从而替代ROM-BIOS。控制传到POST阶段Ⅱ,该POST阶段Ⅱ包括在新装的BIOS映象中从而放弃ROM-BIOS。现在RAM中的POST阶段Ⅱ对剩余系统初始化并作测试以在步骤110-114装载操作系统引导。在阶段Ⅱ POST将控制传送到操作系统之前,阶段Ⅱ POST设置用于防止对装有BIOS映象的硬盘分区的存取的保护装置。然而,如检测出错误,阶段Ⅱ POST能中止保护装置工作并调用硬盘上系统参考软盘映象中的系统实用程序。参考图8-10更详细说明该保护过程。注意到在热启动期间,处理器跳转到步骤108,越过步骤100-106。
为清楚起见,此时说明主引导记录格式的表示是适当的。参考图5,该图示出了主引导记录。该引导记录包括可执行代码段120和数据段122-138。MBR代码120包括DASD相关代码,用于验证ROM-BIOS的标识、检查IBL引导记录与该系统兼容、验证系统配置以及从所选的DASD(硬盘或软磁盘)。数据段122-138包括用于定义介质,识别并验证主引导记录、定位BIOS映象并装载BIOS映象的信息。
主引导记录由引导记录特征122所识别。该引导记录特征122可以是记录前三个字节中的唯一的位模式,例如字符串“ABC”。该主引导记录的完整性可通过将校验和值132与装载引导记录时计算出的校验和值相比较来加以测试。数据段还包括至少一个兼容的系统板ID值134、兼容的型号和子型号值136。主引导记录的系统板ID值确定主引导记录对哪一个系统板是有效的。类似地,主引导记录的型号和子型号数值分别定义了该主引导记录对之有效的处理器和系统板的I/O配置。注意到引导记录的特征字和校验和识别一有效的主引导记录,而引导记录的系统板ID、引导记录的型号和引导记录的子型号比较用于识别和该系统兼容的引导记录并判定该系统配置是否有效。另一数值引导记录模式124用于判定ROM-BIOS的有效性。该引导记录模式124与ROM中存储的相应模式值相比较。如两值相配,则指出有效ROM-BIOS已启动从所选介质中BIOS映象的装载。
以下描述进一步详细地说明了主引导记录中的每一数值及其功能:
MBR标识符(122):IBL引导记录的前3字节可由诸如“ABC”的字符组成。该特征字可用于标识一引导记录。
MBR代码段(120):该代码通过比较相应的系统板I/O和型号/子型号值来检证引导记录与系统板及处理器的兼容性。如这些值匹配,则从所选介质将BIOS映象装入系统RAM。如果系统映象(装入存储器的BIOS映象)校验和有效并且未出现介质装载错误,则MBR代码则将控制转到系统映象的POST阶段Ⅱ例程。
MBR模式(124):IBL引导记录数据段的第一个域包括诸如字符串“ROM-BIOS 1990”的一个模式。该字符串用于通过将该引导模式与ROM存储的相应数值(ROM模式)相比来验证ROM-BIOS有效。
MBR版本数据(126):主引导记录包括为更新实用程序所用的版本数据。
系统分区指针(128):数据段包含为第Ⅱ阶段POST所用的指向介质系统分区区域起始的介质指针。在IBL软磁盘中,该指针为磁道-磁头-扇区格式,在硬磁盘中,该指针为相对块地址(RBA)格式。
系统分区类型(130):该系统分区类型指出介质系统分区的结构。有三种系统分区结构:完全的,最小的和不存在的。完全系统分区除了BIOS映象和主引导记录还包含设置(Setup)实用程序和诊断程序。最小系统分区只含有BIOS映象和主引导记录。当出现系统设有对带IBL映象的硬文件存取入口的场合,系统分区类型指出为不存在。在该场合,IBL来自软磁盘。这三种系统分区类型允许有该系统分区占据介质上多少空间的灵活性。
校验和数值(132):初始化该数据段的校验和数值以便为主引导记录代码的记录长度数值(1.5K字节)产生有效校验和。
MBR系统板ID数值(134):数据段包括诸如定义兼容系统板ID的字串的一个数值。每个字由16位系统板ID构成而该字串由零值字结束。如果一个系统的系统板ID与主引导记录中系统板ID值匹配,例如该串中的一个字,则该IBL介质映象与系统板相兼容。如果系统板ID不与该串中任何字匹配,则IBL介质映象与系统板不匹配。
MBR型号和子型号值(136):该数据段包括一些数值,例如定义兼容处理器的字串。每个字由型号和子型号值构成,而串由零值字结束。如果系统的型号和子型号值(存储于ROM中)与串中一个字相匹配,则IBL介质映象与系统处理器兼容。如果ROM型号和ROM子型号值不与串中任何字匹配,则IBL介质映象与系统处理器不匹配。
MRB映象长度(138):IBL映象长度初始化为介质映象块的个数。换言之,如果将BIOS映象分解为四个块,则央象长度为4,指出有4个块指针/长度域。通常将该长度设置为1,因为介质映象为一连续128K的块。MBR介质扇区大小(138):该字数值初始化为每扇区字节数的介质扇区大小。
介质映象块指针(138):介质映象块指针定位介质中的系统映象块。一般而言,由于介质映象作为一连续块存储故只有一个指针。在IBL软磁盘中,这些指针为磁道-磁头-扇区格式,而在硬磁盘中指针为相对块地址格式。
介质是映象块长度(138):介质映象块长度指出相应映象块指针定位的块的大小(以扇区计)。在包括BASIC空间的128K连续介质映象场合下,该域设置为256,表示BIOS映象块占用起始于介质映象块指针单元的256个扇区(512字节/扇区)。
参考图6A-D,示出IBL例程操作的详细流程图。在一般情况下,IBL例程从系统硬磁盘中将主引导记录装载到RAM的特定地址中,然后使系统处理器转向开始执行主引导记录的代码段。该IBL例程也包含软磁盘缺席方式即主引导记录从软磁盘装入的配置。然而,如果该系统在系统硬磁盘中包含IBL介质并在NVRAM存在有效命令字则IBL例程不许执行软磁盘缺席方式。用户具有NVRAM命令字设置的选择。防止执行软磁盘缺席是为防止从软磁盘装入非法BIOS映象。换言之,软磁盘缺席方式只用于系统固定磁盘不能运行并且用户已指出从软磁盘装入的要求(通过不设置命令字)的场合。如果IBL例程不能从任一种介质装入主引导记录,则产生错误信息而系统停止。
参考图6A,在正常情况下,系统包含系统硬磁盘,IBL例程在步骤150初始化。为说明起见,假定硬磁盘被配置为个人计算机系统的驱动器C。同样,假设驱动器A指定为软磁盘驱动器。然后IBL例程在步骤152检查驱动器C判定是否包含IBL介质。请注意图6,详细说明该过程。IBL例程从硬磁盘最后三个扇区开始读入并继续读操作,递减介质指针,进行99个扇区或直至找到有效主引导记录。如找到主引导记录,在步骤156检验系统板和处理器兼容性。如果系统板或处理器不兼容,则在步骤158报告一个错误。回过来看步骤152,如果在硬磁盘(原始硬文件)的最后99扇区中未找到主引导记录,则在步骤154报告一错误。
回到步骤156,如找到主引导记录,执行一串有效性检验以判定主引导记录是否与计算机系统兼容。此外,检查该系统的配置。再来看更详细说明该过程的图6D。如果引导记录与系统板ID、型号和子型号相兼容,并且系统配置未发生变化,则在步骤160装入主引导记录并执行该主引导记录的代码段。
回到步骤154和158,如在从硬磁盘装入主引导记录时出错或者硬磁盘不能用,则IBL例程在步骤162判定有效命令字是否包括在NVRAM中。该命令字判定该BIOS映象是否能从软磁盘装入。注意到命令字只有当用户运行一组特征实用程序而安装后才存在。如将命令字安装在NVRAM中,则在步骤164防止从软磁盘装入BIOS映象。这可让用户通过只用硬磁盘上的BIOS映象来装载系统来确保系统操作完整性。命令字可取存在于NVRAM中一字符中之形式。
参考步骤162,如果NVRAM中有效命令字不存在,则允许从软磁盘装载BIOS映象,IBL例程在步骤166初始化软磁盘子系统。然后IBL例程在步骤168判定驱动器A是否包括软磁盘的IBL介质。如果驱动器A不包括IBL介质,则在步骤170产生一错误通知用户已将无效的软磁盘插入该驱动器。然后系统在步骤172停止。注意到用于更详细讨论步骤168的图6C。
回到步骤168,对驱动器A作IBL介质检验后,在步骤160,将主引导记录装入RAM并执行包括在主引导记录中的代码段。重要的是对软磁盘而言IBL例程不包括硬磁盘系统所用的有效性检验。不存在有效性检验的原因是为从软磁盘装入非兼容IBL映象。例如,如将一新的处理器加到该系统,则新的BIOS映象包括在软磁盘中。由于在从硬磁盘装入时新处理器会引起有效性错误,则IBL便程通过从软磁盘装入BIOS映象而提供越过这些测试的能力。
扼要地说,通过系统的系统板ID和处理器型号/子型号值与引导记录值的匹配来检验主引导记录与该系统的兼容性。对磁盘而言,IBL例程72首先进行该检测,然后再由IBL引导记录继续进行。做第一次检验(IBL例程中)来确定该引导记录与系统相兼容,第二次检验(在引导记录中)确保兼容的ROM将控制转到引导记录。注意到由于IBL例程已作兼容性检验,在磁盘引导记录中所作检验肯定不会失败。相反,对软磁盘不作第一兼容性检验。只在软磁盘引导记录执行期间检验系统板/处理器兼容性。该方法允许今后的更改从参考软磁盘装载新的BIOS映象。
从图6A的IBL例程的描述来看,说明转到以上讨论的有效性测试的全面、完整的理解。参考较6B,示出图6A步骤152的详细流程图,以判定驱动器C上有无有效主引导记录。通过得到驱动器参数开始该过程,使IBL例程在步骤200存取驱动器C。在步骤202,将IBL装载单元设置为磁盘上最后三个扇区(最后三个扇区通常含主引导记录)。在步骤204,将指示打算从磁盘读主引导记录的个数的装载计数设置为1。在步骤206,从磁盘IBL装载单元读出三个扇区。在步骤208到210,检测任何磁盘驱动器错误并且当出现磁盘驱动器读错误时加以报告。在步骤212-214,该过程返回并给出错误指示。
参考步骤208,如未出现驱动器错误,则在步骤216扫描磁盘记录以寻找主引导记录特征字。将引导记录特征字,例如字符“ABC”与磁盘记录前3字节相比较。如果该磁盘记录没有有效引导记录特征字(字符“ABC”)并且从装入存储器的磁盘记录计算出校验和等于引导记录校验和,则在步骤218指示磁盘记录为无错误的有效引导记录。然后该过程在步骤214处返回。
回到步骤216,如果引导记录特征字或校验和是无效的,则在步骤220将装载计数递增1。然后在步骤222将该负载计数与诸如99的预定计数相比较。如果99次读引导记录都未成功,则指出一错误,该过程返回(步骤224、212和214)。如已出现少于99次读引导记录企图,则在步骤226和206将IBL装载单元递减1而从新的装载单元读三个新扇区。这样,如果有效IBL引导记录不能从最后99扇区(等价于33个副本)装载,则设置出错状态并将控制返回到IBL例程。
参考图6C,示出用于装载驱动器A软磁盘主引导记录的详细流程图。首先在步骤230检索存取驱动器A的软磁盘驱动参数。在步骤232将IBL装载单元设置为软磁盘(柱面、磁头和扇区格式)的最后三个扇区。在步骤234读该最后3个扇区。在步骤236-238,如检测到软磁盘驱动器出错则指出一错误。在步骤240-242,设置出错条件并将控制返回到IBL例程。
回到步骤236,如未检测到驱动器错误,在步骤244检查软磁盘的引导记录特征字并计算校验和字。在步骤244、246、240和242中,如引导记录特征字丢失或校验和无效,则指出一错误并将控制返回IBL例程。在步骤248和242,如果检测到有效引导记录特征字和有效校验和,则设置一指示并将控制返回到IBL例程。注意到在软磁盘装载时IBL例程并不象在硬磁盘装载时那样搜索介质。因此在软磁盘装载时,必须将IBL介质存储在软磁盘的特定位置。
最后,图6D示出IBL例程如何测试系统板和处理器兼容性以及正确系统配置。在步骤260,通过将主引导记录系统板ID值与由系统处理器读入的系统的系统板ID相比较来检验主引导记录与系统板的兼容性。如果该系统板ID不匹配引导记录系统板ID值,这便指出该主引导记录与该系统板不兼容。步骤262、264和266指出一错误并将控制返回到IBL例程。
如果主引导记录和该系统板兼容,在步骤268校验主引导记录与处理器兼容性。将该引导记录型号值和子型号值分别与存储在ROM的型号值和子型号值相比较。不匹配指出可能插入一新处理器而该引导记录与该新处理器不兼容。步骤270,264和266指出一错误,将控制返回到IBL例程。如果主引导记录与系统板和处理器兼容,在步骤272进行检验以判定NVRAM是否正确。在步骤274和266,如NVRAM不正确,指示出错将控制返回到IBL例程。在步骤276,如果NVRAM正确,则检验系统配置。如果存储在NVRAM的型号值和子型号值与存储在ROM中的型号值和子型号值不匹配则指出系统配置改变了。注意到该最后比较只指出配置错误。如指出一配置错误,则为用户产生一错误。该错误通知用户自运行上一次配置设置程序后系统配置了发生变化。在步骤278、264和266通知用户配置变化以及将控制送回IBL例程。该错误本身并非致命的,通知用户须执行配置设置程序(配置程序)。回到步骤276,在步骤276、274和266,如果系统型号/子型号值匹配则设置兼容性指示而该例程返回。这样在判定系统配置是否已修改的同时测试主引导记录和该系统之间的兼容性。
在IBL例程将主引导记录装入RAM后,将控制传到MBR代码起始地址。参考图7,在步骤300,主引导记录的可执行代码段首先验证引导记录模式和ROM模式。在步骤302,305,如果主引导记录的模式与ROM中模式不匹配,则产生一错误,系统停止。ROM和引导记录模式之间的相等检查确保了从磁盘或软磁盘装入的主引导记录与系统板上ROM相兼容。回到步骤300,如果ROM中模式与引导记录中模式匹配,在步骤304将MRB代码与系统板ID值、型号与子型号值与相应主引导记录数值相比。该过程已参考图6D详细说明。如该数值不匹配,主引导记录与系统板和处理器不兼容,或系统配置已改变在步骤306产生一错误。当IBL记录与系统板型号或子型号值不兼容时,系统停机。
回到步骤304,如果系统板ID值、型号和子型号与相应主引导记录数值匹配,则在步骤308,MBR代码从所选介质将BIOS映象装入系统RAM。如在步骤310读数据时出现介质装载错误,则在步骤312和315产生一错误并使系统停机。再回到步骤310,如未出现介质装载错误,则在步骤312为BIOS映象计算校验和。如校验和无效,则在步骤318和308产生一错误并系统停机。回到步骤316,如校验和有效,在步骤320保存系统分区指针,在步骤302将系统处理器跳转到POST阶段Ⅱ以执行系统装载。
参考图8,示出用于控制磁盘驱动器351和系统处理器之间数据传送的智能磁盘控制器350的方框图。可以理解该磁盘控制器350可装入适配卡60而磁盘驱动器器351可包括在图2的驱动器62中。适合的磁盘控制器350是IBM公司制造的零件号为33F8740的SCSI适配器。即,磁盘控制器350包括在其自身内部时钟下工作的微处理器352,用于控制其内部操作及与磁盘子系统和系统处理器其它元件的接口。由指令总线354将微处理器352耦合到存储指令的只读存储器(ROM)356,其中存储的指令是磁盘存储器350执行用以对磁盘驱动器和系统处理器之间数据传送加以处理和控制的。也可以理解,磁盘控制器350可包括耦合到微处理器352用于数据存储或检索的随机存取存储器。磁盘控制器350和系统处理器之间数据传送由数据总线358和指令总线360实现。线路362上的复位信号在加电或系统复位期间复位或初始化磁盘控制器逻辑电路。该复位信号由系统板逻辑电路产生并可采取如在“IBM PERSONAL SYSTEM/2 Seminar Proceeding”(卷5,号3,1987年5月由IBM公司Entry System division发表)中所述的IBM微通道结构提供的通道复位信号的形式。而且,可通过BIOS将特定的位配置输出到其中连接有系统板逻辑的系统处理器的I/O端口来有效地启动该复位信号。
如已周知,微处理器352提供所有的接口和时序信号以执行磁盘驱动器和系统处理器之间数据的有效传送。为清楚起见,只示出对理解本发明重要的那些信号。可以理解,其它信号和线路例如数据总线364由于对本发明的理解并不重要,因此尽管使用但未在此示出。进一步可以理解,参考图9只说明那些为理解本发明重要的、存储在ROM356中的那些程序或例程。
现参见图9,示出由存储在ROM 356例程的操作执行的磁盘控制器的读、写和保护功能的流程图。运行时,磁盘指令由系统处理器发出并传送到磁盘控制器350。在步骤400,磁盘控制器接收并解释这些指令,以执行指定操作。在步骤402,磁盘控制器先判定是否为写操作,即将来自系统处理器的数据存储在磁盘驱动器硬件上。如该指令是写指令,则从系统处理器以相对块地址(RBA)格式接收数据。
在继续以上讨论之前,简单说明用于大容量存储器例如磁盘的相对块地址格式具有益处的。RBA是以顺序数对预定大小的块寻址大容量存储器中数据的一种方案,该顺序数即各自对连续数据块的限定。例如,假设块大小为1024字节,对10兆字节磁盘,系统处理器可近似寻址10,000个块。即,系统处理器能以N块寻址磁盘介质,其中N的范围从0到9,999。业已发现,使用RBA为本发明个人计算机系统所用操作系统类型的大容量存储器提供了非常快而有效的方法。
为方便起见,引入以下假设,首先,该磁盘可支持全部的N块;其次,系统处理器传送块K,其中K在于或等于0并且小于或等于(N-1);第三,磁盘控制器能设置最大可寻址块M,当K小于M时允许存取数据块,当K大于或等于M时不许存取数据块。因此,将M设置成小于N,从M到N-1块中产生磁盘上可保护区域。该特性使IBL介质如下所述加以保护。
继续对图9的讨论,在步骤404以RBA格式从磁盘接收数据。然后在步骤406由磁盘控制器判定接收的块K是否小于最大块数值M,其中M小于N。如果K小于M,则在步骤408由磁盘控制器将RBA格式转换为大容量存储器的特殊格式例如硬磁盘的柱面-磁头-扇区(CHS)格式。例如,使用查找表,磁盘控制器可将RBA地址变换为唯一的柱面磁头-扇区位置。另一方法是使用变换公式来把RBA变换为CHS。例如,对具有一个磁头、64柱面和96扇区的磁盘,磁头=0、柱面=RBA/(96)的商,而扇区=RBA/(96)的余数。在将RBA格式变换为CHS格式后,在步骤410将数据写到磁盘上变换的CHS单元中。在步骤412,磁盘控制器等待来自系统处理器的另一指令。
回到步骤406,如接收的RBA大于最大设置RBA值,则在步骤414拒绝存取。也就是,如果K大于或等于M,则不能将K块写到该磁盘。请注意到,如果将IBL介质存储在从M到N-1的块中,则防止了对IBL介质的写操作。
回到步骤402,如果系统处理器指令不是写指令,则在步骤416测试是否为读指令。如该指令为读指令,则在步骤418由系统处理器发送用于请求数据的RBA格式。该磁盘控制器然后便判定要求的RBA(K)是否小于最大设置RBA(M)。如果要求的RBA(K)小于最大设置RBA(M),则在步骤422和424由磁盘控制器将RBA变换为正确的CHS格式并从磁盘读数据。然后在步骤412将数据传送到系统处理器。
回到步骤420,如接收到的RBA(K)大于或等于最大设置RBA(M),则在步骤426禁止存取。如果IBL质存储在M块和(N-1)块之间,禁止对该区域存取。注意到在此情况下,也禁止IBL介质被复制。
回到步骤416,如该指令不是写或读指令,则在步骤428对设置最大RBA指令测试。该指令允许磁盘控制器在磁盘驱动器硬件上产生可保护区或分区。该指令允许磁盘控制器在步骤430设置M在0和N块之间。重要的是注意到当磁盘控制器复位时(通过复位信号)对M设置使得块的最大个数是可利用的。即,当磁盘控制器被复位时,M=N。基本上讲,一旦复位磁盘控制器便取消对保护区的保护并允许存取该区域。但是,只要设置最大RBA指令一执行,则允许复位或另一设置最大RBA指令存取该保护区。概念上讲,最大RBA的设置被认为是一壁垒,对高于该壁垒的区域阻止存取,而允许对低于该壁垒的区域存取。磁盘控制器在步骤412返回以等待另一指令。
回到步骤428,如该指令不是读、写或设置最大RBA指令,则在步骤432测试另一磁盘控制器指令并执行。这些指令使用该设置最大RBA值但为简略起见,由于对理解本发明并不重要因此未予示出。然后磁盘控制器返回在步骤412等待另一指令。
现对前面讨论的IBL介质的装载和保护的操作进行说明。一般,无论由于冷启动(接通电源)或热启动(Ctrl-Alt-Del),带有IBL介质的磁盘控制器复位。这使最大RBA(M)设置为N,即移去壁叠允许对IBL介质的存取。这要求允许系统装入IBL介质以开始操作。IBL介质一旦装入并执行之后,壁叠便又立起(设置最大RBA低于IBL介质)以防对存储在磁盘中的IBL介质的存取。
参考图10,示出执行IBL介质保护的方框流图。从步骤450通电状态开始启动该系统,在步骤452 BIOS启动系统板逻辑电路中的活动以将复位状态发送到磁盘控制器。该复位信号壁叠撤消并允许系统处理器对以前存储在磁盘上从 块到N块区域中的IBL介质的存取。在步骤454,系统如参考图4-7所述那样装载IBL介质。在步骤456,在IBL装载期间,执行通电自检阶段Ⅱ。POST阶段Ⅱ的任务之一是执行设置最大RBA指令,即在步骤458,最大RBA设置成IBL介质的第一块,指定该块为M。M取决于前面说明的分区类型(无,部分或完全)。这实际设置了壁叠禁止对IBL介质存取而允许存取该磁盘其它区域。然后在步骤460以正常方式引导操作系统。
如果系统从热启动状态例如Ctrl-Alt-Del被启动,在步骤462和464,系统板通过通电自检阶段Ⅱ发命令复位磁盘控制器。这使壁叠取消。在此情况下,由于IBL介质已在RAM中,则不再装载IBL介质。然而,而于消除了对IBL介质的保护,须在步骤456和458执行通电自检第Ⅱ阶段以恢复壁垒。壁垒又竖起以保护IBL介质并重新引导该系统。
通过以块为单位寻址大容量存储器和设置在正常操作期间系统可存取的最大块来保护该IBL介质。将这些块中的IBL介质相继存储在可存取最大块和磁盘驱动器支持的总块数之间。发送到磁盘控制器的复位信号取消了允许系统寻址IBL介质的可存取最大块。在通电状态或热启动状态时产生该复位信号以存取IBL介质,引导该系统。
现参考图11,流程图说明了通电自检第二阶段执行的用以从硬磁盘62上系统分区装载系统参考软磁盘映象的过程。在引导诸如DOS或IBM的OS/2的操作系统之前,在步骤500 POST判定IBL介质上存在的系统分区的类型。然后在步骤502,POST对硬磁盘62查询最后块地址的数值。然后在步骤504,POST调整作为最后块地址得到的数值以计算出该系统分区的大小。这可通过从硬磁盘62的最后物理块地址减去该系统分区的量来完成。在步骤506,POST保存作为最后逻辑块地址的经调整数值。这样使POST提供BIOS一个从系统分区而不是在硬磁盘分区的起始处开始引导的机构。参考图13,对以上作更详细讨论。
参照图11继续进行,POST阶段Ⅱ在步骤508检查POST路径旗标的当前内容。POST路径旗标是POST用于记录通过POST的路径类型的一个机构。例如,是初始通电路径还是热重引导路径。热重启动通常通过Ctrl-Alt-Del击键序列启动。如果POST路径旗标的当前值指出越过系统分区引导过程,在步骤510,POST阶段Ⅱ设置系统分区引导旗标为假,指出不引导该系统分区。然后在步骤511,POST阶段Ⅱ通过指示BIOS根据步骤506计算出的数值起动引导硬磁盘的保护装置。即将壁垒置为步骤506计算出的地址指针。这样来保护系统分区不会由于疏忽而损坏。此后,在步骤512 POST阶段Ⅱ调用引导装入程序INT19H来启动操作系统引导。
回到步骤508,如果POST路径旗标未指出系统分区引导序列的越过,则在步骤520,对热引导路径和指出键入Ctrl-Alt-Del键序列的POST检查POST路径旗标。如果路径旗标未指出热引导,则在步骤522,POST阶段Ⅱ判定在冷启动执行期间是否检测出错误。如未检出错误,则在步骤510由POST阶段Ⅱ设置指出不引导系统分区的旗标。通过发指令BIOS起动步骤511所示保护装置,POST阶段Ⅱ保护系统分区,接着在步骤512调用引导装入程序。
再回过来参见步骤522,如POST阶段Ⅱ在其执行时检测到任何错误,则在步骤526设置系统引导分区旗标为真。POST阶段Ⅱ通过发指令给BIOS启动步骤511所示保护装置来保护系统分区。此后,POST阶段Ⅱ调用引导装入程序512启动操作系统引导。
参考步骤520,如进入Ctrl-Alt-Del键序列,POST阶段Ⅱ检查用户是否已输入击键序列。该Ctrl-Alt-Del击键指令调用系统参考软磁盘映象524的引导。该序列允许用户从系统分区执行引导过程。如果不是,通过发指令给BIOS启动步骤511所示保护装置,POST阶段Ⅱ设置系统分区引导旗标为假并保护该系统分区。此后,POST阶段Ⅱ在步骤512调用引导装入程序INT 19H,以启动操作系统引导。
回过来参考步骤524,如果POST阶段Ⅱ检测到用户输入的Ctrl-Alt-Del击键序列,则在步骤526设置系统分区引导旗标为真,指出引导系统分区。POST阶段Ⅱ通过发送指令给BIOS启动步骤511所示保护装置来保护系统分区,此后在步骤512调用引导装入程序。
此时,如果出现正常引导序列或系统分区的系统参考软磁盘映象的引导,则已建立POST阶段Ⅱ。同样,POST形成了系统划分区的起始如同逻辑可引导分区,该POST启动保护装置,以防被认为不可靠的程序对系统分区的存取。逻辑可引导分区对POST来说作为磁盘和第一分区出现,因此是可引导的。POST阶段Ⅱ调用引导装入程序。
引导装入程序用于选择正确引导装置并从有效分区中读入引导记录。引导驱动器优先级是第一软磁盘驱动器,接着是第一硬磁盘例如引导硬磁盘。通过使用系统参考软磁盘上实用程序或系统分区中系统参考软磁盘映象可改变上述省缺的引导设备序列的优先级。引导装入程序可将控制转给引导记录中的可执行代码。接着引导所要求的操作系统或控制程序。
继续对图12的讨论,已示出说明引导装入程序INT 19H内部逻辑流的流程图。步骤600开始,引导装入程序检查第一软磁盘驱动器中系统参考软磁盘的实际存在。第一软磁盘驱动器中系统参考软磁盘的存在将使所有其它参考软磁盘被跳过。换言之,调用系统参考软磁盘使得系统分区中系统参考软磁盘映象,或当检测出POST错误时由用户直接引导该操作系统的请求被跳过。接下来,在步骤620检查系统分区引导旗标。由于存在系统参考软磁盘,则系统分区引导旗标为假。
由于系统分区引导旗标为假,在步骤630,引导装入程序判定是否需要进行参考软磁盘引导。由于在第一软磁盘驱动器中存在系统参考软磁盘,在步骤640引导装入程序首先 指令BIOS给解除系统分区的保护装置。然后在步骤650,通过使用步骤506计算出的数值作为逻辑块开始地址,引导装入程序建立作为引导硬磁盘来源的系统分区。该系统分区未被保护。在步骤660,该引导装入程序从系统参考软磁盘取引导记录并将控制传到该记录。然后该引导记录引导系统参考软磁盘。例如,用户可将新型的I/O适配器加到该系统并将其适配器说明文件安装在系统分区中。
参考步骤600,如在第一软磁盘驱动器中不存在系统参考软硬磁盘,则在步骤612,引导装入程序检查系统分区引导旗标。该该旗标指出操作系统引导,则在步骤614,该引导装入程序将控制转到可选引导例程。然后,该可选引导例程判定从那个物理装置引导并进到步骤620。
然后存取该系统分区引导旗标,在步骤620判定该旗标是否被置位。如未请求系统分区引导,该引导装入程序在步骤630判定是否需要系统参考软磁盘引导。例如,系统参考软磁盘可以在某个可引导软磁盘驱动器中但不是第一物理的软磁盘驱动器中。如不存在系统参考软磁盘,引导装入程序在步骤660读取操作系统引导记录并将控制转到该记录。该系统分区保留在被保护状态,BIOS可存取另一分区,即引导硬磁盘上的操作系统分区。
参考回到步骤630,如果需要系统参考软磁盘引导,在步骤650,引导装入程序指令BIOS解除用于系统分区的保护装置以及通过使用步骤506计算出的值作为逻辑块起始地址作为引导硬磁盘的来源建立系统分区。引导装入程序在步骤660从参考软磁盘读取引导记录(这时,存在系统参考软磁盘)并引导该系统参考软磁盘。该系统分区未被保护,是硬磁盘上的有效分区。这样做允许被参考软磁盘所存取。如前所述,用户可将具有新特性I/O适配器加到该系统并将其适配器说明文件安装在该系统分区中。
回到步骤620,如果系统分区引导旗标为真,则在步骤640由该引导装入程序指示BIOS解除系统分区保护装置,并在步骤650使用步骤506计算出值作为逻辑块起始地址来建立作为引导硬磁盘来自的系统分区。引导装入程序然后在步骤660从系统分区的系统参考软磁盘映象中读取引导记录并引导该系统参考软磁盘映象。该系统分区未保护并且是引导硬磁盘上的有效部分。
回到步骤612,如果系统分区引导旗标指出一系统分区引导,则在步骤616,引导装入程序检查系统分区上的有效引导记录。该步骤包括验证:系统分区为完全系统分区;引导记录特征字是有效的;以及存在系统参考软磁盘特征字。如果有效,该引导装入程序在步骤620查询系统分区引导旗标。因该旗标为真,在步骤640和650,引导装入程序指令BIOS对系统分区保护装置予以解除并通过将步骤506计算出数值作为逻辑块起始地址来建立作为引导硬磁盘起始的系统分区。引导装入程序在步骤660从系统分区读取引导记录并引导系统参考软磁盘映象。该系统分区未被保护而且是引导硬磁盘上有效分区。
回到步骤616,如不存在有效引导记录,则引导装入程序在步骤617提示用户将系统参考软磁盘插入软磁盘驱动器并按下键盘上“Y”键。然后该引导装入程序在步骤618等待输入的键。一旦键入,引导装置程序在步骤619检查是否存在有效系统参考软磁盘。如没有则引导装入程序重复在步骤617开始的过程。
回到步骤619,如果引导装入程序找到一有效的系统参考软磁盘,则在步骤640和650,指示BIOS解除系统分区保护装置并通过使用在步骤506计算出数值作为逻辑块起始地址来形成作为引导硬磁盘起始的系统分区。此时该系统分区未被保护,在步骤660,引导装入程序从该系统参考软磁盘读取引导记录并将控制转至该记录。该引导记录便引导系统参考软磁盘。
图13示出支持从引导硬磁盘的系统分区引导系统参考软磁盘映象或在引导系统参考软磁盘时允许存取该映象所要求的BIOS改进。当BIOS接收到执行数据传送操作的请求时,便判定是否为引导硬磁盘,如步骤700所示出。该引导硬磁盘是硬磁盘适配器上第一物理硬磁盘。如该硬磁盘不是引导硬磁盘,则BIOS在步骤730执行所请求的操作。
回到步骤700,如果该硬磁盘是引导硬磁盘,BIOS在步骤710检查着该系统分区引导旗标是否为真或系统参考软磁盘正被引导。如两者均不为真,而BIOS在步骤730执行所请求操作。
回到步骤710,如果系统分区引导旗标为真,或系统参考软磁盘正被引导,则将步骤506计算出的硬磁盘块地址在从用户提供的配以硬磁盘数据传送功能的柱面、磁头和扇区参数(这是随着硬盘数据传送请求一并提供的)加以变换后在步骤720被加到任一块地址上这使该系统分区显得如同硬磁盘上的第一块。这样该系统分区看似是引导固定磁盘上有效分区。此后,BIOS在步骤730执行请求的操作。
这样便已示出了用于从大容量存储器例如硬磁盘驱动器的系统分区中引导系统参考软磁盘的方法和装置。该系统分区由磁盘驱动器上保护出一块区域而提供的。通过将系统分区起始地址存储在磁盘驱动器中,以及当请求或需要系统参考软磁盘是映象的引导时通知BIOS用它作为硬磁盘起始,从而使得该系统分区是可引导的。通过提供这种能力,不管配置何时变化,或需要一系统实用程序或在执行POST期间遇到一错误系统参考软磁盘实用程序总是自动可利用的。这增强了系统可用性。
尽管结合最佳实施例对本发明已作说明,但应该理解,对本领域技术人员可做许多种变化,而本发明的范围只由附上的权利要求书所限定和等价。