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