專利名稱:計(jì)算機(jī)存儲(chǔ)裝置的可修改分區(qū)引導(dǎo)記錄的制作方法
本公開內(nèi)容一般地涉及計(jì)算機(jī),較具體地涉及計(jì)算機(jī)存儲(chǔ)裝置的分區(qū)引導(dǎo)記錄,該記錄的類型可以動(dòng)態(tài)地改變,例如從不可識(shí)別引導(dǎo)記錄改變成可識(shí)別引導(dǎo)記錄。
在含有一個(gè)或多個(gè)存儲(chǔ)裝置例如硬驅(qū)的計(jì)算機(jī)中,這些存儲(chǔ)裝置常常被分成一些不同的分區(qū),使某些數(shù)據(jù)或程序可以存儲(chǔ)在不同的分區(qū)上。例如,在一種使用由華盛頓州Redmond市的MicrosoftCorporation(微軟公司)所提供的Microsoft DOS,Windows(視窗)、或Windows95操作系統(tǒng)的計(jì)算機(jī)中,單個(gè)硬驅(qū)可能被分成一個(gè)例如用來(lái)存儲(chǔ)操作系統(tǒng)代碼的分區(qū)和另一個(gè)例如用來(lái)存儲(chǔ)應(yīng)用型或維護(hù)型程序的分區(qū)。在下面的討論中,為了簡(jiǎn)明,將僅說(shuō)明使用DOS的情形,但應(yīng)該理解,DOS只是上述各個(gè)操作系統(tǒng)和許多其他操作系統(tǒng)的一種代表。
這種應(yīng)用或維護(hù)型程序的一個(gè)例子是電子啟封("EBTS")程序。EBTS程序常用來(lái)強(qiáng)制對(duì)另一個(gè)程序?qū)嵤┸浖S可協(xié)議。為了實(shí)現(xiàn)EBTS程序,需生成一個(gè)第一分區(qū)作為應(yīng)用分區(qū)和存儲(chǔ)EBTS程序。還要生成一個(gè)第二分區(qū)作為基礎(chǔ)分區(qū)并存儲(chǔ)那個(gè)受軟件許可協(xié)議限制的程序。起初,應(yīng)用分區(qū)被標(biāo)為“激活”,使計(jì)算機(jī)首先訪問(wèn)該應(yīng)用分區(qū)。當(dāng)許可協(xié)議被接受時(shí),再把基礎(chǔ)分區(qū)標(biāo)為激活,而以后計(jì)算機(jī)將首先訪問(wèn)該基礎(chǔ)分區(qū)。
然而,上述過(guò)程將帶來(lái)一些問(wèn)題。其中之一是,有可能不希望用戶在其正常的計(jì)算機(jī)操作中去訪問(wèn)應(yīng)用分區(qū)。這可能是因?yàn)橛脩艨梢栽L問(wèn)到一些太有力的維護(hù)和應(yīng)用程序,從而會(huì)使用戶容易丟失其硬驅(qū)上的數(shù)據(jù)、重新配置計(jì)算機(jī),或者做出最好不應(yīng)由用戶做出的事情。因此,一種解決是在正常情況下不讓操作系統(tǒng)“看見”應(yīng)用分區(qū)。這可以通過(guò)把該應(yīng)用分區(qū)的一個(gè)“分區(qū)類型碼”設(shè)定成一個(gè)操作系統(tǒng)不可識(shí)別的值來(lái)實(shí)現(xiàn)。諸如硬驅(qū)等存儲(chǔ)裝置的構(gòu)形和處理在Mark Minasi的著作“THE HARD DISK SURVIVAL GUIDE(硬盤生存指導(dǎo))”(SYBEX,INC.,1991)中有所說(shuō)明,該書在此引用作為參考。
不過(guò),這又引起了另一個(gè)問(wèn)題。在本例中,起初應(yīng)用分區(qū)被標(biāo)為激活的,從而當(dāng)計(jì)算機(jī)起動(dòng)時(shí)它將只看見該應(yīng)用分區(qū)。在應(yīng)用分區(qū)中,計(jì)算機(jī)可能要運(yùn)行如EBTS程序這樣的維護(hù)或應(yīng)用程序。然而,在能夠運(yùn)行EBTS程序之前,計(jì)算機(jī)必須首先從激活分區(qū)內(nèi)安裝操作系統(tǒng)代碼。在本例中,計(jì)算機(jī)至少要安裝兩個(gè)DOS系統(tǒng)文件IO.SYS和MSDOS.SYM.。IO.SYS系統(tǒng)文件檢驗(yàn)激活分區(qū)的分區(qū)類型碼以確保這個(gè)分區(qū)類型是它能夠識(shí)別的。由于實(shí)際情況不是這樣,所以IO.SYS將遇到一個(gè)錯(cuò)誤,從而相應(yīng)地發(fā)出一個(gè)出錯(cuò)消息。結(jié)果就不能執(zhí)行EBTS程序。
因此,為計(jì)算機(jī)存儲(chǔ)裝置提供了一種可修改的分區(qū)引導(dǎo)記錄。在一個(gè)實(shí)施例中,一個(gè)計(jì)算機(jī)含有一個(gè)用來(lái)安裝和運(yùn)行引導(dǎo)碼和操作系統(tǒng)代碼的處理器。一個(gè)可被該處理器訪問(wèn)的存儲(chǔ)裝置至少含有兩個(gè)分區(qū)第一分區(qū)起初是激活的并具有操作系統(tǒng)不能識(shí)別的類型,第二分區(qū)起初是不激活的。
當(dāng)計(jì)算機(jī)引導(dǎo)起動(dòng)時(shí),處理器將訪問(wèn)起初是第一分區(qū)的激活分區(qū)。一旦該激活分區(qū)被訪問(wèn),其中的軟件將指導(dǎo)處理器把激活分區(qū)的類型轉(zhuǎn)變成一種“可見”的類型,即操作系統(tǒng)可識(shí)別的類型。因此,當(dāng)操作系統(tǒng)被安裝時(shí),它將可識(shí)別激活分區(qū)的類型,從而不會(huì)遇到錯(cuò)誤。一旦已安裝了操作系統(tǒng),另外的軟件將指導(dǎo)處理器把激活分區(qū)的類型轉(zhuǎn)變回不可見類型。
由于現(xiàn)在已安裝了操作系統(tǒng),所以處理器將可執(zhí)行其它任務(wù)。例如,處理器可以執(zhí)行EBTS程序,提示用戶接受關(guān)于存儲(chǔ)在第二分區(qū)中的一個(gè)軟件的軟件許可協(xié)議。如果用戶接受了軟件許可協(xié)議,則處理器將把第二分區(qū)指定為激活的。
所得到的一個(gè)技術(shù)優(yōu)點(diǎn)是,當(dāng)把第二分區(qū)指定為激活之后,第一分區(qū)將不再能容易地被一般用戶訪問(wèn)。
得到的另一個(gè)技術(shù)優(yōu)點(diǎn)是,在用戶接觸到第二分區(qū)之前,就可以執(zhí)行和完成像EBTS程序這樣的程序,從而用戶對(duì)于第二分區(qū)的程序的“用戶經(jīng)歷”不會(huì)受到中斷干擾。
圖1是能實(shí)現(xiàn)一個(gè)實(shí)施例的計(jì)算機(jī)的方框圖。
圖2是圖1計(jì)算機(jī)的硬驅(qū)的布局圖。
圖3是一個(gè)由圖1計(jì)算機(jī)運(yùn)行的例行程序的流程圖。
參見圖1,代號(hào)10代表一個(gè)含有一些部件的計(jì)算機(jī),這些部件至少包括一個(gè)處理器12、一個(gè)主存儲(chǔ)器14、一個(gè)盤式驅(qū)動(dòng)器16、以及一個(gè)用戶界面18,如鍵盤或鼠標(biāo)。每個(gè)部件都可以通過(guò)圖示的總線20與處理器12進(jìn)行通信。在本例中,該計(jì)算機(jī)是一個(gè)運(yùn)行MicrosoftDOS的個(gè)人計(jì)算機(jī)。然而應(yīng)該理解,計(jì)算機(jī)10及其各示例性的部件僅僅是本技術(shù)領(lǐng)域所熟知和了解的許多種計(jì)算機(jī)的一個(gè)代表,而DOS僅僅是許多不同操作系統(tǒng)的一個(gè)代表。
參見圖2,盤式驅(qū)動(dòng)器16被分成三個(gè)不同的分區(qū)一個(gè)主引導(dǎo)記錄30、一個(gè)應(yīng)用分區(qū)32和一個(gè)基礎(chǔ)分區(qū)34。位在主引導(dǎo)記錄30中的是引導(dǎo)指令代碼40和一個(gè)主分區(qū)表42。該主分區(qū)表含有分別代表分區(qū)32和分區(qū)34的代碼。應(yīng)該理解,主引導(dǎo)記錄30還含有用來(lái)引導(dǎo)起動(dòng)計(jì)算機(jī)10和定義硬盤16的其他分區(qū)的通常代碼。
應(yīng)用分區(qū)32含有一個(gè)引導(dǎo)記錄50和一個(gè)或幾個(gè)軟件,其中包括一個(gè)含有許可證協(xié)議的EBTS程序52。在正常操作中,應(yīng)用分區(qū)32僅在例如用戶第一次運(yùn)行計(jì)算機(jī)等特殊情況下使用?;A(chǔ)分區(qū)34也含有一個(gè)引導(dǎo)記錄60和一個(gè)或多個(gè)軟件,例如受EBTS程序52的許可證協(xié)議制約的程序62。在正常操作中,基礎(chǔ)分區(qū)34將能容易地被用戶訪問(wèn)。本實(shí)施例的目的是要求用戶在被允許訪問(wèn)程序62之前接受EBTS程序52的許可證協(xié)議條款。
參見圖3,一個(gè)例行程序100用來(lái)讓用戶在接受了EBTS程序52的許可協(xié)議后可以訪問(wèn)程序62。當(dāng)計(jì)算機(jī)10從工廠發(fā)運(yùn)時(shí),應(yīng)用分區(qū)32原來(lái)被標(biāo)為激活的(因此基礎(chǔ)分區(qū)34是不激活的)。此外,應(yīng)用分區(qū)32的分區(qū)類型被設(shè)定為DEh(h代表十六進(jìn)制),而基礎(chǔ)分區(qū)34的分區(qū)類型被設(shè)定為06h。在本優(yōu)選實(shí)施例中,類型06是一個(gè)有效的分區(qū)類型碼,但類型DE不是,因此不能被DOS識(shí)別。
在步驟110中,處理器12通過(guò)執(zhí)行引導(dǎo)指令代碼40進(jìn)行引導(dǎo)。在步驟112,處理器12運(yùn)行激活分區(qū)的引導(dǎo)記錄,這里該記錄是應(yīng)用分區(qū)32的引導(dǎo)記錄50。在步驟114中,引導(dǎo)記錄50把它的分區(qū)類型改變成06h(即一個(gè)有效類型),并正確地改寫(write out)主分區(qū)表42。在步驟116中,安裝IO.SYS(DOS操作系統(tǒng)代碼的一部分)。當(dāng)安裝IO.SYS時(shí),它將“看見”分區(qū)類型06h,于是執(zhí)行操作系統(tǒng)起動(dòng)處理。在步驟118中,當(dāng)操作系統(tǒng)起動(dòng)處理完成時(shí),運(yùn)行EBTS程序52。在步驟120中,EBTS程序52把它的分區(qū)類型改變成DEh(即一個(gè)無(wú)效類型),并正確地改寫主分區(qū)表142。在步驟122中,EBTS程序52在用戶界面18上提示用戶,詢問(wèn)他是否接受許可協(xié)議。
如果用戶表示接受,例如在用戶界面18上選擇任選項(xiàng)“接受”,則處理進(jìn)至步驟124。在步驟124,基礎(chǔ)分區(qū)34被標(biāo)為激活(因此應(yīng)用分區(qū)32不激活),并且計(jì)算機(jī)10重新進(jìn)行引導(dǎo)。然而,如果用戶沒有表示接受,則處理進(jìn)至步驟126。在步驟126,通知用戶不可以訪問(wèn)程序62,然后例行程序100停止?;蛘?,也可以再次提示用戶,或進(jìn)一步向他提供關(guān)于許可協(xié)議的另外信息。
其結(jié)果是,當(dāng)計(jì)算機(jī)10重新進(jìn)行引導(dǎo)時(shí),就可以訪問(wèn)基礎(chǔ)分區(qū)34和運(yùn)行程序62。另外,如果在基礎(chǔ)分區(qū)34上安裝一個(gè)例如MicrosoftWindows的操作系統(tǒng),則由于EBTS程序52已經(jīng)完成,所以用戶的“視窗經(jīng)歷”也不會(huì)被EBTS程序阻斷。再有,應(yīng)用分區(qū)32可以含有另外一些不應(yīng)輕易被用戶訪問(wèn)的程序,例如維護(hù)和診斷程序。不過(guò),一個(gè)技術(shù)人員可以重新激活應(yīng)用分區(qū),并由此訪問(wèn)維護(hù)和診斷程序。
雖然已示出并說(shuō)明了本發(fā)明的一些示例性實(shí)施例,但希望在上述公開內(nèi)容中留有修改、改變和替換的余地,并且在某些情形中,可以只采用本發(fā)明的一些特征而不相應(yīng)地采用其他特征。例如,硬盤16可以用磁帶驅(qū)動(dòng)器、光學(xué)存儲(chǔ)裝置、或其他類型的存儲(chǔ)裝置替代。再有,可以在所示的實(shí)施例中添加一些另外的緩存器、驅(qū)動(dòng)器、延時(shí)電路和其他電路而不會(huì)改變本發(fā)明的范疇。所以,應(yīng)該廣義地并以符合本發(fā)明范疇的方式來(lái)理解所附的權(quán)利要求。
權(quán)利要求
1.一種計(jì)算機(jī),它包括至少一個(gè)處理器,用于安裝和運(yùn)行引導(dǎo)碼和操作碼;至少一個(gè)可被該處理器訪問(wèn)的存儲(chǔ)裝置,該存儲(chǔ)裝置至少被分成兩個(gè)分區(qū),第一分區(qū)起初是被指定為激活的,并具有不能被操作碼識(shí)別的類型;并且,其中,當(dāng)處理器運(yùn)行引導(dǎo)碼且第一分區(qū)為激活時(shí),該處理器將運(yùn)行一個(gè)類型改變例行程序;以及其中的類型改變例行程序指令處理器把第一分區(qū)的類型轉(zhuǎn)變成一個(gè)操作碼可識(shí)別的類型,使得該操作碼在被運(yùn)行時(shí)能識(shí)別第一分區(qū)。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī),其中的類型改變例行程序存儲(chǔ)在存儲(chǔ)裝置的第一分區(qū)中。
3.根據(jù)權(quán)利要求1的計(jì)算機(jī),其中的操作碼存儲(chǔ)在存儲(chǔ)裝置的第一分區(qū)中。
4.根據(jù)權(quán)利要求1的計(jì)算機(jī),其中當(dāng)操作碼已能識(shí)別第一分區(qū)后,類型改變例行程序?qū)⒅噶钐幚砥靼训谝环謪^(qū)的類型轉(zhuǎn)變成一個(gè)操作碼不可識(shí)別的類型。
5.根據(jù)權(quán)利要求4的計(jì)算機(jī),它還包括一個(gè)存儲(chǔ)在存儲(chǔ)裝置的第一分區(qū)中的程序;并且其中如果用戶以一個(gè)預(yù)定方式與該程序相互作用時(shí),類型改變例行程序?qū)训诙謪^(qū)指定為激活的。
6.根據(jù)權(quán)利要求5的計(jì)算機(jī),其中的程序是一個(gè)關(guān)于第二分區(qū)內(nèi)的許可限制軟件的電子啟封程序。
7.根據(jù)權(quán)利要求5的計(jì)算機(jī),它還包括一個(gè)連接在處理器上的用戶界面,并且其中的用戶相互作用是通過(guò)該用戶界面接收的。
8.根據(jù)權(quán)利要求1的計(jì)算機(jī),其中的存儲(chǔ)裝置還含有一個(gè)主分區(qū)表,用于存儲(chǔ)第一分區(qū)的類型。
9.根據(jù)權(quán)利要求4的計(jì)算機(jī),它還包括一個(gè)存儲(chǔ)在存儲(chǔ)裝置的第二分區(qū)中的程序;并且如果用戶以一個(gè)預(yù)定方式與類型改變例行程序相互作用時(shí),類型改變例行程序?qū)⒅噶畎训诙謪^(qū)指定為激活的,使用戶可以訪問(wèn)該程序。
10.根據(jù)權(quán)利要求9的計(jì)算機(jī),其中如果用戶沒有以一個(gè)預(yù)定方式與類型改變例行程序相互作用,則類型改變例行程序?qū)⒉粫?huì)指令把第二分區(qū)指定為激活的,從而用戶不可以訪問(wèn)該程序。
11.一種用來(lái)在一個(gè)含有一個(gè)用于運(yùn)行操作系統(tǒng)的處理器和可被該處理器訪問(wèn)的存儲(chǔ)裝置的計(jì)算機(jī)中控制對(duì)該存儲(chǔ)器上的軟件的訪問(wèn)的方法,該方法包括(a)在計(jì)算機(jī)被引導(dǎo)起動(dòng)之前(ⅰ)把存儲(chǔ)裝置分成至少兩個(gè)分區(qū),其中的第一分區(qū)是激活的;(ⅱ)把軟件存儲(chǔ)在第二分區(qū)中;(ⅲ)給第二分區(qū)設(shè)定一個(gè)不可見的類型;以及(b)當(dāng)計(jì)算機(jī)被引導(dǎo)起動(dòng)時(shí)(ⅰ)讓處理器訪問(wèn)激活分區(qū);(ⅱ)給激活分區(qū)重新設(shè)定一個(gè)可見的類型;(ⅲ)安裝操作系統(tǒng);(ⅳ)把激活分區(qū)轉(zhuǎn)變回到不可見類型;(ⅴ)判斷軟件是否可被訪問(wèn);(ⅵ)如果軟件可被訪問(wèn),則指定第二分區(qū)為激活的。
12.根據(jù)權(quán)利要求11的方法,其中的步驟(b)(v)是這樣執(zhí)行的提示用戶接受一個(gè)軟件許可證協(xié)議,并判斷用戶是否以一個(gè)預(yù)定方式應(yīng)答了這個(gè)提示。
13.根據(jù)權(quán)利要求11的方法,其中的存儲(chǔ)裝置含有一個(gè)主分區(qū)表,用于存儲(chǔ)第一分區(qū)的類型。
14.根據(jù)權(quán)利要求11的方法,其中的存儲(chǔ)裝置含有引導(dǎo)碼,用于引導(dǎo)該計(jì)算機(jī)。
15.根據(jù)權(quán)利要求11的方法,其中的步驟(a)還包括(ⅳ)至少把操作系統(tǒng)的一部分存儲(chǔ)在第一分區(qū)中。
16.根據(jù)權(quán)利要求11的方法,其中的步驟(a)還包括(ⅳ)至少把操作系統(tǒng)的一部分存儲(chǔ)在第二分區(qū)中。
17.一種用來(lái)在一個(gè)含有一個(gè)運(yùn)行操作系統(tǒng)的處理器和一個(gè)可被該處理器訪問(wèn)的、至少被分成兩個(gè)分區(qū)且第一分區(qū)是激活的并具有不可識(shí)別的類型而第二分區(qū)中含有一段軟件的存儲(chǔ)裝置的計(jì)算機(jī)中,讓用戶可對(duì)該軟件進(jìn)行受控制的訪問(wèn)的系統(tǒng),該系統(tǒng)包括用來(lái)使處理器能夠訪問(wèn)激活分區(qū)的裝置;用來(lái)在處理器安裝操作系統(tǒng)之前把激活分區(qū)的類型轉(zhuǎn)變成可被操作系統(tǒng)識(shí)別的類型的裝置;用來(lái)安裝操作系統(tǒng)的裝置;用來(lái)在安裝了操作系統(tǒng)之后把激活分區(qū)的類型轉(zhuǎn)變回到不可識(shí)別類型的裝置;用來(lái)判斷用戶是否可以訪問(wèn)這段軟件的裝置;用來(lái)在響應(yīng)于用戶可以訪問(wèn)這段軟件的判定時(shí)把第二分區(qū)指定為激活的裝置。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中的判斷裝置提示用戶接受一個(gè)軟件許可證協(xié)議,并判斷用戶是否按一個(gè)預(yù)定方式應(yīng)答了該提示。
19.根據(jù)權(quán)利要求17的系統(tǒng),其中的存儲(chǔ)裝置含有一個(gè)主分區(qū)表,用于存儲(chǔ)第一分區(qū)的類型。
20.根據(jù)權(quán)利要求17的系統(tǒng),其中的至少一部分操作系統(tǒng)是存儲(chǔ)在第一分區(qū)中的。
21.根據(jù)權(quán)利要求17的系統(tǒng),其中的至少一部分操作系統(tǒng)是存儲(chǔ)在第二分區(qū)中的。
全文摘要
一種計(jì)算機(jī),包括至少一個(gè)處理器,用于安裝和運(yùn)行引導(dǎo)碼和操作碼;至少一個(gè)可被該處理器訪問(wèn)的存儲(chǔ)裝置,該存儲(chǔ)裝置至少被分成兩個(gè)分區(qū),第一分區(qū)起初是被指定為激活的,并具有不能被操作碼識(shí)別的類型;其中,當(dāng)處理器運(yùn)行引導(dǎo)碼且第一分區(qū)為激活時(shí),該處理器將運(yùn)行一個(gè)類型改變例行程序;以及其中的類型改變例行程序指令處理器把第一分區(qū)的類型轉(zhuǎn)變成一個(gè)操作碼可識(shí)別的類型,使得該操作碼在被運(yùn)行時(shí)能識(shí)別第一分區(qū)。
文檔編號(hào)G06F9/06GK1215863SQ9812015
公開日1999年5月5日 申請(qǐng)日期1998年10月13日 優(yōu)先權(quán)日1997年10月15日
發(fā)明者艾倫·E·貝利茨 申請(qǐng)人:戴爾美國(guó)公司