專(zhuān)利名稱(chēng):更新計(jì)算機(jī)存儲(chǔ)裝置中對(duì)邏輯驅(qū)動(dòng)器的分區(qū)映射的系統(tǒng)和方法
本公開(kāi)內(nèi)容一般地涉及計(jì)算機(jī)和用于控制訪(fǎng)問(wèn)計(jì)算機(jī)存儲(chǔ)裝置的軟件代碼,較具體地涉及一種用來(lái)動(dòng)態(tài)地改變一個(gè)存儲(chǔ)盤(pán)的各個(gè)分區(qū)對(duì)操作系統(tǒng)代碼的邏輯驅(qū)動(dòng)器的映射的系統(tǒng)和方法。
大多數(shù)計(jì)算機(jī)的主要存儲(chǔ)區(qū)域典型地是分布在一個(gè)或多個(gè)存儲(chǔ)裝置例如硬盤(pán)上的。此外,每個(gè)存儲(chǔ)裝置經(jīng)常被分成一個(gè)或多個(gè)分區(qū),使得某些數(shù)據(jù)或程序可被分開(kāi)存儲(chǔ)。例如,在一個(gè)采用由華盛頓州Redmond市的Microsoft Corporatiou(微軟公司)所提供的DOS和/或WINDOWS95(視窗95)操作系統(tǒng)的計(jì)算機(jī)中,單個(gè)的計(jì)算機(jī)硬驅(qū)可以被分區(qū)成“基礎(chǔ)(primary)”分區(qū)和“擴(kuò)展”分區(qū),如下面的表1所示。繼續(xù)該表1的例子,操作系統(tǒng)把基礎(chǔ)分區(qū)當(dāng)作一個(gè)“邏輯”C驅(qū)動(dòng)器來(lái)參考,而擴(kuò)展分區(qū)則被進(jìn)一步分成兩個(gè)邏輯驅(qū)動(dòng)器,分別具有一個(gè)不同的驅(qū)動(dòng)器代號(hào)D和E。通常,在同一時(shí)刻只有一個(gè)基礎(chǔ)分區(qū)可以是“激活的”(例如可以看見(jiàn)操作系統(tǒng))。
表1
存在一些分區(qū)被生成或定義的常見(jiàn)情況。這種情況之一是用戶(hù)給計(jì)算機(jī)添加和調(diào)試一個(gè)新的硬驅(qū)。在調(diào)試該新硬驅(qū)時(shí),用戶(hù)將把它初始化成一個(gè)或多個(gè)分區(qū)。另一個(gè)情況是用戶(hù)想用一個(gè)例如由猶它州Orem市PowerQuest公司所提供的PARTITION MAGIC應(yīng)用程序去對(duì)他的原有硬驅(qū)進(jìn)行重新分區(qū)。一旦硬驅(qū)被分區(qū)或重新分區(qū)之后,必須重新引導(dǎo)該計(jì)算機(jī),使操作系統(tǒng)在其各個(gè)參考表格中含有關(guān)于分區(qū)的更新版本。然而,這種重新引導(dǎo)需要大量的時(shí)間和資源。對(duì)于用戶(hù)是必須對(duì)每一臺(tái)新計(jì)算機(jī)都進(jìn)行重新引導(dǎo)的新計(jì)算機(jī)制造商的情況,這一問(wèn)題將特別嚴(yán)重。而且,重新引導(dǎo)將使某些用戶(hù)可能會(huì)希望保留的計(jì)算機(jī)特性丟失或被重新構(gòu)形。
為此提供了一種不需要重新引導(dǎo)計(jì)算機(jī)而改變對(duì)計(jì)算機(jī)存儲(chǔ)裝置中邏輯驅(qū)動(dòng)器的分區(qū)映射的系統(tǒng)和方法。在一個(gè)實(shí)施例中,該計(jì)算機(jī)含有一個(gè)用于運(yùn)行操作系統(tǒng)代碼的處理器和一個(gè)硬驅(qū)存儲(chǔ)裝置。這個(gè)可被處理器訪(fǎng)問(wèn)的硬驅(qū)至少有一個(gè)分區(qū)。當(dāng)該計(jì)算機(jī)起動(dòng)后,操作系統(tǒng)代碼中的一個(gè)邏輯參考值將指向該分區(qū)。當(dāng)該分區(qū)被初始化或修改后,將運(yùn)行一個(gè)參考更新例行程序,以把該邏輯參考值動(dòng)態(tài)地更新成能正碓地映射到該分區(qū)上。
該參考更新例行程序首先找到并清除計(jì)算機(jī)中的所有緩存器,還關(guān)閉所有被操作系統(tǒng)代碼所訪(fǎng)問(wèn)的打開(kāi)的文件。然后該例行程序給該分區(qū)安裝一個(gè)引導(dǎo)記錄,并從中提取特定的數(shù)據(jù)。該例行程序用所提取的數(shù)據(jù)去更新邏輯參考值。因此,當(dāng)參考更新例行程序執(zhí)行了更新處理之后,處理器就可以繼續(xù)運(yùn)行該操作碼,而不再需要重新引導(dǎo)計(jì)算機(jī)。
這樣得到的一個(gè)技術(shù)優(yōu)點(diǎn)是,硬驅(qū)可以在分區(qū)或重新分區(qū)之后立即被訪(fǎng)問(wèn),而不需要在這中間進(jìn)行重新引導(dǎo),由此節(jié)省了大量時(shí)間。
所得到的另一個(gè)技術(shù)優(yōu)點(diǎn)是,即使硬驅(qū)經(jīng)過(guò)了分區(qū)或重新分區(qū),計(jì)算機(jī)的構(gòu)形也仍可保持。
圖1是能實(shí)現(xiàn)一個(gè)實(shí)施例的計(jì)算機(jī)的方框圖。
圖2是圖1計(jì)算機(jī)的硬驅(qū)的布局圖。
圖3是圖1計(jì)算機(jī)所運(yùn)行的一個(gè)例行程序的流程圖。
下面公開(kāi)的內(nèi)容引用以下兩個(gè)與本申請(qǐng)相應(yīng)的美國(guó)申請(qǐng)同時(shí)遞交的專(zhuān)利申請(qǐng)作為參考。美國(guó)專(zhuān)利申請(qǐng),流水號(hào)(代理人登記號(hào)No.DC-1313),標(biāo)題“Method for Changing Partition Mappings to Logical Drives in aComputer Memory Device(改變計(jì)算機(jī)存儲(chǔ)裝置中對(duì)邏輯驅(qū)動(dòng)器的分區(qū)映射的方法)”;以及,美國(guó)專(zhuān)利申請(qǐng),流水號(hào)(代理人登記號(hào)No.DC-1315),標(biāo)題“Method for simulating a Computer Storage Device(模擬計(jì)算機(jī)存儲(chǔ)裝置的方法)?!眳⒁?jiàn)圖1,其中代號(hào)10代表一個(gè)含有一些部件的計(jì)算機(jī),這些部件包括一個(gè)處理器12,一個(gè)隨機(jī)存取存儲(chǔ)器(RAM)14a和只讀存儲(chǔ)器(ROM)14b的庫(kù),一個(gè)硬盤(pán)16,以及一個(gè)網(wǎng)絡(luò)接口18。其中每個(gè)部件都能通過(guò)總線(xiàn)20與處理器12進(jìn)行通信。在本例中,計(jì)算機(jī)10是一個(gè)運(yùn)行Microsoft DOS操作系統(tǒng)代碼的個(gè)人計(jì)算機(jī)。不過(guò)應(yīng)該理解,計(jì)算機(jī)10及其示例性的部件僅僅是本技術(shù)領(lǐng)域一般技術(shù)人員所熟知和了解的許多不同類(lèi)型的計(jì)算機(jī)和部件中的一種代表。
參見(jiàn)圖2,硬盤(pán)16被分成三個(gè)不同的分區(qū)主引導(dǎo)記錄30、第一分區(qū)32和第二分區(qū)34。位在主引導(dǎo)記錄30中的是引導(dǎo)指令代碼40和主分區(qū)表42。該主分區(qū)表含有下面將較詳細(xì)說(shuō)明的代表專(zhuān)用于分區(qū)32和34的數(shù)據(jù)的代碼。應(yīng)該理解,主引導(dǎo)記錄30中的其他軟件,包括引導(dǎo)指令代碼40在內(nèi),都是本技術(shù)領(lǐng)域所熟知的,為了簡(jiǎn)單起見(jiàn)這里不作進(jìn)一步討論。
第一分區(qū)32含有一個(gè)引導(dǎo)記錄50和一個(gè)或多個(gè)軟件,例如程序52。類(lèi)似地,第二分區(qū)34也含有一個(gè)引導(dǎo)記錄60和一個(gè)或多個(gè)軟件,例如程序62。在本例中,分區(qū)32和34都是基礎(chǔ)分區(qū),它們有相同的邏輯驅(qū)動(dòng)器參考。此外,分區(qū)32和34的長(zhǎng)度和/或位置新近都進(jìn)行了修改。通常,這一修改要求重新引導(dǎo)計(jì)算機(jī)10使DOS得以正確地參考修改后的分區(qū)32和34。然而,如果實(shí)現(xiàn)了下述的例行程序,就不再需要重新引導(dǎo)計(jì)算機(jī)10。
參見(jiàn)圖3,一個(gè)名稱(chēng)為“Waffle”的例行程序100使得DOS可以動(dòng)態(tài)地,也就說(shuō)可以不需要重新引導(dǎo)計(jì)算機(jī)10地,參考和/或更新這兩個(gè)修改后的分區(qū)。在運(yùn)行Waffle100以前,硬盤(pán)16已被初始化或重新構(gòu)形,使應(yīng)用分區(qū)32被標(biāo)為不激活,而基礎(chǔ)分區(qū)34則被標(biāo)為激活。
在步驟110中,Waffle100被安裝到RAM14a中并予以運(yùn)行。WAffle是一個(gè)邏輯參考更新例行程序,并且在本例中它是從一個(gè)通過(guò)網(wǎng)絡(luò)接口18相連接的網(wǎng)絡(luò)上下載的。此外,該網(wǎng)絡(luò)含有某種操作系統(tǒng)代碼,使計(jì)算機(jī)系統(tǒng)10可以在這一步驟中通過(guò)網(wǎng)絡(luò)重新引導(dǎo),也就是說(shuō),計(jì)算機(jī)利用從網(wǎng)絡(luò)接口18提取到的操作系統(tǒng)代碼進(jìn)行重新引導(dǎo)。這樣的構(gòu)形特別適用于網(wǎng)絡(luò)含有用來(lái)初始化一個(gè)新硬盤(pán)的硬盤(pán)格式化軟件或含有用來(lái)增加、刪除或改變?cè)杏脖P(pán)上的分區(qū)的分區(qū)改變軟件的情況?;蛘?,Waffle100也可以從分區(qū)32和/或分區(qū)34、從一個(gè)軟盤(pán)(未示出)、或從其他來(lái)源安裝。
在步驟112中,從用戶(hù)接收一個(gè)命令。一個(gè)名為“更新(refresh)”的命令向Waffle指明用戶(hù)希望訪(fǎng)問(wèn)應(yīng)用分區(qū)32,而一個(gè)名為“基礎(chǔ)(primary)”的命令則向Waffle指明分區(qū)32、34已被修改并且用戶(hù)希望訪(fǎng)問(wèn)和/或使用這兩個(gè)修改后的分區(qū)。命令可以從一個(gè)用戶(hù)界面(未示出)或一個(gè)輸入裝置輸入。此外,可以預(yù)料,也可能得到另外的分區(qū),只是為了簡(jiǎn)單這里只討論兩個(gè)分區(qū)的情形。
在步驟114中,從硬盤(pán)16安裝主引導(dǎo)記錄(MBR)30,在步驟116中,判斷第一分區(qū)32和第二分區(qū)34中是否至少有一個(gè)分區(qū)是基礎(chǔ)分區(qū)。如果不是,則停止處理。如果是這樣,則處理進(jìn)到步驟118,清除存儲(chǔ)器系統(tǒng)。這一步驟可以分幾個(gè)操作進(jìn)行。其中一個(gè)操作是,如果計(jì)算機(jī)10含有一個(gè)或多個(gè)緩存器,包括盤(pán)式緩存器,則清除這些緩存器。還有,關(guān)閉所有DOS正在使用的打開(kāi)的文件和其它在計(jì)算機(jī)上運(yùn)行的打開(kāi)的應(yīng)用程序。
在步驟120中,提取關(guān)于基礎(chǔ)分區(qū)的引導(dǎo)記錄。在本例中,提取引導(dǎo)記錄60。在步驟122中,更新基礎(chǔ)分區(qū)的DOS邏輯參考,這是通過(guò)利用來(lái)自基礎(chǔ)引導(dǎo)記錄60的BIOS參數(shù)數(shù)據(jù)塊(“BPB”)來(lái)更新DOS中的驅(qū)動(dòng)器參數(shù)數(shù)據(jù)塊(“DPB”)而完成的。在步驟124中,來(lái)自基礎(chǔ)引導(dǎo)記錄60的BPB還用來(lái)更新關(guān)于邏輯驅(qū)動(dòng)器參考的驅(qū)動(dòng)器數(shù)據(jù)表(“DDT”)。在步驟126中,根據(jù)分區(qū)32和34的改變來(lái)復(fù)原DOS所使用的內(nèi)部文件系統(tǒng)。這一步驟包括清除硬盤(pán)16的所有內(nèi)部緩存器。
雖然已示出和說(shuō)明了本發(fā)明的一些說(shuō)明性實(shí)施例,但在前面的公開(kāi)中希望包括修改、改變和替代的余地,而且在某些情形中,可以只采用本發(fā)明的一些特征而不相應(yīng)地采用另一些特征。此外,可以在所示實(shí)施例中添加另外的特征,例如出錯(cuò)處理例行程序,而不會(huì)改變本發(fā)明的范疇。所以,應(yīng)該廣義地并以符合本發(fā)明范疇的方式去理解所附的權(quán)利要求。
權(quán)利要求
1.一種計(jì)算機(jī),它包括至少一個(gè)用于運(yùn)行含有操作碼的軟件的處理器;至少一個(gè)可被該處理器訪(fǎng)問(wèn)的存儲(chǔ)裝置,該存儲(chǔ)裝置至少有一個(gè)分區(qū);包括一個(gè)用來(lái)把一個(gè)邏輯參考映射到第一分區(qū)上的表格的操作碼;以及一個(gè)例行程序,用于通過(guò)改變?cè)摫砀駚?lái)動(dòng)態(tài)地修改對(duì)第一分區(qū)的邏輯參考;其中,當(dāng)該例行程序改變了表格之后,處理器將可繼續(xù)運(yùn)行操作碼而不需要重新引導(dǎo)計(jì)算機(jī),并且當(dāng)操作碼用到對(duì)存儲(chǔ)裝置的邏輯參考時(shí),操作碼能正確地映射到第一分區(qū)上。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī),它還包括一個(gè)存儲(chǔ)器系統(tǒng),并且其中的例行程序在修改了邏輯參考之后還要清除該存儲(chǔ)器系統(tǒng)。
3.根據(jù)權(quán)利要求2的計(jì)算機(jī),其中的存儲(chǔ)器系統(tǒng)還包括一個(gè)盤(pán)式緩存器和一個(gè)或多個(gè)打開(kāi)的文件,并且其中的例行程序通過(guò)清除該盤(pán)式緩存器和關(guān)閉這一個(gè)或多個(gè)打開(kāi)的文件來(lái)清除存儲(chǔ)器系統(tǒng)。
4.根據(jù)權(quán)利要求1的計(jì)算機(jī),其中的例行程序從第一分區(qū)的引導(dǎo)記錄中提取數(shù)據(jù),該數(shù)據(jù)用于改變表格。
5.根據(jù)權(quán)利要求4的計(jì)算機(jī),其中的數(shù)據(jù)包括BIOS參數(shù)數(shù)據(jù)塊。
6.根據(jù)權(quán)利要求5的計(jì)算機(jī),其中的表格包括驅(qū)動(dòng)器參數(shù)數(shù)據(jù)塊和驅(qū)動(dòng)器數(shù)據(jù)表。
7.根據(jù)權(quán)利要求1的計(jì)算機(jī),其中的操作碼包括一個(gè)文件管理系統(tǒng),并且其中的例行程序在修改了邏輯參考之后還使該文件管理系統(tǒng)復(fù)原。
8.根據(jù)權(quán)利要求1的計(jì)算機(jī),它還包括一個(gè)第二存儲(chǔ)裝置,并且其中的例行程序被存儲(chǔ)在該第二存儲(chǔ)裝置上。
9.根據(jù)權(quán)利要求8的計(jì)算機(jī),其中的第二存儲(chǔ)裝置是一個(gè)軟盤(pán)。
10.根據(jù)權(quán)利要求8的計(jì)算機(jī),其中的第二存儲(chǔ)裝置是通過(guò)一個(gè)網(wǎng)絡(luò)被連接到處理器上的。
11.根據(jù)權(quán)利要求8的計(jì)算機(jī),其中的操作碼是存儲(chǔ)在第二存儲(chǔ)裝置上的。
12.根據(jù)權(quán)利要求1的計(jì)算機(jī),其中的例行程序在響應(yīng)于一個(gè)用戶(hù)命令時(shí)更新邏輯參考。
13.一種使一個(gè)計(jì)算機(jī)操作系統(tǒng)動(dòng)態(tài)地參考一個(gè)存儲(chǔ)裝置的一個(gè)新近修改過(guò)的分區(qū)的方法,該方法包括以下步驟找出并清除所有被計(jì)算機(jī)操作系統(tǒng)訪(fǎng)問(wèn)的緩存器;找出并關(guān)閉所有被計(jì)算機(jī)操作系統(tǒng)訪(fǎng)問(wèn)的打開(kāi)的文件;給被修改的分區(qū)安裝一個(gè)引導(dǎo)記錄并從中提取一個(gè)BIOS參數(shù)數(shù)據(jù)塊;以及利用從該BIOS參數(shù)數(shù)據(jù)塊提取的信息去修改計(jì)算機(jī)操作系統(tǒng)所使用的邏輯參考值。
14.根據(jù)權(quán)利要求13的方法,其中的修改步驟包括更新計(jì)算機(jī)操作系統(tǒng)中的一個(gè)驅(qū)動(dòng)器參數(shù)數(shù)據(jù)塊和一個(gè)驅(qū)動(dòng)器數(shù)據(jù)表。
15.根據(jù)權(quán)利要求13的方法,它還包括從存儲(chǔ)裝置安裝一個(gè)主引導(dǎo)記錄;以及判斷被修改的分區(qū)是否是一個(gè)基礎(chǔ)分區(qū)。
16.一種使一個(gè)計(jì)算機(jī)操作系統(tǒng)動(dòng)態(tài)地參考一個(gè)存儲(chǔ)裝置的一個(gè)經(jīng)修改的分區(qū)的系統(tǒng),該系統(tǒng)包括用來(lái)找出和清除所有被計(jì)算機(jī)操作系統(tǒng)訪(fǎng)問(wèn)的緩存器的裝置;用來(lái)找出和關(guān)閉所有被計(jì)算機(jī)操作系統(tǒng)訪(fǎng)問(wèn)的打開(kāi)的文件的裝置;用來(lái)給被修改的分區(qū)安裝一個(gè)引導(dǎo)記錄并從中提取一個(gè)BIOS參數(shù)數(shù)據(jù)塊的裝置;以及用來(lái)利用從BIOS參數(shù)數(shù)據(jù)塊提取的信息去修改計(jì)算機(jī)操作系統(tǒng)使用的邏輯參考值的裝置。
17.根據(jù)權(quán)利要求16的系統(tǒng),其中的修改裝置包括用來(lái)更新計(jì)算機(jī)操作系統(tǒng)中的一個(gè)驅(qū)動(dòng)器參數(shù)數(shù)據(jù)塊和一個(gè)驅(qū)動(dòng)器數(shù)據(jù)表的裝置。
18.根據(jù)權(quán)利要求16的系統(tǒng),它還包括用來(lái)從存儲(chǔ)裝置安裝一個(gè)主引導(dǎo)記錄的裝置;以及用來(lái)判斷被修改的分區(qū)是否是一個(gè)基礎(chǔ)分區(qū)的裝置。
全文摘要
一種改變計(jì)算機(jī)存儲(chǔ)裝置中對(duì)邏輯驅(qū)動(dòng)器的分區(qū)映射的系統(tǒng)和方法。該計(jì)算機(jī)含有一個(gè)用來(lái)運(yùn)行操作系統(tǒng)代碼的處理器和一個(gè)硬驅(qū)。該可以被處理器訪(fǎng)問(wèn)的硬驅(qū)至少含有一個(gè)分區(qū)。當(dāng)計(jì)算機(jī)起動(dòng)后,操作系統(tǒng)代碼中的一個(gè)邏輯參考值將指向該分區(qū)。分區(qū)被初始化或修改之后,將運(yùn)行一個(gè)參考更新例行程序來(lái)動(dòng)態(tài)地更新邏輯參考值,以正確地映射到該分區(qū)上。該參考更新例行程序首先找出并清除計(jì)算機(jī)中所有的緩存器和關(guān)閉所有被操作系統(tǒng)代碼訪(fǎng)問(wèn)的打開(kāi)的文件。然后該例行程序給分區(qū)安裝一個(gè)引導(dǎo)記錄并從中提取特定的數(shù)據(jù)。例行程序利用所提取的數(shù)據(jù)更新邏輯參考值。因此,當(dāng)參考更新例行程序完成了更新之后,處理器將可繼續(xù)運(yùn)行操作碼而不需要重新引導(dǎo)計(jì)算機(jī)。
文檔編號(hào)G06F12/00GK1215866SQ98120159
公開(kāi)日1999年5月5日 申請(qǐng)日期1998年10月13日 優(yōu)先權(quán)日1997年10月15日
發(fā)明者艾倫·E·貝利茨 申請(qǐng)人:戴爾美國(guó)公司