两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

從個(gè)人計(jì)算機(jī)系統(tǒng)分區(qū)中加載系統(tǒng)參考磁盤映象的設(shè)備及方法

文檔序號(hào):6406277閱讀:295來源:國(guó)知局
專利名稱:從個(gè)人計(jì)算機(jī)系統(tǒng)分區(qū)中加載系統(tǒng)參考磁盤映象的設(shè)備及方法
技術(shù)領(lǐng)域
本發(fā)明涉及個(gè)人計(jì)算機(jī)系統(tǒng),更準(zhǔn)確地說涉及用于在個(gè)人計(jì)算機(jī)系統(tǒng)大容量存儲(chǔ)器的保護(hù)分區(qū)中保護(hù)并存儲(chǔ)系統(tǒng)實(shí)用程序的方法和裝置。
本專利申請(qǐng)是共同未決的一組申請(qǐng)之一,這組申請(qǐng)都和一個(gè)完整的個(gè)人計(jì)算機(jī)系統(tǒng)有關(guān)但各個(gè)對(duì)這種計(jì)算機(jī)系統(tǒng)中體現(xiàn)的不同的發(fā)明概念有相應(yīng)的權(quán)利要求。這些相關(guān)專利申請(qǐng)是同一日期提交即1989年8月25日提交的,在此特意結(jié)合作為參考,這些相關(guān)申請(qǐng)更具體地說明如下1.申請(qǐng)?zhí)?7/399,631,標(biāo)題為“從個(gè)人計(jì)算機(jī)系統(tǒng)磁盤裝載BIOS的裝置和方法”,其代理人案卷號(hào)為BC9-89-024,發(fā)明人為Bealkowski等人;
2.申請(qǐng)?zhí)?7/398,865,題目為“個(gè)人計(jì)算機(jī)系統(tǒng)的初始BIOS裝載”,代理人案卷號(hào)為BC-89-623,發(fā)明人為Bealkowski等人;
3.申請(qǐng)?zhí)?7/398,860,題目為“減少個(gè)人計(jì)算機(jī)系統(tǒng)對(duì)BIOS存儲(chǔ)器需求的裝置和方法”,代理人案卷號(hào)為BC9-89-025,發(fā)明人為Bealkowski等人。
4.申請(qǐng)?zhí)?7/398,820,題目為“防止非法存取個(gè)人計(jì)算機(jī)系統(tǒng)BIOS的裝置和方法”,代理人案卷號(hào)為BC9-89-026,發(fā)明人為Bealkowski等人。
一般的個(gè)人計(jì)算機(jī)系統(tǒng)及具體的IBM個(gè)人計(jì)算機(jī)已廣泛用于給今日現(xiàn)代社會(huì)許多方面提供計(jì)算機(jī)機(jī)能。個(gè)人計(jì)算機(jī)系統(tǒng)通??上薅榕_(tái)式,立式和便攜式微計(jì)算機(jī),該微計(jì)算機(jī)由帶有單個(gè)系統(tǒng)處理器的系統(tǒng)部件,顯示監(jiān)視器、鍵盤、一個(gè)或多個(gè)磁盤驅(qū)動(dòng)器、硬磁盤存儲(chǔ)器和一個(gè)可選打印機(jī)組成。這些系統(tǒng)的區(qū)別特征之一是使用母板或系統(tǒng)板將這些元件電氣地連接在一起。最初設(shè)計(jì)這些系統(tǒng)是為賦與單個(gè)用戶以獨(dú)立的計(jì)算能力以及具有個(gè)人或小型企業(yè)買得起的便宜價(jià)格。這種個(gè)人計(jì)算機(jī)系統(tǒng)的例子是IBM PC AT和IBM PS/II 25、30、50、50Z、55SX、60、65SX、70及80型。
這些系統(tǒng)可分類為兩種一般系列。第一系列通常稱為Ⅰ型系列,使用由IBM PC AT和其它“IBM兼容”機(jī)所示例的總線結(jié)構(gòu)。第二系列稱為Ⅱ型系列,使用由IBM PS/II 50型到80型示例的IBM微通道總線結(jié)構(gòu)。
自Ⅰ型系列的最早的個(gè)人計(jì)算機(jī)系統(tǒng),例如IBM PC,開始就認(rèn)識(shí)到軟件兼容性最為重要。為實(shí)現(xiàn)該目標(biāo),在硬件和軟件之間建立了也稱作“固件”的系統(tǒng)駐留代碼的隔離層。該固件提供了用戶應(yīng)用程序/操作系統(tǒng)與硬設(shè)備之間的操作接口以及讓用戶無須關(guān)心硬設(shè)備特性。最終發(fā)展成為基本輸入/輸出系統(tǒng)(BIOS)的代碼使得在讓新設(shè)備加入該系統(tǒng)的同時(shí),將應(yīng)用程序與硬件的特定情況隔離開來。BIOS的重要性曾經(jīng)是極為明顯的,因?yàn)樗乖O(shè)備驅(qū)動(dòng)程序不再依賴于特定設(shè)備硬件的特性,而是將設(shè)備的中間接口提供給設(shè)備驅(qū)動(dòng)程序。由于BIOS是系統(tǒng)一個(gè)整體部分并控制著進(jìn)出系統(tǒng)處理器數(shù)據(jù)的運(yùn)動(dòng),它駐留系統(tǒng)板或由存放在只讀存儲(chǔ)器(ROM)中提供給用戶。例如,最初的IBM PC的BIOS占據(jù)平面板上常駐8K ROM中。
當(dāng)引進(jìn)個(gè)人計(jì)算機(jī)系列的新的型號(hào),必須修改BIOS并將BIOS擴(kuò)展以包括新的硬件和I/O設(shè)備。如所預(yù)料的那樣,BIOS的存貯規(guī)模開始增加。例如,由于引進(jìn)IBM PC AT,BIOS增大至需32K字節(jié)ROM。
今天,隨著新技術(shù)的發(fā)展,Ⅱ型系列的個(gè)人計(jì)算機(jī)系統(tǒng)變得更為復(fù)雜并更多地被消費(fèi)者所利用。由于技術(shù)在迅速改變,以及新的I/O設(shè)置被加到個(gè)人計(jì)算機(jī)系統(tǒng),所以BIOS的修改成為個(gè)人計(jì)算機(jī)開發(fā)周期中重要問題。
例如,隨著帶微通道結(jié)構(gòu)的IBM PS/2的引入,開發(fā)了非常新的新型BIOS,稱為高級(jí)BIOS或ABIOS。然而,為保持軟件兼容性,Ⅰ型系列的BIOS必須包括在Ⅱ型系列中。Ⅰ系列BIOS稱為兼容BIOS或CBIOS。然而,如前面就IBM PC AT所述,在底板平面上只有32K字字的ROM。幸而,該系統(tǒng)可擴(kuò)展為96K字節(jié)的ROM。但由于系統(tǒng)局限,這便成為對(duì)BIOS可用的最大容量。幸好即使加上ABIOS,ABIOS和CBIOS仍可擠入96K字節(jié)的R OM。然而,96K ROM區(qū)中只有很小的部分可用于擴(kuò)展。隨著將來I/O設(shè)備的增加,CBIOS和ABIOS最終會(huì)用盡ROM空間。這樣,新的I/O技術(shù)便不能容易地加入CBIOS和ABIOS中。
由于這些問題,加上希望在開發(fā)周期中盡可能遲對(duì)Ⅱ系列BIOS進(jìn)行修改,有必要使BIOS的部分從ROM卸載。這可通過將BIOS部分存儲(chǔ)在例如硬磁盤的大容量存儲(chǔ)裝置中來實(shí)現(xiàn)。由于磁盤提供寫和讀功能,所以可靈活修改磁盤上實(shí)際BIOS代碼。該磁盤盡管提供存儲(chǔ)BIOS代碼的快速有效途徑,但也大大增加BIOS代碼被搞亂的可能性。由于BIOS是操作系統(tǒng)一整體部分,所以出錯(cuò)的BIOS是操作系統(tǒng)一整體部分,所以出錯(cuò)的BIOS會(huì)導(dǎo)致毀滅性結(jié)果并在很多情況下導(dǎo)致完全失效和系統(tǒng)不可操作。這樣,非常明顯防止對(duì)硬磁盤上BIOS代碼的非法修改是非常合乎需要的,這就是美國(guó)申請(qǐng)07/398,820(于1989年8月25日提交)的主題。
除了將BIOS存儲(chǔ)在大容量存儲(chǔ)器上,亦非常需要將一般包含在系統(tǒng)參考磁盤上的系統(tǒng)實(shí)用程序存儲(chǔ)起來。取消系統(tǒng)磁盤不但降低了系統(tǒng),價(jià)格,而且提供了更為用戶友好的環(huán)境。
此時(shí)簡(jiǎn)略地說明先前存儲(chǔ)在參考磁盤上的系統(tǒng)實(shí)用程序的目的是適當(dāng)?shù)摹S捎谝M(jìn)IBM PS/2微信道,系統(tǒng)可從I/O適配卡及系統(tǒng)板上去除開關(guān)和跨接器。微通道結(jié)構(gòu)以可編程寄存器替換了它們。需要若干構(gòu)造這些可編程寄存器或可編程選擇開關(guān)(POS)寄存器。此外,另一些改進(jìn)系統(tǒng)可用特性的實(shí)用程序和系統(tǒng)診斷程序一起隨系統(tǒng)裝在該系統(tǒng)參考磁盤中提供給用戶。
在首次使用之前,每個(gè)微通道系統(tǒng)需要初始化其POS寄存器。例如,如用新的I/O卡引導(dǎo)該系統(tǒng),即I/O卡的槽變化,便產(chǎn)生一配置錯(cuò),并且該系統(tǒng)引導(dǎo)過程中止。然后提示用戶裝入系統(tǒng)參考磁盤并按下F1鍵。然后便可從系統(tǒng)參考磁盤引導(dǎo)“配置設(shè)置實(shí)用程序”以對(duì)該系統(tǒng)配置。該配置設(shè)置實(shí)用程序會(huì)提示用戶做所要求進(jìn)行的動(dòng)作。如果適當(dāng)I/O卡的描述文件裝在該系統(tǒng)參考磁盤上,配置設(shè)置實(shí)用程序?qū)⒃诜菗]發(fā)存儲(chǔ)器上產(chǎn)生正確的POS或配置數(shù)據(jù)。該描述文件包含配置信息以使該卡和系統(tǒng)溝通。
盡管該過程相當(dāng)容易執(zhí)行,但系統(tǒng)參考磁盤必須在手頭或方便地存放在附近。曾有這種情形,過了一段時(shí)間而將系統(tǒng)參考磁盤放錯(cuò)位置。所以將系統(tǒng)參考磁盤的一個(gè)副本和BIOS一起存儲(chǔ)在大容量存儲(chǔ)器以改進(jìn)系統(tǒng)可用性是非常合乎要求的。
為解決上述所提到的問題,已產(chǎn)生本發(fā)明。作為其目的之一,本發(fā)明有一個(gè)用于將該系統(tǒng)參考磁盤的映象存儲(chǔ)在個(gè)人計(jì)算機(jī)系統(tǒng)的直接存取存儲(chǔ)器上的裝置。
本發(fā)明另一目的是通過提供給每一系統(tǒng)其私有的系統(tǒng)參考磁盤考貝和配置文件來改進(jìn)這些系統(tǒng)的可用性。
廣義地說,本發(fā)明的個(gè)人計(jì)算機(jī)系統(tǒng)包含系統(tǒng)處理器,隨機(jī)存取存儲(chǔ)器,只讀存儲(chǔ)器以及至少一個(gè)直接存取存儲(chǔ)器。耦合在系統(tǒng)處理器和直接存取存儲(chǔ)器之間的直接存取存儲(chǔ)器控制器包括用于保護(hù)存儲(chǔ)器區(qū)域的裝置。存儲(chǔ)器的受保護(hù)區(qū)包括主引導(dǎo)記錄、BIOS映象和系統(tǒng)參考磁盤映象。BIOS映象包括稱為自檢電源的段(POST)。POST用于測(cè)試和初始化系統(tǒng)。一旦檢測(cè)到任何配置錯(cuò)誤,來自系統(tǒng)參考磁盤映象的系統(tǒng)實(shí)用程序,例如配置設(shè)置程序,診斷程序以及實(shí)用程序可以被自動(dòng)地起動(dòng)。
具體而言,響應(yīng)引導(dǎo)系統(tǒng)的復(fù)位信號(hào),保護(hù)裝置允許存取被保護(hù)區(qū)以使主引導(dǎo)記錄裝入隨機(jī)存取存儲(chǔ)器。運(yùn)行時(shí),主引導(dǎo)記錄進(jìn)而將BIOS映象裝入隨機(jī)存取存儲(chǔ)器。BIOS,現(xiàn)位于隨機(jī)存取存儲(chǔ)器中而被執(zhí)行并引導(dǎo)操作系統(tǒng)開始系統(tǒng)操作,然后BIOS產(chǎn)生第二信號(hào),該第二信號(hào)起動(dòng)保護(hù)裝置以防止對(duì)包含主引導(dǎo)記錄和BIOS映象的磁盤區(qū)的存取。如果BIOS(POST)檢測(cè)到一錯(cuò)誤,BIOS產(chǎn)生第三信號(hào)中止保護(hù)裝置然后試著引導(dǎo)可引導(dǎo)磁盤驅(qū)動(dòng)器中找到的系統(tǒng)參考磁盤,如果沒有系統(tǒng)參考磁盤,那么BIOS引導(dǎo)系統(tǒng)分區(qū)中的系統(tǒng)實(shí)用程序。
具體而言,只讀存儲(chǔ)器包括BIOS的第一部分。BIOS的第一部分對(duì)系統(tǒng)處理器、直接存取存儲(chǔ)器初始化,以及復(fù)位保護(hù)裝置,以便從被保護(hù)區(qū)直接存取存儲(chǔ)器的分區(qū)中讀出主引導(dǎo)記錄到隨機(jī)存取存儲(chǔ)器。該主引導(dǎo)記錄包括一數(shù)據(jù)段和一可執(zhí)行代碼段。數(shù)據(jù)段包括表示系統(tǒng)硬件和由主引導(dǎo)記錄支持的系統(tǒng)配置。第一BIOS部分通過驗(yàn)證來自主引導(dǎo)記錄的數(shù)據(jù)段與包括在第一BIOS部分、表示系統(tǒng)處理器、系統(tǒng)平面和平面I/O配置的第一BIOS部分中的數(shù)據(jù)是否一致來確認(rèn)主引導(dǎo)記錄和系統(tǒng)硬件是否兼容。
如果主引導(dǎo)啟示和系統(tǒng)硬件兼容,則第一BIOS部分引導(dǎo)系統(tǒng)處理器執(zhí)行主引導(dǎo)記錄中可執(zhí)行代碼段。該可執(zhí)行代碼段確定該系統(tǒng)配置未變并從直接存取存儲(chǔ)器將剩余BIOS部分裝入隨機(jī)存取存儲(chǔ)器。然后該可執(zhí)行代碼段驗(yàn)證剩余BIOS部分的正確性,引導(dǎo)系統(tǒng)處理器開始執(zhí)行現(xiàn)處于隨機(jī)存取存儲(chǔ)器中的BIOS。在隨機(jī)存取存儲(chǔ)器中執(zhí)行的BIOS產(chǎn)生用于保護(hù)具有剩余BIOS的磁盤分區(qū)的第二信號(hào)并引導(dǎo)操作系統(tǒng)開始個(gè)人計(jì)算機(jī)系統(tǒng)的操作。為保護(hù)BIOS代碼完整性,保護(hù)載有剩余BIOS的分區(qū)以防存取磁盤上的BIOS代碼。
然而,如在引導(dǎo)操作系統(tǒng)之前由BIOS檢測(cè)到錯(cuò)誤或用戶啟動(dòng)的診斷引導(dǎo)鍵序列,則如果有系統(tǒng)參考磁盤映象的話則從系統(tǒng)分區(qū)引導(dǎo)該映象。此外,如果在磁盤驅(qū)動(dòng)器A檢出有系統(tǒng)參考磁盤,該系統(tǒng)參考磁盤會(huì)優(yōu)先于該系統(tǒng)分區(qū)的映象而被引導(dǎo)。在這些情形下,BIOS確保在引導(dǎo)程序裝入程序開始控制引導(dǎo)記錄之前保護(hù)裝置是不工作的。這樣,對(duì)防止對(duì)磁盤上包含主引導(dǎo)記錄的區(qū)域的存取,BIOS映象和系統(tǒng)參考磁盤映象這時(shí)的保護(hù)裝置是無效的。BIOS將引導(dǎo)系統(tǒng)參考磁盤映象或其磁盤上區(qū)域開放為軟件所存取的系統(tǒng)參考磁盤。
結(jié)合附圖,用以下書面說明解釋本發(fā)明的最顯著方面和其它特點(diǎn),附圖中

圖1說明個(gè)人計(jì)算機(jī)系統(tǒng)的切開視圖,示出與多個(gè)直接存取存儲(chǔ)器相連的系統(tǒng)板;
圖2示出圖1個(gè)人計(jì)算機(jī)系統(tǒng)方框圖;
圖3是包括在系統(tǒng)板上的ROM BIOS的存儲(chǔ)器映象;
圖4是說明用于從直接存取存儲(chǔ)器裝入BIOS映象的全過程的流程圖;
圖5說明主引導(dǎo)記錄的記錄格式;
圖6A是說明IBL例程操作的流程圖;
圖6B是說明從硬磁盤裝入BIOS映象的步驟的流程圖;
圖6C是說明從軟盤上裝入BIOS映象的步驟的流程圖;
圖6D是更詳細(xì)地說明檢驗(yàn)主引導(dǎo)記錄和系統(tǒng)板/處理器之間兼容性的流程圖;
圖7是說明主引導(dǎo)記錄可執(zhí)行代碼段的操作的詳細(xì)流程圖;
圖8是直接存取存儲(chǔ)器控制器的框圖;
圖9是說明磁盤控制器操作以保護(hù)存儲(chǔ)于磁盤驅(qū)動(dòng)器中的IBL媒介的流程圖;
圖10是說明保護(hù)BIOS映象的方法的流程圖;
圖11是描述確定何時(shí)從直接存取存儲(chǔ)器裝入系統(tǒng)參考磁盤的過程的流程圖;
圖12是說明引導(dǎo)程序裝載程序從直接存取存儲(chǔ)器引導(dǎo)包括系統(tǒng)參考磁盤映象的正確媒介的流程圖,圖13是說明對(duì)BIOS修改以使系統(tǒng)分區(qū)被當(dāng)作硬磁盤上活動(dòng)分區(qū)加以對(duì)待的流程圖。
以下是目前認(rèn)為執(zhí)行本發(fā)明的最好方式的詳細(xì)說明。該說明不用作限制而只是說明本發(fā)明一般原理,而本發(fā)明范圍是由所附權(quán)利要求書所明確限定。
現(xiàn)在參考附圖,具體見圖1,該圖示出了個(gè)人計(jì)算機(jī)系統(tǒng)10的剖視圖,該系統(tǒng)具有通過多個(gè)I/C槽連接到系統(tǒng)或底板24的多個(gè)DASD(直接存取存儲(chǔ)器)12-16。電源22以周知方式提供電力給系統(tǒng)10。系統(tǒng)板24包括在計(jì)算機(jī)指令控制下對(duì)信息進(jìn)行輸入、處理和輸出的系統(tǒng)處理器。
在使用方面,最初設(shè)計(jì)個(gè)人計(jì)算機(jī)系統(tǒng)10是將獨(dú)立計(jì)算能力提供給小組的用戶或單個(gè)用戶,并且對(duì)個(gè)人或小企業(yè)購(gòu)買而言價(jià)格低廉。在操作方面,系統(tǒng)處理器在操作系統(tǒng)控制下運(yùn)行,操作系統(tǒng)例如有IBM的OS/2操作系統(tǒng)或DOS。這種操作系統(tǒng)包括DASD 12-16和操作系統(tǒng)之間的BIOS接口。按功能分為模塊的BIOS部分存儲(chǔ)在系統(tǒng)板24上的ROM中,下文稱之為ROM-BIOS。BIOS提供硬件和操作系統(tǒng)軟件之間的接口以允許程序員或用戶對(duì)他們的機(jī)器偏程而無需具體設(shè)備方面很深的操作知識(shí)。例如,BIOS磁盤模塊允許程序員對(duì)磁盤驅(qū)動(dòng)器編程而無需磁盤驅(qū)動(dòng)器硬件的深入了解。這樣可將多個(gè)由不同公司設(shè)計(jì)并制造的磁盤驅(qū)動(dòng)器用于該系統(tǒng)。這不僅降低了系統(tǒng)10的成本,而且讓用戶可從多種磁盤驅(qū)動(dòng)器中選擇。
在說明上述結(jié)構(gòu)與本發(fā)明關(guān)系之前,可先回顧一下個(gè)人計(jì)算機(jī)系統(tǒng)10的一般操作的小結(jié)。參考圖2,示出個(gè)人計(jì)算機(jī)系統(tǒng)10的框圖。圖2示出系統(tǒng)板24的元件、系統(tǒng)板24到I/O槽18和個(gè)人計(jì)算機(jī)系統(tǒng)其它硬件的連接。位于底板24上的系統(tǒng)處理器26包括由局部總線28連接到存儲(chǔ)器控制器30的微處理器,所述存儲(chǔ)器控制器30進(jìn)而被連接到隨機(jī)存取存儲(chǔ)器(RAM)32。盡管可使用任何合適的微處理器,但一種適合的微處理器是Intel公司出售的80386。
盡管下文具體參考圖2的系統(tǒng)模塊圖對(duì)本發(fā)明作了說明,但從該說明的開頭就可以理解,按照本發(fā)明的裝置和方法可用于別的系統(tǒng)板硬件配置。例如,系統(tǒng)處理器可以是Intel 80286或80486微處理器。
由處理器可存取的是系統(tǒng)板標(biāo)識(shí)號(hào)(系統(tǒng)板ID)。對(duì)一板而言板ID是唯一的并標(biāo)識(shí)所用板類型。例如,板ID可硬連接以通過系統(tǒng)處理器26的I/O端口或使用開關(guān)加以讀出。另外,系統(tǒng)處理器26的另一I/O端口可用板上邏輯電路產(chǎn)生復(fù)位信號(hào)給磁盤控制器。例如,通過軟件尋址I/O端口并激活板邏輯產(chǎn)生復(fù)位信號(hào)的方法來啟動(dòng)復(fù)位信號(hào)。
局部總線28進(jìn)而通過總線控制器34連接到板24上的只讀存儲(chǔ)器(ROM)36。將附加非揮發(fā)存儲(chǔ)器(MVRAM)58通過進(jìn)一步連至總線控制器34的串/并端接口40連接到微處理器26。非揮發(fā)存儲(chǔ)器可以是帶后備電池以便當(dāng)電源從系統(tǒng)撤去時(shí)維持信息的CMOS。由于ROM通常裝在系統(tǒng)板上,存儲(chǔ)在ROM中的型號(hào)值和子型號(hào)值分別用于標(biāo)識(shí)系統(tǒng)處理器和系統(tǒng)板I/O配置。這樣,這些數(shù)值可物理上標(biāo)識(shí)處理器和電路板I/O配置。
NVRAM用于存儲(chǔ)系統(tǒng)配置數(shù)據(jù)。即,NVRAM將包含描述系統(tǒng)當(dāng)前配置的數(shù)值。例如,NVRAM包含說明硬盤或軟盤容量、顯示器類型、存儲(chǔ)量、時(shí)間、日期等的信息。此外,存儲(chǔ)在ROM的型號(hào)值和子型號(hào)值數(shù)據(jù)只要當(dāng)一個(gè)特定配置程序例如配置設(shè)置程序被執(zhí)行時(shí)使被復(fù)制到NVRAM。配置設(shè)置程序的作用在NVRAM中存儲(chǔ)系統(tǒng)配置的特征數(shù)據(jù)。這樣對(duì)正確配置的系統(tǒng)來說,NVRAM的型號(hào)值和子型號(hào)值數(shù)據(jù)將分別等于存儲(chǔ)于ROM的型號(hào)和子型號(hào)值。如果這些數(shù)值不相等便表示系統(tǒng)配置已修改。參考圖6D。結(jié)合裝載BIOS更詳細(xì)說明該特性。
參考圖2繼續(xù)討論,總線控制器34通過I/O板總線43進(jìn)一步耦合到I/O槽18、串/并接口40和外設(shè)控制器42。外設(shè)控制器42進(jìn)一步連接到鍵盤44,鼠標(biāo)器46,診斷板47和磁盤控制器64。除了NVRAM 58,串/并接口40進(jìn)一步連到串行口48和并行口50以輸入/輸出信息到打印機(jī),硬拷貝設(shè)備等。如先有技術(shù)所知,局部總線28也可連接到高速緩存控制器52高速緩沖存儲(chǔ)器68、協(xié)處理器54和DMA控制器56。
系統(tǒng)處理器26控制其內(nèi)部操作以及與個(gè)人計(jì)算機(jī)系統(tǒng)10的其它單元的接線。例如,示出系統(tǒng)處理器26被連接到小型計(jì)算機(jī)系統(tǒng)接口(SCSI)I/O卡60,該卡進(jìn)一步連接到諸如硬磁盤驅(qū)動(dòng)器62的DASD??梢岳斫夥荢CSI的磁盤驅(qū)動(dòng)器也可用作本發(fā)明的硬磁盤。除了硬磁盤62,系統(tǒng)處理器26可與控制軟磁盤機(jī)66的軟磁盤控制器64接口。至于術(shù)語,也可理解術(shù)語“硬文件”是指硬磁盤驅(qū)動(dòng)器62而術(shù)語“軟磁盤”是指軟磁盤機(jī)66。
在本發(fā)明之前,ROM 36能夠包括所有BIOS代碼,該BIOS代碼用作操作系統(tǒng)與硬件設(shè)備的界面。然而,按照本發(fā)明的一個(gè)方面,使ROM36只存貯BIOS的一部分。在由系統(tǒng)處理器26執(zhí)行時(shí),該部分從硬磁盤62或軟盤66輸入BIOS的第二或剩余部分,下文也稱為BIOS映象。該BIOS映象覆蓋第一BIOS部分并成為常駐例如RAM 32的主存儲(chǔ)器的系統(tǒng)整體之一部分。一般可參考圖3-4說明ROM 36中存儲(chǔ)的BIOS(ROM-BIOS)的第一部分,更詳細(xì)的描述可參考圖6A-D。BIOS的第二部分(BIOS映象)可參考圖5加以說明,而BIOS映象的裝載參考圖7。從DASD裝載BIOS映象的另一好處是直接將BIOS裝入系統(tǒng)處理器的RAM 32中的能力。由于存取RAM比存取ROM要快得多,從而可獲得計(jì)算機(jī)系統(tǒng)處理速度的顯著改進(jìn)。另一額外優(yōu)點(diǎn)通過將系統(tǒng)實(shí)用程序存貯在DASD可獲得。在需要系統(tǒng)實(shí)用程序使用的條件時(shí),系統(tǒng)實(shí)用程序可自動(dòng)在DASD上被引用。
現(xiàn)在對(duì)ROM 36中BIOS操作和從硬磁盤或軟盤上裝載BIOS映象和系統(tǒng)參考軟盤映象的操作加以說明。一般,諸如ROM-BIOS的第一程序?qū)ο到y(tǒng)預(yù)校驗(yàn)并將BIOS主引導(dǎo)記錄裝入ROM。主引導(dǎo)記錄包括具有驗(yàn)證信息的數(shù)據(jù)段以及(作為裝入裝置)的、帶有可執(zhí)行代碼的代碼段??蓤?zhí)行代碼使用數(shù)據(jù)信息驗(yàn)證硬件兼容性和系統(tǒng)配置。在對(duì)硬件兼容性和系統(tǒng)配置測(cè)試之后,可執(zhí)行代碼將BIOS映象裝入RAM產(chǎn)生主存常駐程序。BIOS映象接在ROM-BIOS之后并裝載操作系統(tǒng)以開始機(jī)器操作。為清楚起見,主引導(dǎo)記錄的可執(zhí)行代碼段可稱為MBR代碼而數(shù)據(jù)段稱為MBR數(shù)據(jù)。
參考圖3,存儲(chǔ)器映象示出構(gòu)成ROM-BIOS的不同代碼模塊。ROM-BIOS包括加電自檢(POST)階段Ⅰ模塊70,初始BIOS裝載(IBL)例程模塊72,軟盤模塊74,硬文件模塊76、視頻模塊78、診斷面板模塊80和硬件兼容數(shù)據(jù)82。簡(jiǎn)言之,POST階段Ⅰ 70執(zhí)行系統(tǒng)預(yù)初始化及測(cè)試。IBL例程72判定是否從硬盤或軟盤裝入BIOS映象,校驗(yàn)兼容性并裝載主引導(dǎo)記錄。軟盤模塊74提供軟盤機(jī)的輸入/輸出功能。硬文件模塊76控制硬盤或類似設(shè)備的I/O。視頻模塊78控制進(jìn)一步連至視頻顯示器視頻I/O控制器的輸出功能。診斷面板模塊80提供對(duì)系統(tǒng)診斷顯示器的控制。硬件兼容性數(shù)據(jù)82包括如系統(tǒng)型號(hào)或子型號(hào)值,它們將參考圖5在下文加以說明。
參考圖4,示出將BIOS從硬盤或軟盤裝入系統(tǒng)的過程概觀。當(dāng)系統(tǒng)加電時(shí),系統(tǒng)處理器跳轉(zhuǎn)至POST階段Ⅰ入口點(diǎn),即步驟100處。POST階段Ⅰ在步驟102對(duì)系統(tǒng)初始化并只對(duì)那些需從所選PASD裝載BIOS映象的系統(tǒng)功能進(jìn)行測(cè)試。具體而言,POST階段Ⅰ對(duì)處理器/系統(tǒng)功能、診斷平面、存儲(chǔ)器子系統(tǒng)、中斷控制器,計(jì)時(shí)器、DMA子系統(tǒng),硬磁盤BIOS例程(硬文件模塊76)、和軟盤BIOS例程(軟磁盤模塊74)進(jìn)行初始化,如必須的話。
如POST階段Ⅰ對(duì)系統(tǒng)預(yù)初始條化之后,POST階段Ⅰ將系統(tǒng)處理器跳轉(zhuǎn)至包括在初始BIOS裝載模塊72的初始BIOS裝載(IBL)例程。IBL例程首先確定BIOS映象是否存儲(chǔ)在硬盤或可從軟盤裝入,其次,在步驟104從所選介質(zhì)(硬盤或軟盤)將主引導(dǎo)記錄裝入ROM。主引導(dǎo)記錄包括MBR數(shù)據(jù)和MBR代碼。MBR數(shù)據(jù)用于驗(yàn)證目的而執(zhí)行MBR代碼以裝載BIOS映象。IBL例程操作的詳細(xì)描述參考圖6A-D給出。
繼續(xù)參考圖4,在IBL例程將主引導(dǎo)記錄裝入RAM之后,系統(tǒng)處理器跳轉(zhuǎn)到MBR代碼開始地址并在步驟106開始執(zhí)行。MBR代碼執(zhí)行一系列驗(yàn)證測(cè)試以判定BIOS映象正確性以及驗(yàn)證系統(tǒng)的配置。為更好理解MBR代碼操作注意圖7,該圖較詳細(xì)描述了MBR代碼。根據(jù)這些有效性測(cè)試,MBR代碼將BIOS映象裝入RAM并在步驟108將控制傳到新裝的主存儲(chǔ)器中的BIOS映象。具體而言,將BIOS映象裝入以前被ROM-BIOS所占據(jù)的地址空間。即,如果ROM-BIOS地址為從E0000H到FFFFFH,則將BIOS映象裝入該RAM地址空間從而替代ROM-BIOS??刂苽鞯絇OST階段Ⅱ,該P(yáng)OST階段Ⅱ包括在新裝的BIOS映象中從而放棄ROM-BIOS。現(xiàn)在RAM中的POST階段Ⅱ?qū)κS嘞到y(tǒng)初始化并作測(cè)試以在步驟110-114裝載操作系統(tǒng)引導(dǎo)。在階段Ⅱ POST將控制傳送到操作系統(tǒng)之前,階段Ⅱ POST設(shè)置用于防止對(duì)裝有BIOS映象的硬盤分區(qū)的存取的保護(hù)裝置。然而,如檢測(cè)出錯(cuò)誤,階段Ⅱ POST能中止保護(hù)裝置工作并調(diào)用硬盤上系統(tǒng)參考軟盤映象中的系統(tǒng)實(shí)用程序。參考圖8-10更詳細(xì)說明該保護(hù)過程。注意到在熱啟動(dòng)期間,處理器跳轉(zhuǎn)到步驟108,越過步驟100-106。
為清楚起見,此時(shí)說明主引導(dǎo)記錄格式的表示是適當(dāng)?shù)?。參考圖5,該圖示出了主引導(dǎo)記錄。該引導(dǎo)記錄包括可執(zhí)行代碼段120和數(shù)據(jù)段122-138。MBR代碼120包括DASD相關(guān)代碼,用于驗(yàn)證ROM-BIOS的標(biāo)識(shí)、檢查IBL引導(dǎo)記錄與該系統(tǒng)兼容、驗(yàn)證系統(tǒng)配置以及從所選的DASD(硬盤或軟磁盤)。數(shù)據(jù)段122-138包括用于定義介質(zhì),識(shí)別并驗(yàn)證主引導(dǎo)記錄、定位BIOS映象并裝載BIOS映象的信息。
主引導(dǎo)記錄由引導(dǎo)記錄特征122所識(shí)別。該引導(dǎo)記錄特征122可以是記錄前三個(gè)字節(jié)中的唯一的位模式,例如字符串“ABC”。該主引導(dǎo)記錄的完整性可通過將校驗(yàn)和值132與裝載引導(dǎo)記錄時(shí)計(jì)算出的校驗(yàn)和值相比較來加以測(cè)試。數(shù)據(jù)段還包括至少一個(gè)兼容的系統(tǒng)板ID值134、兼容的型號(hào)和子型號(hào)值136。主引導(dǎo)記錄的系統(tǒng)板ID值確定主引導(dǎo)記錄對(duì)哪一個(gè)系統(tǒng)板是有效的。類似地,主引導(dǎo)記錄的型號(hào)和子型號(hào)數(shù)值分別定義了該主引導(dǎo)記錄對(duì)之有效的處理器和系統(tǒng)板的I/O配置。注意到引導(dǎo)記錄的特征字和校驗(yàn)和識(shí)別一有效的主引導(dǎo)記錄,而引導(dǎo)記錄的系統(tǒng)板ID、引導(dǎo)記錄的型號(hào)和引導(dǎo)記錄的子型號(hào)比較用于識(shí)別和該系統(tǒng)兼容的引導(dǎo)記錄并判定該系統(tǒng)配置是否有效。另一數(shù)值引導(dǎo)記錄模式124用于判定ROM-BIOS的有效性。該引導(dǎo)記錄模式124與ROM中存儲(chǔ)的相應(yīng)模式值相比較。如兩值相配,則指出有效ROM-BIOS已啟動(dòng)從所選介質(zhì)中BIOS映象的裝載。
以下描述進(jìn)一步詳細(xì)地說明了主引導(dǎo)記錄中的每一數(shù)值及其功能MBR標(biāo)識(shí)符(122)IBL引導(dǎo)記錄的前3字節(jié)可由諸如“ABC”的字符組成。該特征字可用于標(biāo)識(shí)一引導(dǎo)記錄。
MBR代碼段(120)該代碼通過比較相應(yīng)的系統(tǒng)板I/O和型號(hào)/子型號(hào)值來檢證引導(dǎo)記錄與系統(tǒng)板及處理器的兼容性。如這些值匹配,則從所選介質(zhì)將BIOS映象裝入系統(tǒng)RAM。如果系統(tǒng)映象(裝入存儲(chǔ)器的BIOS映象)校驗(yàn)和有效并且未出現(xiàn)介質(zhì)裝載錯(cuò)誤,則MBR代碼則將控制轉(zhuǎn)到系統(tǒng)映象的POST階段Ⅱ例程。
MBR模式(124)IBL引導(dǎo)記錄數(shù)據(jù)段的第一個(gè)域包括諸如字符串“ROM-BIOS 1990”的一個(gè)模式。該字符串用于通過將該引導(dǎo)模式與ROM存儲(chǔ)的相應(yīng)數(shù)值(ROM模式)相比來驗(yàn)證ROM-BIOS有效。
MBR版本數(shù)據(jù)(126)主引導(dǎo)記錄包括為更新實(shí)用程序所用的版本數(shù)據(jù)。
系統(tǒng)分區(qū)指針(128)數(shù)據(jù)段包含為第Ⅱ階段POST所用的指向介質(zhì)系統(tǒng)分區(qū)區(qū)域起始的介質(zhì)指針。在IBL軟磁盤中,該指針為磁道-磁頭-扇區(qū)格式,在硬磁盤中,該指針為相對(duì)塊地址(RBA)格式。
系統(tǒng)分區(qū)類型(130)該系統(tǒng)分區(qū)類型指出介質(zhì)系統(tǒng)分區(qū)的結(jié)構(gòu)。有三種系統(tǒng)分區(qū)結(jié)構(gòu)完全的,最小的和不存在的。完全系統(tǒng)分區(qū)除了BIOS映象和主引導(dǎo)記錄還包含設(shè)置(Setup)實(shí)用程序和診斷程序。最小系統(tǒng)分區(qū)只含有BIOS映象和主引導(dǎo)記錄。當(dāng)出現(xiàn)系統(tǒng)設(shè)有對(duì)帶IBL映象的硬文件存取入口的場(chǎng)合,系統(tǒng)分區(qū)類型指出為不存在。在該場(chǎng)合,IBL來自軟磁盤。這三種系統(tǒng)分區(qū)類型允許有該系統(tǒng)分區(qū)占據(jù)介質(zhì)上多少空間的靈活性。
校驗(yàn)和數(shù)值(132)初始化該數(shù)據(jù)段的校驗(yàn)和數(shù)值以便為主引導(dǎo)記錄代碼的記錄長(zhǎng)度數(shù)值(1.5K字節(jié))產(chǎn)生有效校驗(yàn)和。
MBR系統(tǒng)板ID數(shù)值(134)數(shù)據(jù)段包括諸如定義兼容系統(tǒng)板ID的字串的一個(gè)數(shù)值。每個(gè)字由16位系統(tǒng)板ID構(gòu)成而該字串由零值字結(jié)束。如果一個(gè)系統(tǒng)的系統(tǒng)板ID與主引導(dǎo)記錄中系統(tǒng)板ID值匹配,例如該串中的一個(gè)字,則該IBL介質(zhì)映象與系統(tǒng)板相兼容。如果系統(tǒng)板ID不與該串中任何字匹配,則IBL介質(zhì)映象與系統(tǒng)板不匹配。
MBR型號(hào)和子型號(hào)值(136)該數(shù)據(jù)段包括一些數(shù)值,例如定義兼容處理器的字串。每個(gè)字由型號(hào)和子型號(hào)值構(gòu)成,而串由零值字結(jié)束。如果系統(tǒng)的型號(hào)和子型號(hào)值(存儲(chǔ)于ROM中)與串中一個(gè)字相匹配,則IBL介質(zhì)映象與系統(tǒng)處理器兼容。如果ROM型號(hào)和ROM子型號(hào)值不與串中任何字匹配,則IBL介質(zhì)映象與系統(tǒng)處理器不匹配。
MRB映象長(zhǎng)度(138)IBL映象長(zhǎng)度初始化為介質(zhì)映象塊的個(gè)數(shù)。換言之,如果將BIOS映象分解為四個(gè)塊,則央象長(zhǎng)度為4,指出有4個(gè)塊指針/長(zhǎng)度域。通常將該長(zhǎng)度設(shè)置為1,因?yàn)榻橘|(zhì)映象為一連續(xù)128K的塊。MBR介質(zhì)扇區(qū)大小(138)該字?jǐn)?shù)值初始化為每扇區(qū)字節(jié)數(shù)的介質(zhì)扇區(qū)大小。
介質(zhì)映象塊指針(138)介質(zhì)映象塊指針定位介質(zhì)中的系統(tǒng)映象塊。一般而言,由于介質(zhì)映象作為一連續(xù)塊存儲(chǔ)故只有一個(gè)指針。在IBL軟磁盤中,這些指針為磁道-磁頭-扇區(qū)格式,而在硬磁盤中指針為相對(duì)塊地址格式。
介質(zhì)是映象塊長(zhǎng)度(138)介質(zhì)映象塊長(zhǎng)度指出相應(yīng)映象塊指針定位的塊的大小(以扇區(qū)計(jì))。在包括BASIC空間的128K連續(xù)介質(zhì)映象場(chǎng)合下,該域設(shè)置為256,表示BIOS映象塊占用起始于介質(zhì)映象塊指針單元的256個(gè)扇區(qū)(512字節(jié)/扇區(qū))。
參考圖6A-D,示出IBL例程操作的詳細(xì)流程圖。在一般情況下,IBL例程從系統(tǒng)硬磁盤中將主引導(dǎo)記錄裝載到RAM的特定地址中,然后使系統(tǒng)處理器轉(zhuǎn)向開始執(zhí)行主引導(dǎo)記錄的代碼段。該IBL例程也包含軟磁盤缺席方式即主引導(dǎo)記錄從軟磁盤裝入的配置。然而,如果該系統(tǒng)在系統(tǒng)硬磁盤中包含IBL介質(zhì)并在NVRAM存在有效命令字則IBL例程不許執(zhí)行軟磁盤缺席方式。用戶具有NVRAM命令字設(shè)置的選擇。防止執(zhí)行軟磁盤缺席是為防止從軟磁盤裝入非法BIOS映象。換言之,軟磁盤缺席方式只用于系統(tǒng)固定磁盤不能運(yùn)行并且用戶已指出從軟磁盤裝入的要求(通過不設(shè)置命令字)的場(chǎng)合。如果IBL例程不能從任一種介質(zhì)裝入主引導(dǎo)記錄,則產(chǎn)生錯(cuò)誤信息而系統(tǒng)停止。
參考圖6A,在正常情況下,系統(tǒng)包含系統(tǒng)硬磁盤,IBL例程在步驟150初始化。為說明起見,假定硬磁盤被配置為個(gè)人計(jì)算機(jī)系統(tǒng)的驅(qū)動(dòng)器C。同樣,假設(shè)驅(qū)動(dòng)器A指定為軟磁盤驅(qū)動(dòng)器。然后IBL例程在步驟152檢查驅(qū)動(dòng)器C判定是否包含IBL介質(zhì)。請(qǐng)注意圖6,詳細(xì)說明該過程。IBL例程從硬磁盤最后三個(gè)扇區(qū)開始讀入并繼續(xù)讀操作,遞減介質(zhì)指針,進(jìn)行99個(gè)扇區(qū)或直至找到有效主引導(dǎo)記錄。如找到主引導(dǎo)記錄,在步驟156檢驗(yàn)系統(tǒng)板和處理器兼容性。如果系統(tǒng)板或處理器不兼容,則在步驟158報(bào)告一個(gè)錯(cuò)誤。回過來看步驟152,如果在硬磁盤(原始硬文件)的最后99扇區(qū)中未找到主引導(dǎo)記錄,則在步驟154報(bào)告一錯(cuò)誤。
回到步驟156,如找到主引導(dǎo)記錄,執(zhí)行一串有效性檢驗(yàn)以判定主引導(dǎo)記錄是否與計(jì)算機(jī)系統(tǒng)兼容。此外,檢查該系統(tǒng)的配置。再來看更詳細(xì)說明該過程的圖6D。如果引導(dǎo)記錄與系統(tǒng)板ID、型號(hào)和子型號(hào)相兼容,并且系統(tǒng)配置未發(fā)生變化,則在步驟160裝入主引導(dǎo)記錄并執(zhí)行該主引導(dǎo)記錄的代碼段。
回到步驟154和158,如在從硬磁盤裝入主引導(dǎo)記錄時(shí)出錯(cuò)或者硬磁盤不能用,則IBL例程在步驟162判定有效命令字是否包括在NVRAM中。該命令字判定該BIOS映象是否能從軟磁盤裝入。注意到命令字只有當(dāng)用戶運(yùn)行一組特征實(shí)用程序而安裝后才存在。如將命令字安裝在NVRAM中,則在步驟164防止從軟磁盤裝入BIOS映象。這可讓用戶通過只用硬磁盤上的BIOS映象來裝載系統(tǒng)來確保系統(tǒng)操作完整性。命令字可取存在于NVRAM中一字符中之形式。
參考步驟162,如果NVRAM中有效命令字不存在,則允許從軟磁盤裝載BIOS映象,IBL例程在步驟166初始化軟磁盤子系統(tǒng)。然后IBL例程在步驟168判定驅(qū)動(dòng)器A是否包括軟磁盤的IBL介質(zhì)。如果驅(qū)動(dòng)器A不包括IBL介質(zhì),則在步驟170產(chǎn)生一錯(cuò)誤通知用戶已將無效的軟磁盤插入該驅(qū)動(dòng)器。然后系統(tǒng)在步驟172停止。注意到用于更詳細(xì)討論步驟168的圖6C。
回到步驟168,對(duì)驅(qū)動(dòng)器A作IBL介質(zhì)檢驗(yàn)后,在步驟160,將主引導(dǎo)記錄裝入RAM并執(zhí)行包括在主引導(dǎo)記錄中的代碼段。重要的是對(duì)軟磁盤而言IBL例程不包括硬磁盤系統(tǒng)所用的有效性檢驗(yàn)。不存在有效性檢驗(yàn)的原因是為從軟磁盤裝入非兼容IBL映象。例如,如將一新的處理器加到該系統(tǒng),則新的BIOS映象包括在軟磁盤中。由于在從硬磁盤裝入時(shí)新處理器會(huì)引起有效性錯(cuò)誤,則IBL便程通過從軟磁盤裝入BIOS映象而提供越過這些測(cè)試的能力。
扼要地說,通過系統(tǒng)的系統(tǒng)板ID和處理器型號(hào)/子型號(hào)值與引導(dǎo)記錄值的匹配來檢驗(yàn)主引導(dǎo)記錄與該系統(tǒng)的兼容性。對(duì)磁盤而言,IBL例程72首先進(jìn)行該檢測(cè),然后再由IBL引導(dǎo)記錄繼續(xù)進(jìn)行。做第一次檢驗(yàn)(IBL例程中)來確定該引導(dǎo)記錄與系統(tǒng)相兼容,第二次檢驗(yàn)(在引導(dǎo)記錄中)確保兼容的ROM將控制轉(zhuǎn)到引導(dǎo)記錄。注意到由于IBL例程已作兼容性檢驗(yàn),在磁盤引導(dǎo)記錄中所作檢驗(yàn)肯定不會(huì)失敗。相反,對(duì)軟磁盤不作第一兼容性檢驗(yàn)。只在軟磁盤引導(dǎo)記錄執(zhí)行期間檢驗(yàn)系統(tǒng)板/處理器兼容性。該方法允許今后的更改從參考軟磁盤裝載新的BIOS映象。
從圖6A的IBL例程的描述來看,說明轉(zhuǎn)到以上討論的有效性測(cè)試的全面、完整的理解。參考較6B,示出圖6A步驟152的詳細(xì)流程圖,以判定驅(qū)動(dòng)器C上有無有效主引導(dǎo)記錄。通過得到驅(qū)動(dòng)器參數(shù)開始該過程,使IBL例程在步驟200存取驅(qū)動(dòng)器C。在步驟202,將IBL裝載單元設(shè)置為磁盤上最后三個(gè)扇區(qū)(最后三個(gè)扇區(qū)通常含主引導(dǎo)記錄)。在步驟204,將指示打算從磁盤讀主引導(dǎo)記錄的個(gè)數(shù)的裝載計(jì)數(shù)設(shè)置為1。在步驟206,從磁盤IBL裝載單元讀出三個(gè)扇區(qū)。在步驟208到210,檢測(cè)任何磁盤驅(qū)動(dòng)器錯(cuò)誤并且當(dāng)出現(xiàn)磁盤驅(qū)動(dòng)器讀錯(cuò)誤時(shí)加以報(bào)告。在步驟212-214,該過程返回并給出錯(cuò)誤指示。
參考步驟208,如未出現(xiàn)驅(qū)動(dòng)器錯(cuò)誤,則在步驟216掃描磁盤記錄以尋找主引導(dǎo)記錄特征字。將引導(dǎo)記錄特征字,例如字符“ABC”與磁盤記錄前3字節(jié)相比較。如果該磁盤記錄沒有有效引導(dǎo)記錄特征字(字符“ABC”)并且從裝入存儲(chǔ)器的磁盤記錄計(jì)算出校驗(yàn)和等于引導(dǎo)記錄校驗(yàn)和,則在步驟218指示磁盤記錄為無錯(cuò)誤的有效引導(dǎo)記錄。然后該過程在步驟214處返回。
回到步驟216,如果引導(dǎo)記錄特征字或校驗(yàn)和是無效的,則在步驟220將裝載計(jì)數(shù)遞增1。然后在步驟222將該負(fù)載計(jì)數(shù)與諸如99的預(yù)定計(jì)數(shù)相比較。如果99次讀引導(dǎo)記錄都未成功,則指出一錯(cuò)誤,該過程返回(步驟224、212和214)。如已出現(xiàn)少于99次讀引導(dǎo)記錄企圖,則在步驟226和206將IBL裝載單元遞減1而從新的裝載單元讀三個(gè)新扇區(qū)。這樣,如果有效IBL引導(dǎo)記錄不能從最后99扇區(qū)(等價(jià)于33個(gè)副本)裝載,則設(shè)置出錯(cuò)狀態(tài)并將控制返回到IBL例程。
參考圖6C,示出用于裝載驅(qū)動(dòng)器A軟磁盤主引導(dǎo)記錄的詳細(xì)流程圖。首先在步驟230檢索存取驅(qū)動(dòng)器A的軟磁盤驅(qū)動(dòng)參數(shù)。在步驟232將IBL裝載單元設(shè)置為軟磁盤(柱面、磁頭和扇區(qū)格式)的最后三個(gè)扇區(qū)。在步驟234讀該最后3個(gè)扇區(qū)。在步驟236-238,如檢測(cè)到軟磁盤驅(qū)動(dòng)器出錯(cuò)則指出一錯(cuò)誤。在步驟240-242,設(shè)置出錯(cuò)條件并將控制返回到IBL例程。
回到步驟236,如未檢測(cè)到驅(qū)動(dòng)器錯(cuò)誤,在步驟244檢查軟磁盤的引導(dǎo)記錄特征字并計(jì)算校驗(yàn)和字。在步驟244、246、240和242中,如引導(dǎo)記錄特征字丟失或校驗(yàn)和無效,則指出一錯(cuò)誤并將控制返回IBL例程。在步驟248和242,如果檢測(cè)到有效引導(dǎo)記錄特征字和有效校驗(yàn)和,則設(shè)置一指示并將控制返回到IBL例程。注意到在軟磁盤裝載時(shí)IBL例程并不象在硬磁盤裝載時(shí)那樣搜索介質(zhì)。因此在軟磁盤裝載時(shí),必須將IBL介質(zhì)存儲(chǔ)在軟磁盤的特定位置。
最后,圖6D示出IBL例程如何測(cè)試系統(tǒng)板和處理器兼容性以及正確系統(tǒng)配置。在步驟260,通過將主引導(dǎo)記錄系統(tǒng)板ID值與由系統(tǒng)處理器讀入的系統(tǒng)的系統(tǒng)板ID相比較來檢驗(yàn)主引導(dǎo)記錄與系統(tǒng)板的兼容性。如果該系統(tǒng)板ID不匹配引導(dǎo)記錄系統(tǒng)板ID值,這便指出該主引導(dǎo)記錄與該系統(tǒng)板不兼容。步驟262、264和266指出一錯(cuò)誤并將控制返回到IBL例程。
如果主引導(dǎo)記錄和該系統(tǒng)板兼容,在步驟268校驗(yàn)主引導(dǎo)記錄與處理器兼容性。將該引導(dǎo)記錄型號(hào)值和子型號(hào)值分別與存儲(chǔ)在ROM的型號(hào)值和子型號(hào)值相比較。不匹配指出可能插入一新處理器而該引導(dǎo)記錄與該新處理器不兼容。步驟270,264和266指出一錯(cuò)誤,將控制返回到IBL例程。如果主引導(dǎo)記錄與系統(tǒng)板和處理器兼容,在步驟272進(jìn)行檢驗(yàn)以判定NVRAM是否正確。在步驟274和266,如NVRAM不正確,指示出錯(cuò)將控制返回到IBL例程。在步驟276,如果NVRAM正確,則檢驗(yàn)系統(tǒng)配置。如果存儲(chǔ)在NVRAM的型號(hào)值和子型號(hào)值與存儲(chǔ)在ROM中的型號(hào)值和子型號(hào)值不匹配則指出系統(tǒng)配置改變了。注意到該最后比較只指出配置錯(cuò)誤。如指出一配置錯(cuò)誤,則為用戶產(chǎn)生一錯(cuò)誤。該錯(cuò)誤通知用戶自運(yùn)行上一次配置設(shè)置程序后系統(tǒng)配置了發(fā)生變化。在步驟278、264和266通知用戶配置變化以及將控制送回IBL例程。該錯(cuò)誤本身并非致命的,通知用戶須執(zhí)行配置設(shè)置程序(配置程序)?;氐讲襟E276,在步驟276、274和266,如果系統(tǒng)型號(hào)/子型號(hào)值匹配則設(shè)置兼容性指示而該例程返回。這樣在判定系統(tǒng)配置是否已修改的同時(shí)測(cè)試主引導(dǎo)記錄和該系統(tǒng)之間的兼容性。
在IBL例程將主引導(dǎo)記錄裝入RAM后,將控制傳到MBR代碼起始地址。參考圖7,在步驟300,主引導(dǎo)記錄的可執(zhí)行代碼段首先驗(yàn)證引導(dǎo)記錄模式和ROM模式。在步驟302,305,如果主引導(dǎo)記錄的模式與ROM中模式不匹配,則產(chǎn)生一錯(cuò)誤,系統(tǒng)停止。ROM和引導(dǎo)記錄模式之間的相等檢查確保了從磁盤或軟磁盤裝入的主引導(dǎo)記錄與系統(tǒng)板上ROM相兼容?;氐讲襟E300,如果ROM中模式與引導(dǎo)記錄中模式匹配,在步驟304將MRB代碼與系統(tǒng)板ID值、型號(hào)與子型號(hào)值與相應(yīng)主引導(dǎo)記錄數(shù)值相比。該過程已參考圖6D詳細(xì)說明。如該數(shù)值不匹配,主引導(dǎo)記錄與系統(tǒng)板和處理器不兼容,或系統(tǒng)配置已改變?cè)诓襟E306產(chǎn)生一錯(cuò)誤。當(dāng)IBL記錄與系統(tǒng)板型號(hào)或子型號(hào)值不兼容時(shí),系統(tǒng)停機(jī)。
回到步驟304,如果系統(tǒng)板ID值、型號(hào)和子型號(hào)與相應(yīng)主引導(dǎo)記錄數(shù)值匹配,則在步驟308,MBR代碼從所選介質(zhì)將BIOS映象裝入系統(tǒng)RAM。如在步驟310讀數(shù)據(jù)時(shí)出現(xiàn)介質(zhì)裝載錯(cuò)誤,則在步驟312和315產(chǎn)生一錯(cuò)誤并使系統(tǒng)停機(jī)。再回到步驟310,如未出現(xiàn)介質(zhì)裝載錯(cuò)誤,則在步驟312為BIOS映象計(jì)算校驗(yàn)和。如校驗(yàn)和無效,則在步驟318和308產(chǎn)生一錯(cuò)誤并系統(tǒng)停機(jī)?;氐讲襟E316,如校驗(yàn)和有效,在步驟320保存系統(tǒng)分區(qū)指針,在步驟302將系統(tǒng)處理器跳轉(zhuǎn)到POST階段Ⅱ以執(zhí)行系統(tǒng)裝載。
參考圖8,示出用于控制磁盤驅(qū)動(dòng)器351和系統(tǒng)處理器之間數(shù)據(jù)傳送的智能磁盤控制器350的方框圖??梢岳斫庠摯疟P控制器350可裝入適配卡60而磁盤驅(qū)動(dòng)器器351可包括在圖2的驅(qū)動(dòng)器62中。適合的磁盤控制器350是IBM公司制造的零件號(hào)為33F8740的SCSI適配器。即,磁盤控制器350包括在其自身內(nèi)部時(shí)鐘下工作的微處理器352,用于控制其內(nèi)部操作及與磁盤子系統(tǒng)和系統(tǒng)處理器其它元件的接口。由指令總線354將微處理器352耦合到存儲(chǔ)指令的只讀存儲(chǔ)器(ROM)356,其中存儲(chǔ)的指令是磁盤存儲(chǔ)器350執(zhí)行用以對(duì)磁盤驅(qū)動(dòng)器和系統(tǒng)處理器之間數(shù)據(jù)傳送加以處理和控制的。也可以理解,磁盤控制器350可包括耦合到微處理器352用于數(shù)據(jù)存儲(chǔ)或檢索的隨機(jī)存取存儲(chǔ)器。磁盤控制器350和系統(tǒng)處理器之間數(shù)據(jù)傳送由數(shù)據(jù)總線358和指令總線360實(shí)現(xiàn)。線路362上的復(fù)位信號(hào)在加電或系統(tǒng)復(fù)位期間復(fù)位或初始化磁盤控制器邏輯電路。該復(fù)位信號(hào)由系統(tǒng)板邏輯電路產(chǎn)生并可采取如在“IBM PERSONAL SYSTEM/2 Seminar Proceeding”(卷5,號(hào)3,1987年5月由IBM公司Entry System division發(fā)表)中所述的IBM微通道結(jié)構(gòu)提供的通道復(fù)位信號(hào)的形式。而且,可通過BIOS將特定的位配置輸出到其中連接有系統(tǒng)板邏輯的系統(tǒng)處理器的I/O端口來有效地啟動(dòng)該復(fù)位信號(hào)。
如已周知,微處理器352提供所有的接口和時(shí)序信號(hào)以執(zhí)行磁盤驅(qū)動(dòng)器和系統(tǒng)處理器之間數(shù)據(jù)的有效傳送。為清楚起見,只示出對(duì)理解本發(fā)明重要的那些信號(hào)??梢岳斫?,其它信號(hào)和線路例如數(shù)據(jù)總線364由于對(duì)本發(fā)明的理解并不重要,因此盡管使用但未在此示出。進(jìn)一步可以理解,參考圖9只說明那些為理解本發(fā)明重要的、存儲(chǔ)在ROM356中的那些程序或例程。
現(xiàn)參見圖9,示出由存儲(chǔ)在ROM 356例程的操作執(zhí)行的磁盤控制器的讀、寫和保護(hù)功能的流程圖。運(yùn)行時(shí),磁盤指令由系統(tǒng)處理器發(fā)出并傳送到磁盤控制器350。在步驟400,磁盤控制器接收并解釋這些指令,以執(zhí)行指定操作。在步驟402,磁盤控制器先判定是否為寫操作,即將來自系統(tǒng)處理器的數(shù)據(jù)存儲(chǔ)在磁盤驅(qū)動(dòng)器硬件上。如該指令是寫指令,則從系統(tǒng)處理器以相對(duì)塊地址(RBA)格式接收數(shù)據(jù)。
在繼續(xù)以上討論之前,簡(jiǎn)單說明用于大容量存儲(chǔ)器例如磁盤的相對(duì)塊地址格式具有益處的。RBA是以順序數(shù)對(duì)預(yù)定大小的塊尋址大容量存儲(chǔ)器中數(shù)據(jù)的一種方案,該順序數(shù)即各自對(duì)連續(xù)數(shù)據(jù)塊的限定。例如,假設(shè)塊大小為1024字節(jié),對(duì)10兆字節(jié)磁盤,系統(tǒng)處理器可近似尋址10,000個(gè)塊。即,系統(tǒng)處理器能以N塊尋址磁盤介質(zhì),其中N的范圍從0到9,999。業(yè)已發(fā)現(xiàn),使用RBA為本發(fā)明個(gè)人計(jì)算機(jī)系統(tǒng)所用操作系統(tǒng)類型的大容量存儲(chǔ)器提供了非常快而有效的方法。
為方便起見,引入以下假設(shè),首先,該磁盤可支持全部的N塊;其次,系統(tǒng)處理器傳送塊K,其中K在于或等于0并且小于或等于(N-1);第三,磁盤控制器能設(shè)置最大可尋址塊M,當(dāng)K小于M時(shí)允許存取數(shù)據(jù)塊,當(dāng)K大于或等于M時(shí)不許存取數(shù)據(jù)塊。因此,將M設(shè)置成小于N,從M到N-1塊中產(chǎn)生磁盤上可保護(hù)區(qū)域。該特性使IBL介質(zhì)如下所述加以保護(hù)。
繼續(xù)對(duì)圖9的討論,在步驟404以RBA格式從磁盤接收數(shù)據(jù)。然后在步驟406由磁盤控制器判定接收的塊K是否小于最大塊數(shù)值M,其中M小于N。如果K小于M,則在步驟408由磁盤控制器將RBA格式轉(zhuǎn)換為大容量存儲(chǔ)器的特殊格式例如硬磁盤的柱面-磁頭-扇區(qū)(CHS)格式。例如,使用查找表,磁盤控制器可將RBA地址變換為唯一的柱面磁頭-扇區(qū)位置。另一方法是使用變換公式來把RBA變換為CHS。例如,對(duì)具有一個(gè)磁頭、64柱面和96扇區(qū)的磁盤,磁頭=0、柱面=RBA/(96)的商,而扇區(qū)=RBA/(96)的余數(shù)。在將RBA格式變換為CHS格式后,在步驟410將數(shù)據(jù)寫到磁盤上變換的CHS單元中。在步驟412,磁盤控制器等待來自系統(tǒng)處理器的另一指令。
回到步驟406,如接收的RBA大于最大設(shè)置RBA值,則在步驟414拒絕存取。也就是,如果K大于或等于M,則不能將K塊寫到該磁盤。請(qǐng)注意到,如果將IBL介質(zhì)存儲(chǔ)在從M到N-1的塊中,則防止了對(duì)IBL介質(zhì)的寫操作。
回到步驟402,如果系統(tǒng)處理器指令不是寫指令,則在步驟416測(cè)試是否為讀指令。如該指令為讀指令,則在步驟418由系統(tǒng)處理器發(fā)送用于請(qǐng)求數(shù)據(jù)的RBA格式。該磁盤控制器然后便判定要求的RBA(K)是否小于最大設(shè)置RBA(M)。如果要求的RBA(K)小于最大設(shè)置RBA(M),則在步驟422和424由磁盤控制器將RBA變換為正確的CHS格式并從磁盤讀數(shù)據(jù)。然后在步驟412將數(shù)據(jù)傳送到系統(tǒng)處理器。
回到步驟420,如接收到的RBA(K)大于或等于最大設(shè)置RBA(M),則在步驟426禁止存取。如果IBL質(zhì)存儲(chǔ)在M塊和(N-1)塊之間,禁止對(duì)該區(qū)域存取。注意到在此情況下,也禁止IBL介質(zhì)被復(fù)制。
回到步驟416,如該指令不是寫或讀指令,則在步驟428對(duì)設(shè)置最大RBA指令測(cè)試。該指令允許磁盤控制器在磁盤驅(qū)動(dòng)器硬件上產(chǎn)生可保護(hù)區(qū)或分區(qū)。該指令允許磁盤控制器在步驟430設(shè)置M在0和N塊之間。重要的是注意到當(dāng)磁盤控制器復(fù)位時(shí)(通過復(fù)位信號(hào))對(duì)M設(shè)置使得塊的最大個(gè)數(shù)是可利用的。即,當(dāng)磁盤控制器被復(fù)位時(shí),M=N?;旧现v,一旦復(fù)位磁盤控制器便取消對(duì)保護(hù)區(qū)的保護(hù)并允許存取該區(qū)域。但是,只要設(shè)置最大RBA指令一執(zhí)行,則允許復(fù)位或另一設(shè)置最大RBA指令存取該保護(hù)區(qū)。概念上講,最大RBA的設(shè)置被認(rèn)為是一壁壘,對(duì)高于該壁壘的區(qū)域阻止存取,而允許對(duì)低于該壁壘的區(qū)域存取。磁盤控制器在步驟412返回以等待另一指令。
回到步驟428,如該指令不是讀、寫或設(shè)置最大RBA指令,則在步驟432測(cè)試另一磁盤控制器指令并執(zhí)行。這些指令使用該設(shè)置最大RBA值但為簡(jiǎn)略起見,由于對(duì)理解本發(fā)明并不重要因此未予示出。然后磁盤控制器返回在步驟412等待另一指令。
現(xiàn)對(duì)前面討論的IBL介質(zhì)的裝載和保護(hù)的操作進(jìn)行說明。一般,無論由于冷啟動(dòng)(接通電源)或熱啟動(dòng)(Ctrl-Alt-Del),帶有IBL介質(zhì)的磁盤控制器復(fù)位。這使最大RBA(M)設(shè)置為N,即移去壁疊允許對(duì)IBL介質(zhì)的存取。這要求允許系統(tǒng)裝入IBL介質(zhì)以開始操作。IBL介質(zhì)一旦裝入并執(zhí)行之后,壁疊便又立起(設(shè)置最大RBA低于IBL介質(zhì))以防對(duì)存儲(chǔ)在磁盤中的IBL介質(zhì)的存取。
參考圖10,示出執(zhí)行IBL介質(zhì)保護(hù)的方框流圖。從步驟450通電狀態(tài)開始啟動(dòng)該系統(tǒng),在步驟452 BIOS啟動(dòng)系統(tǒng)板邏輯電路中的活動(dòng)以將復(fù)位狀態(tài)發(fā)送到磁盤控制器。該復(fù)位信號(hào)壁疊撤消并允許系統(tǒng)處理器對(duì)以前存儲(chǔ)在磁盤上從 塊到N塊區(qū)域中的IBL介質(zhì)的存取。在步驟454,系統(tǒng)如參考圖4-7所述那樣裝載IBL介質(zhì)。在步驟456,在IBL裝載期間,執(zhí)行通電自檢階段Ⅱ。POST階段Ⅱ的任務(wù)之一是執(zhí)行設(shè)置最大RBA指令,即在步驟458,最大RBA設(shè)置成IBL介質(zhì)的第一塊,指定該塊為M。M取決于前面說明的分區(qū)類型(無,部分或完全)。這實(shí)際設(shè)置了壁疊禁止對(duì)IBL介質(zhì)存取而允許存取該磁盤其它區(qū)域。然后在步驟460以正常方式引導(dǎo)操作系統(tǒng)。
如果系統(tǒng)從熱啟動(dòng)狀態(tài)例如Ctrl-Alt-Del被啟動(dòng),在步驟462和464,系統(tǒng)板通過通電自檢階段Ⅱ發(fā)命令復(fù)位磁盤控制器。這使壁疊取消。在此情況下,由于IBL介質(zhì)已在RAM中,則不再裝載IBL介質(zhì)。然而,而于消除了對(duì)IBL介質(zhì)的保護(hù),須在步驟456和458執(zhí)行通電自檢第Ⅱ階段以恢復(fù)壁壘。壁壘又豎起以保護(hù)IBL介質(zhì)并重新引導(dǎo)該系統(tǒng)。
通過以塊為單位尋址大容量存儲(chǔ)器和設(shè)置在正常操作期間系統(tǒng)可存取的最大塊來保護(hù)該IBL介質(zhì)。將這些塊中的IBL介質(zhì)相繼存儲(chǔ)在可存取最大塊和磁盤驅(qū)動(dòng)器支持的總塊數(shù)之間。發(fā)送到磁盤控制器的復(fù)位信號(hào)取消了允許系統(tǒng)尋址IBL介質(zhì)的可存取最大塊。在通電狀態(tài)或熱啟動(dòng)狀態(tài)時(shí)產(chǎn)生該復(fù)位信號(hào)以存取IBL介質(zhì),引導(dǎo)該系統(tǒng)。
現(xiàn)參考圖11,流程圖說明了通電自檢第二階段執(zhí)行的用以從硬磁盤62上系統(tǒng)分區(qū)裝載系統(tǒng)參考軟磁盤映象的過程。在引導(dǎo)諸如DOS或IBM的OS/2的操作系統(tǒng)之前,在步驟500 POST判定IBL介質(zhì)上存在的系統(tǒng)分區(qū)的類型。然后在步驟502,POST對(duì)硬磁盤62查詢最后塊地址的數(shù)值。然后在步驟504,POST調(diào)整作為最后塊地址得到的數(shù)值以計(jì)算出該系統(tǒng)分區(qū)的大小。這可通過從硬磁盤62的最后物理塊地址減去該系統(tǒng)分區(qū)的量來完成。在步驟506,POST保存作為最后邏輯塊地址的經(jīng)調(diào)整數(shù)值。這樣使POST提供BIOS一個(gè)從系統(tǒng)分區(qū)而不是在硬磁盤分區(qū)的起始處開始引導(dǎo)的機(jī)構(gòu)。參考圖13,對(duì)以上作更詳細(xì)討論。
參照?qǐng)D11繼續(xù)進(jìn)行,POST階段Ⅱ在步驟508檢查POST路徑旗標(biāo)的當(dāng)前內(nèi)容。POST路徑旗標(biāo)是POST用于記錄通過POST的路徑類型的一個(gè)機(jī)構(gòu)。例如,是初始通電路徑還是熱重引導(dǎo)路徑。熱重啟動(dòng)通常通過Ctrl-Alt-Del擊鍵序列啟動(dòng)。如果POST路徑旗標(biāo)的當(dāng)前值指出越過系統(tǒng)分區(qū)引導(dǎo)過程,在步驟510,POST階段Ⅱ設(shè)置系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)為假,指出不引導(dǎo)該系統(tǒng)分區(qū)。然后在步驟511,POST階段Ⅱ通過指示BIOS根據(jù)步驟506計(jì)算出的數(shù)值起動(dòng)引導(dǎo)硬磁盤的保護(hù)裝置。即將壁壘置為步驟506計(jì)算出的地址指針。這樣來保護(hù)系統(tǒng)分區(qū)不會(huì)由于疏忽而損壞。此后,在步驟512 POST階段Ⅱ調(diào)用引導(dǎo)裝入程序INT19H來啟動(dòng)操作系統(tǒng)引導(dǎo)。
回到步驟508,如果POST路徑旗標(biāo)未指出系統(tǒng)分區(qū)引導(dǎo)序列的越過,則在步驟520,對(duì)熱引導(dǎo)路徑和指出鍵入Ctrl-Alt-Del鍵序列的POST檢查POST路徑旗標(biāo)。如果路徑旗標(biāo)未指出熱引導(dǎo),則在步驟522,POST階段Ⅱ判定在冷啟動(dòng)執(zhí)行期間是否檢測(cè)出錯(cuò)誤。如未檢出錯(cuò)誤,則在步驟510由POST階段Ⅱ設(shè)置指出不引導(dǎo)系統(tǒng)分區(qū)的旗標(biāo)。通過發(fā)指令BIOS起動(dòng)步驟511所示保護(hù)裝置,POST階段Ⅱ保護(hù)系統(tǒng)分區(qū),接著在步驟512調(diào)用引導(dǎo)裝入程序。
再回過來參見步驟522,如POST階段Ⅱ在其執(zhí)行時(shí)檢測(cè)到任何錯(cuò)誤,則在步驟526設(shè)置系統(tǒng)引導(dǎo)分區(qū)旗標(biāo)為真。POST階段Ⅱ通過發(fā)指令給BIOS啟動(dòng)步驟511所示保護(hù)裝置來保護(hù)系統(tǒng)分區(qū)。此后,POST階段Ⅱ調(diào)用引導(dǎo)裝入程序512啟動(dòng)操作系統(tǒng)引導(dǎo)。
參考步驟520,如進(jìn)入Ctrl-Alt-Del鍵序列,POST階段Ⅱ檢查用戶是否已輸入擊鍵序列。該Ctrl-Alt-Del擊鍵指令調(diào)用系統(tǒng)參考軟磁盤映象524的引導(dǎo)。該序列允許用戶從系統(tǒng)分區(qū)執(zhí)行引導(dǎo)過程。如果不是,通過發(fā)指令給BIOS啟動(dòng)步驟511所示保護(hù)裝置,POST階段Ⅱ設(shè)置系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)為假并保護(hù)該系統(tǒng)分區(qū)。此后,POST階段Ⅱ在步驟512調(diào)用引導(dǎo)裝入程序INT 19H,以啟動(dòng)操作系統(tǒng)引導(dǎo)。
回過來參考步驟524,如果POST階段Ⅱ檢測(cè)到用戶輸入的Ctrl-Alt-Del擊鍵序列,則在步驟526設(shè)置系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)為真,指出引導(dǎo)系統(tǒng)分區(qū)。POST階段Ⅱ通過發(fā)送指令給BIOS啟動(dòng)步驟511所示保護(hù)裝置來保護(hù)系統(tǒng)分區(qū),此后在步驟512調(diào)用引導(dǎo)裝入程序。
此時(shí),如果出現(xiàn)正常引導(dǎo)序列或系統(tǒng)分區(qū)的系統(tǒng)參考軟磁盤映象的引導(dǎo),則已建立POST階段Ⅱ。同樣,POST形成了系統(tǒng)劃分區(qū)的起始如同邏輯可引導(dǎo)分區(qū),該P(yáng)OST啟動(dòng)保護(hù)裝置,以防被認(rèn)為不可靠的程序?qū)ο到y(tǒng)分區(qū)的存取。邏輯可引導(dǎo)分區(qū)對(duì)POST來說作為磁盤和第一分區(qū)出現(xiàn),因此是可引導(dǎo)的。POST階段Ⅱ調(diào)用引導(dǎo)裝入程序。
引導(dǎo)裝入程序用于選擇正確引導(dǎo)裝置并從有效分區(qū)中讀入引導(dǎo)記錄。引導(dǎo)驅(qū)動(dòng)器優(yōu)先級(jí)是第一軟磁盤驅(qū)動(dòng)器,接著是第一硬磁盤例如引導(dǎo)硬磁盤。通過使用系統(tǒng)參考軟磁盤上實(shí)用程序或系統(tǒng)分區(qū)中系統(tǒng)參考軟磁盤映象可改變上述省缺的引導(dǎo)設(shè)備序列的優(yōu)先級(jí)。引導(dǎo)裝入程序可將控制轉(zhuǎn)給引導(dǎo)記錄中的可執(zhí)行代碼。接著引導(dǎo)所要求的操作系統(tǒng)或控制程序。
繼續(xù)對(duì)圖12的討論,已示出說明引導(dǎo)裝入程序INT 19H內(nèi)部邏輯流的流程圖。步驟600開始,引導(dǎo)裝入程序檢查第一軟磁盤驅(qū)動(dòng)器中系統(tǒng)參考軟磁盤的實(shí)際存在。第一軟磁盤驅(qū)動(dòng)器中系統(tǒng)參考軟磁盤的存在將使所有其它參考軟磁盤被跳過。換言之,調(diào)用系統(tǒng)參考軟磁盤使得系統(tǒng)分區(qū)中系統(tǒng)參考軟磁盤映象,或當(dāng)檢測(cè)出POST錯(cuò)誤時(shí)由用戶直接引導(dǎo)該操作系統(tǒng)的請(qǐng)求被跳過。接下來,在步驟620檢查系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)。由于存在系統(tǒng)參考軟磁盤,則系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)為假。
由于系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)為假,在步驟630,引導(dǎo)裝入程序判定是否需要進(jìn)行參考軟磁盤引導(dǎo)。由于在第一軟磁盤驅(qū)動(dòng)器中存在系統(tǒng)參考軟磁盤,在步驟640引導(dǎo)裝入程序首先 指令BIOS給解除系統(tǒng)分區(qū)的保護(hù)裝置。然后在步驟650,通過使用步驟506計(jì)算出的數(shù)值作為邏輯塊開始地址,引導(dǎo)裝入程序建立作為引導(dǎo)硬磁盤來源的系統(tǒng)分區(qū)。該系統(tǒng)分區(qū)未被保護(hù)。在步驟660,該引導(dǎo)裝入程序從系統(tǒng)參考軟磁盤取引導(dǎo)記錄并將控制傳到該記錄。然后該引導(dǎo)記錄引導(dǎo)系統(tǒng)參考軟磁盤。例如,用戶可將新型的I/O適配器加到該系統(tǒng)并將其適配器說明文件安裝在系統(tǒng)分區(qū)中。
參考步驟600,如在第一軟磁盤驅(qū)動(dòng)器中不存在系統(tǒng)參考軟硬磁盤,則在步驟612,引導(dǎo)裝入程序檢查系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)。該該旗標(biāo)指出操作系統(tǒng)引導(dǎo),則在步驟614,該引導(dǎo)裝入程序?qū)⒖刂妻D(zhuǎn)到可選引導(dǎo)例程。然后,該可選引導(dǎo)例程判定從那個(gè)物理裝置引導(dǎo)并進(jìn)到步驟620。
然后存取該系統(tǒng)分區(qū)引導(dǎo)旗標(biāo),在步驟620判定該旗標(biāo)是否被置位。如未請(qǐng)求系統(tǒng)分區(qū)引導(dǎo),該引導(dǎo)裝入程序在步驟630判定是否需要系統(tǒng)參考軟磁盤引導(dǎo)。例如,系統(tǒng)參考軟磁盤可以在某個(gè)可引導(dǎo)軟磁盤驅(qū)動(dòng)器中但不是第一物理的軟磁盤驅(qū)動(dòng)器中。如不存在系統(tǒng)參考軟磁盤,引導(dǎo)裝入程序在步驟660讀取操作系統(tǒng)引導(dǎo)記錄并將控制轉(zhuǎn)到該記錄。該系統(tǒng)分區(qū)保留在被保護(hù)狀態(tài),BIOS可存取另一分區(qū),即引導(dǎo)硬磁盤上的操作系統(tǒng)分區(qū)。
參考回到步驟630,如果需要系統(tǒng)參考軟磁盤引導(dǎo),在步驟650,引導(dǎo)裝入程序指令BIOS解除用于系統(tǒng)分區(qū)的保護(hù)裝置以及通過使用步驟506計(jì)算出的值作為邏輯塊起始地址作為引導(dǎo)硬磁盤的來源建立系統(tǒng)分區(qū)。引導(dǎo)裝入程序在步驟660從參考軟磁盤讀取引導(dǎo)記錄(這時(shí),存在系統(tǒng)參考軟磁盤)并引導(dǎo)該系統(tǒng)參考軟磁盤。該系統(tǒng)分區(qū)未被保護(hù),是硬磁盤上的有效分區(qū)。這樣做允許被參考軟磁盤所存取。如前所述,用戶可將具有新特性I/O適配器加到該系統(tǒng)并將其適配器說明文件安裝在該系統(tǒng)分區(qū)中。
回到步驟620,如果系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)為真,則在步驟640由該引導(dǎo)裝入程序指示BIOS解除系統(tǒng)分區(qū)保護(hù)裝置,并在步驟650使用步驟506計(jì)算出值作為邏輯塊起始地址來建立作為引導(dǎo)硬磁盤來自的系統(tǒng)分區(qū)。引導(dǎo)裝入程序然后在步驟660從系統(tǒng)分區(qū)的系統(tǒng)參考軟磁盤映象中讀取引導(dǎo)記錄并引導(dǎo)該系統(tǒng)參考軟磁盤映象。該系統(tǒng)分區(qū)未保護(hù)并且是引導(dǎo)硬磁盤上的有效部分。
回到步驟612,如果系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)指出一系統(tǒng)分區(qū)引導(dǎo),則在步驟616,引導(dǎo)裝入程序檢查系統(tǒng)分區(qū)上的有效引導(dǎo)記錄。該步驟包括驗(yàn)證系統(tǒng)分區(qū)為完全系統(tǒng)分區(qū);引導(dǎo)記錄特征字是有效的;以及存在系統(tǒng)參考軟磁盤特征字。如果有效,該引導(dǎo)裝入程序在步驟620查詢系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)。因該旗標(biāo)為真,在步驟640和650,引導(dǎo)裝入程序指令BIOS對(duì)系統(tǒng)分區(qū)保護(hù)裝置予以解除并通過將步驟506計(jì)算出數(shù)值作為邏輯塊起始地址來建立作為引導(dǎo)硬磁盤起始的系統(tǒng)分區(qū)。引導(dǎo)裝入程序在步驟660從系統(tǒng)分區(qū)讀取引導(dǎo)記錄并引導(dǎo)系統(tǒng)參考軟磁盤映象。該系統(tǒng)分區(qū)未被保護(hù)而且是引導(dǎo)硬磁盤上有效分區(qū)。
回到步驟616,如不存在有效引導(dǎo)記錄,則引導(dǎo)裝入程序在步驟617提示用戶將系統(tǒng)參考軟磁盤插入軟磁盤驅(qū)動(dòng)器并按下鍵盤上“Y”鍵。然后該引導(dǎo)裝入程序在步驟618等待輸入的鍵。一旦鍵入,引導(dǎo)裝置程序在步驟619檢查是否存在有效系統(tǒng)參考軟磁盤。如沒有則引導(dǎo)裝入程序重復(fù)在步驟617開始的過程。
回到步驟619,如果引導(dǎo)裝入程序找到一有效的系統(tǒng)參考軟磁盤,則在步驟640和650,指示BIOS解除系統(tǒng)分區(qū)保護(hù)裝置并通過使用在步驟506計(jì)算出數(shù)值作為邏輯塊起始地址來形成作為引導(dǎo)硬磁盤起始的系統(tǒng)分區(qū)。此時(shí)該系統(tǒng)分區(qū)未被保護(hù),在步驟660,引導(dǎo)裝入程序從該系統(tǒng)參考軟磁盤讀取引導(dǎo)記錄并將控制轉(zhuǎn)至該記錄。該引導(dǎo)記錄便引導(dǎo)系統(tǒng)參考軟磁盤。
圖13示出支持從引導(dǎo)硬磁盤的系統(tǒng)分區(qū)引導(dǎo)系統(tǒng)參考軟磁盤映象或在引導(dǎo)系統(tǒng)參考軟磁盤時(shí)允許存取該映象所要求的BIOS改進(jìn)。當(dāng)BIOS接收到執(zhí)行數(shù)據(jù)傳送操作的請(qǐng)求時(shí),便判定是否為引導(dǎo)硬磁盤,如步驟700所示出。該引導(dǎo)硬磁盤是硬磁盤適配器上第一物理硬磁盤。如該硬磁盤不是引導(dǎo)硬磁盤,則BIOS在步驟730執(zhí)行所請(qǐng)求的操作。
回到步驟700,如果該硬磁盤是引導(dǎo)硬磁盤,BIOS在步驟710檢查著該系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)是否為真或系統(tǒng)參考軟磁盤正被引導(dǎo)。如兩者均不為真,而BIOS在步驟730執(zhí)行所請(qǐng)求操作。
回到步驟710,如果系統(tǒng)分區(qū)引導(dǎo)旗標(biāo)為真,或系統(tǒng)參考軟磁盤正被引導(dǎo),則將步驟506計(jì)算出的硬磁盤塊地址在從用戶提供的配以硬磁盤數(shù)據(jù)傳送功能的柱面、磁頭和扇區(qū)參數(shù)(這是隨著硬盤數(shù)據(jù)傳送請(qǐng)求一并提供的)加以變換后在步驟720被加到任一塊地址上這使該系統(tǒng)分區(qū)顯得如同硬磁盤上的第一塊。這樣該系統(tǒng)分區(qū)看似是引導(dǎo)固定磁盤上有效分區(qū)。此后,BIOS在步驟730執(zhí)行請(qǐng)求的操作。
這樣便已示出了用于從大容量存儲(chǔ)器例如硬磁盤驅(qū)動(dòng)器的系統(tǒng)分區(qū)中引導(dǎo)系統(tǒng)參考軟磁盤的方法和裝置。該系統(tǒng)分區(qū)由磁盤驅(qū)動(dòng)器上保護(hù)出一塊區(qū)域而提供的。通過將系統(tǒng)分區(qū)起始地址存儲(chǔ)在磁盤驅(qū)動(dòng)器中,以及當(dāng)請(qǐng)求或需要系統(tǒng)參考軟磁盤是映象的引導(dǎo)時(shí)通知BIOS用它作為硬磁盤起始,從而使得該系統(tǒng)分區(qū)是可引導(dǎo)的。通過提供這種能力,不管配置何時(shí)變化,或需要一系統(tǒng)實(shí)用程序或在執(zhí)行POST期間遇到一錯(cuò)誤系統(tǒng)參考軟磁盤實(shí)用程序總是自動(dòng)可利用的。這增強(qiáng)了系統(tǒng)可用性。
盡管結(jié)合最佳實(shí)施例對(duì)本發(fā)明已作說明,但應(yīng)該理解,對(duì)本領(lǐng)域技術(shù)人員可做許多種變化,而本發(fā)明的范圍只由附上的權(quán)利要求書所限定和等價(jià)。
權(quán)利要求
1.一種用于保護(hù)個(gè)人計(jì)算機(jī)系統(tǒng)中實(shí)用程序的裝置,該個(gè)人計(jì)算機(jī)系統(tǒng)具有執(zhí)行操作系統(tǒng)處理器、只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、以及至少一個(gè)直接存取存儲(chǔ)器,所述裝置的特征在于直接存取存儲(chǔ)器控制器具有用于保護(hù)該直接存取存儲(chǔ)器一個(gè)區(qū)域的保護(hù)裝置,所述保護(hù)裝置允許響應(yīng)復(fù)位信號(hào)對(duì)被保護(hù)區(qū)進(jìn)行存取,BIOS的一部分包含于該直接存取存儲(chǔ)器的被保護(hù)區(qū),BIOS的所述部分被裝入隨機(jī)存取存儲(chǔ)器以引導(dǎo)操作系統(tǒng),BIOS的所述部分啟動(dòng)所述保護(hù)裝置以便在操作系統(tǒng)正常操作期間防止直接存取存儲(chǔ)器被保護(hù)區(qū)的存取,以及系統(tǒng)應(yīng)用程序的一部分包括在直接存取存儲(chǔ)器的保護(hù)區(qū),在裝載操作系統(tǒng)時(shí)一旦檢測(cè)出錯(cuò)誤狀態(tài)便自動(dòng)執(zhí)行所述系統(tǒng)實(shí)用程序。
2.如權(quán)利要求1所述裝置,其特征在于直接存取存儲(chǔ)器包括一硬磁盤。
3.如權(quán)利要求1所述裝置,其特征在于,系統(tǒng)實(shí)用程序的所述部分包含用于改變系統(tǒng)配置的程序。
4.一種用于保護(hù)個(gè)人計(jì)算機(jī)系統(tǒng)中系統(tǒng)實(shí)用程序的裝置,該個(gè)人計(jì)算機(jī)系統(tǒng)具有系統(tǒng)處理器,只讀存儲(chǔ)器,主存儲(chǔ)器和能夠存儲(chǔ)多個(gè)數(shù)據(jù)記錄的至少一個(gè)直接存取存儲(chǔ)器,所述裝置的特征在于第一程序包含在只讀存儲(chǔ)器中,所述第一程序?qū)ο到y(tǒng)處理器初始化,所述第一程序還啟動(dòng)到直接存取存儲(chǔ)器的復(fù)位信號(hào)的產(chǎn)生以允許對(duì)該數(shù)據(jù)記錄存取;用于從直接存取存儲(chǔ)器裝載數(shù)據(jù)記錄到主存儲(chǔ)器的裝載裝置,所述裝載裝置存儲(chǔ)于直接存取存儲(chǔ)器的可保護(hù)分區(qū)中,所述裝載裝置由所述第一程序從直接存取存儲(chǔ)器讀入主存儲(chǔ)器,其中由所述第一程序啟動(dòng)所述裝載裝置;主存儲(chǔ)器常駐程序映象存儲(chǔ)在直接存取存儲(chǔ)器可保護(hù)分區(qū)中,所述主存儲(chǔ)器常駐程序映象由所述裝載裝置從直接存取存儲(chǔ)器讀入主存儲(chǔ)器以產(chǎn)生主存儲(chǔ)器駐留程序;用于保護(hù)直接存取存儲(chǔ)器可保護(hù)區(qū)的裝置,所述保護(hù)裝置由所述主存取存儲(chǔ)器駐留程序啟動(dòng)以防對(duì)所述裝載裝置和所述主存儲(chǔ)器駐留程序映象的非法存取;以及系統(tǒng)實(shí)用程序映象存儲(chǔ)在直接存儲(chǔ)器可保護(hù)區(qū)中,當(dāng)所述主存儲(chǔ)器駐留程序一檢測(cè)到系統(tǒng)中的錯(cuò)誤,所述系統(tǒng)實(shí)用程序便被自動(dòng)地從直接存取存儲(chǔ)器讀入主存儲(chǔ)器。
全文摘要
本發(fā)明的個(gè)人計(jì)算機(jī)系統(tǒng)包括處理器、隨機(jī)存取存儲(chǔ)器、只讀存儲(chǔ)器和至少一個(gè)直接存取存儲(chǔ)器。耦合在系統(tǒng)處理器和直接存取存儲(chǔ)器之間的直接存取存儲(chǔ)器控制器包括用于保護(hù)該存儲(chǔ)器一個(gè)區(qū)域的保護(hù)機(jī)構(gòu)。存儲(chǔ)器的被保護(hù)區(qū)包括一個(gè)主引導(dǎo)記錄、一個(gè)BIOS映象和一個(gè)系統(tǒng)參考軟磁盤映象。BIOS映象包括稱為通電自檢(POST)部分。POST用于測(cè)試和初始化該系統(tǒng)。一旦檢測(cè)到任何配置錯(cuò)誤,系統(tǒng)參考軟盤映象的系統(tǒng)實(shí)用程序,例如配置設(shè)置程序,診斷程序和實(shí)用程序可自動(dòng)地從直接存取存儲(chǔ)器啟動(dòng)。
文檔編號(hào)G06F11/22GK1058664SQ9110451
公開日1992年2月12日 申請(qǐng)日期1991年6月21日 優(yōu)先權(quán)日1990年7月23日
發(fā)明者L·R·阿諾德, R·比爾考斯基, 小·J·W·布萊克利奇, D·S·克朗克, R·A·達(dá)揚(yáng), D·R·蓋斯勒, M·T·米爾施泰特, 小·M·S·帕爾卡, J·D·保羅, R·薩克森邁耶, K·D·斯梅爾策, P·A·沃伊托維奇, K·M·齊沃洛斯基 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
蓝田县| 松潘县| 都昌县| 锦州市| 农安县| 南漳县| 柳林县| 皋兰县| 巴马| 嘉黎县| 柞水县| 分宜县| 北辰区| 比如县| 瑞安市| 清水县| 伊春市| 班玛县| 菏泽市| 怀宁县| 新竹县| 浠水县| 文安县| 阳春市| 依兰县| 连平县| 绥江县| 黄龙县| 武宣县| 三穗县| 万年县| 沧州市| 名山县| 诸暨市| 青海省| 高州市| 涟源市| 华安县| 新和县| 武鸣县| 蕉岭县|