專利名稱::程序代碼執(zhí)行方法及系統(tǒng)及固件更新方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種程序代碼執(zhí)行的方法及系統(tǒng),特別地涉及一種可自動(dòng)切換并可執(zhí)行不同操作系統(tǒng)間的程序代碼以及固件更新(firmwareupdate)方法。
背景技術(shù):
:目前的處理裝置如個(gè)人計(jì)算機(jī)中普遍使用視窗(Windows)操作系統(tǒng)作為其引導(dǎo)操作系統(tǒng)。視窗操作系統(tǒng)的視窗界面提供了友善的使用者操作界面,使得使用者可以利用視窗操作系統(tǒng)兼容的程序代碼,來執(zhí)行多項(xiàng)的功能,例如文本編輯、影像處理、媒體播放等等。然而,對(duì)于一些不能在目前操作系統(tǒng)執(zhí)行的程序代碼,通常需要使用者手動(dòng)地切換到與其對(duì)應(yīng)的操作系統(tǒng)下才能執(zhí)行。舉例來說,一般的固件更新如基本輸入輸出系統(tǒng)(BasicInput-OutputSystem,以下稱為BIOS)更新必須在磁盤操作系統(tǒng)(diskoperationsystem,以下稱為DOS)下才能完成。因此,使用者必須從Windows操作系統(tǒng)重新引導(dǎo)(reboot,重新開機(jī)),切換到DOS下,再放入更新磁盤或光盤,才能執(zhí)行BIOS更新動(dòng)作。等到執(zhí)行完成后,還要再手動(dòng)重新引導(dǎo),才能回到原Windows操作系統(tǒng)。這使得使用上非常不方便而且也增加使用上產(chǎn)生錯(cuò)誤的機(jī)會(huì)。因此,需要一個(gè)有效的程序代碼執(zhí)行方法,使得使用者可輕易地完成不同操作系統(tǒng)下的程序代碼執(zhí)行動(dòng)作。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的之一在于提供一種程序代碼執(zhí)行方法及系統(tǒng),使得使用者可輕易地完成不同操作系統(tǒng)下的程序代碼執(zhí)行動(dòng)作。基于上述目的,本發(fā)明提供一種程序代碼執(zhí)行方法,適用于具有主引導(dǎo)記錄的處理裝置,其中主引導(dǎo)記錄指向第一操作系統(tǒng)的第一加載模塊,使處理裝置可由第一操作系統(tǒng)啟動(dòng),此方法包括下列步驟建立虛擬磁盤驅(qū)動(dòng)器,其包括第二加載模塊、至少一段固件更新程序代碼以及備份記錄,并且第一加載模塊是第二操作系統(tǒng)的第三加載模塊;修改主引導(dǎo)記錄,使其指向虛擬磁盤驅(qū)動(dòng)器;重新引導(dǎo);重新依據(jù)主引導(dǎo)記錄,執(zhí)行虛擬磁盤驅(qū)動(dòng)器中的第二加載模塊,使處理裝置在第二操作系統(tǒng)啟動(dòng);將主引導(dǎo)記錄重新指向第一加載模塊;執(zhí)行虛擬磁盤驅(qū)動(dòng)器中的固件更新程序代碼;重新引導(dǎo);以及依據(jù)主引導(dǎo)記錄,使處理裝置在第一操作系統(tǒng)啟動(dòng)。其中,在修改主引導(dǎo)記錄使其指向虛擬磁盤驅(qū)動(dòng)器的步驟之前還包括以下步驟存儲(chǔ)主引導(dǎo)記錄,并在處理裝置在第二操作系統(tǒng)啟動(dòng)后,利用儲(chǔ)存的主引導(dǎo)記錄,將主引導(dǎo)記錄重新指向第一加載模塊。本發(fā)明還提供一種程序代碼執(zhí)行系統(tǒng),適用于具有主引導(dǎo)記錄的處理裝置,其包括至少一個(gè)磁盤,該磁盤包括至少一個(gè)第一磁盤位置和一個(gè)第二磁盤位置,該程序代碼執(zhí)行系統(tǒng)包括至少一個(gè)虛擬磁盤驅(qū)動(dòng)器,其設(shè)置于第二磁盤位置,且具有加載模塊、至少一段程序代碼,以及備份記錄。加載模塊為第二操作系統(tǒng)加載模塊,備份記錄則用于儲(chǔ)存主引導(dǎo)記錄。其中,虛擬磁盤驅(qū)動(dòng)器可使處理裝置重新引導(dǎo)至第二操作系統(tǒng),并且可在虛擬磁盤驅(qū)動(dòng)器執(zhí)行完成之后,使處理裝置在再次重新引導(dǎo)后,返回第一操作系統(tǒng)。本發(fā)明還提供一種固件更新方法,適用于具有主引導(dǎo)記錄的處理裝置,其中主引導(dǎo)記錄指向第一操作系統(tǒng)的加載模塊,使該處理裝置可在第一操作系統(tǒng)啟動(dòng),此固件更新方法包括下列步驟建立虛擬磁盤驅(qū)動(dòng)器,其包括第一加載模塊、至少一段固件更新程序代碼以及備份記錄,其中第一加載模塊為第二操作系統(tǒng)的加載模塊;儲(chǔ)存主引導(dǎo)記錄在虛擬磁盤驅(qū)動(dòng)器的備份記錄中,并修改主引導(dǎo)記錄指向虛擬磁盤驅(qū)動(dòng)器位置;第一次重新引導(dǎo),跳至虛擬磁盤驅(qū)動(dòng)器執(zhí)行,并依據(jù)虛擬磁盤驅(qū)動(dòng)器的第一加載模塊,使處理裝置以第二操作系統(tǒng)啟動(dòng);利用虛擬磁盤驅(qū)動(dòng)器中的備份記錄將主引導(dǎo)記錄還原,指向第一操作系統(tǒng)的加載模塊;執(zhí)行虛擬磁盤驅(qū)動(dòng)器中的固件更新程序代碼;以及利用主引導(dǎo)記錄指向的第一操作系統(tǒng)的加載模塊,第二次重新啟動(dòng)回到第一操作系統(tǒng)。為使本發(fā)明的上述和其它目的、特征、和優(yōu)點(diǎn)能更明顯易懂,下文特舉出優(yōu)選實(shí)施例,并配合附圖,作詳細(xì)說明如下。圖1示出了現(xiàn)有技術(shù)的開機(jī)流程的示意圖。圖2示出了現(xiàn)有技術(shù)的主引導(dǎo)記錄的示意圖。圖3A示出了根據(jù)本發(fā)明實(shí)施例的處理裝置示意圖。圖3B示出了磁盤空間示意圖。圖3C示出了根據(jù)本發(fā)明實(shí)施例的虛擬磁盤驅(qū)動(dòng)器示意圖。圖4示出了根據(jù)本發(fā)明實(shí)施例的軟件執(zhí)行方法流程。圖5示出了根據(jù)本發(fā)明實(shí)施例的固件更新方法流程。具體實(shí)施例方式圖1示出了現(xiàn)有技術(shù)的處理裝置開機(jī)流程示意圖100。首先,開機(jī)時(shí)電源供應(yīng)器啟動(dòng)(步驟S110)。接著,處理裝置中的中央處理器(CPU)開始執(zhí)行BIOS測試(步驟S120),而后執(zhí)行開機(jī)自我測試(poweronselftest,POST)(步驟S130)。開機(jī)自我測試完成后,BIOS將根據(jù)處理裝置的設(shè)定順序搜尋各個(gè)磁盤,讀入主引導(dǎo)記錄(masterbootrecord,MBR)(步驟S140)。主引導(dǎo)記錄為磁盤中最重要的引導(dǎo)扇區(qū),通常位于磁盤的磁盤空間起始位置。舉例來說,主引導(dǎo)記錄位于磁盤的第0軌。圖2示出了現(xiàn)有技術(shù)的主引導(dǎo)記錄200的示意圖。主引導(dǎo)記錄200中包括了一個(gè)主引導(dǎo)程序(masterbootprogram)210以及磁盤分割表(partitiontable)220,主引導(dǎo)程序210中所存放的操作系統(tǒng)加載模塊(operationsystemloader),是用來告訴處理裝置在啟動(dòng)之后要加載哪個(gè)操作系統(tǒng),和到哪里加載。如此當(dāng)系統(tǒng)順利通過BIOS之后就會(huì)加載主引導(dǎo)記錄指定的加載模塊(步驟S150)。最后,啟動(dòng)對(duì)應(yīng)上述加載模塊的操作系統(tǒng),完成引導(dǎo)動(dòng)作(步驟S160)。因此,若要啟動(dòng)不同操作系統(tǒng),必須加載對(duì)應(yīng)的操作系統(tǒng)加載模塊。圖3A示出一個(gè)根據(jù)本發(fā)明實(shí)施例之處理裝置300。處理裝置300中至少包括中央處理器(CPU)310、內(nèi)存單元320、磁盤330、總線(bus)340以及BIOS芯片350。處理裝置300中的其它單元例如影像控制單元、音效控制單元(未顯示在圖中)的運(yùn)作非本發(fā)明的重點(diǎn),在此省略。其中,中央處理器(CPU)310、內(nèi)存單元320、磁盤330以及BIOS芯片350通過總線340彼此耦接在一起。其中,磁盤330可以是硬盤。磁盤330包括具有多個(gè)磁盤位置的磁盤空間332。舉例來說,上述磁盤位置可表示為磁盤的第幾個(gè)磁道。圖3B示出磁盤空間示意圖。如圖所示,第0個(gè)磁盤位置包括主引導(dǎo)記錄M,第X個(gè)磁盤位置包括操作系統(tǒng)的加載模塊,而第Y個(gè)磁盤位置則包括一個(gè)虛擬磁盤驅(qū)動(dòng)器。圖3C示出根據(jù)本發(fā)明實(shí)施例的虛擬磁盤驅(qū)動(dòng)器V的示意圖。虛擬磁盤驅(qū)動(dòng)器V中至少包括了操作系統(tǒng)加載模塊334、程序代碼336以及備份記錄338。操作系統(tǒng)加載模塊334可使處理裝置300在指定的操作系統(tǒng)啟動(dòng),使處理裝置300可切換到不同操作系統(tǒng)下運(yùn)作。舉例來說,操作系統(tǒng)加載模塊334可以是DOS或Windows操作系統(tǒng)的加載模塊,使處理裝置300可分別在DOS或Windows操作系統(tǒng)啟動(dòng)。程序代碼336可為BIOS更新程序代碼、固件更新程序代碼或任何應(yīng)用程序代碼。備份記錄338用來備份主引導(dǎo)記錄的所有數(shù)據(jù),以便將修改的主引導(dǎo)記錄還原成原來的設(shè)定狀態(tài)。圖4示出根據(jù)本發(fā)明實(shí)施例的軟件執(zhí)行方法的流程400。首先,如步驟S410,首先在磁盤位置中建立虛擬磁盤驅(qū)動(dòng)器。此虛擬磁盤驅(qū)動(dòng)器中至少包括了操作系統(tǒng)加載模塊、程序代碼以及備份記錄,如圖3C所示。接著,如步驟S420,儲(chǔ)存目前主引導(dǎo)記錄在此虛擬磁盤驅(qū)動(dòng)器的備份記錄中,并修改主引導(dǎo)記錄指向虛擬磁盤驅(qū)動(dòng)器。接著,使處理裝置自動(dòng)重新引導(dǎo)。此時(shí)主引導(dǎo)記錄已修改,因此重新引導(dǎo)后,處理裝置將根據(jù)主引導(dǎo)記錄,跳至虛擬磁盤驅(qū)動(dòng)器位置執(zhí)行(步驟S430),并根據(jù)虛擬磁盤驅(qū)動(dòng)器所指定的操作系統(tǒng)加載模塊,加載指定的操作系統(tǒng),如步驟S440。接著,進(jìn)入指定的操作系統(tǒng)后,如步驟S450,利用虛擬磁盤驅(qū)動(dòng)器中的備份記錄將主引導(dǎo)記錄還原成原來的設(shè)定狀態(tài),使其指向原操作系統(tǒng)的加載模塊。此可確保當(dāng)程序執(zhí)行失敗造成系統(tǒng)死機(jī)時(shí),依舊可于下次重新開機(jī)后,啟動(dòng)于原操作系統(tǒng)。然后,如步驟S460,執(zhí)行虛擬磁盤驅(qū)動(dòng)器中所存放的程序代碼。最后,當(dāng)所有程序代碼執(zhí)行完成后,再次重新引導(dǎo),由于此時(shí)主引導(dǎo)記錄已被還原,因此重新引導(dǎo)后,處理裝置將根據(jù)主引導(dǎo)記錄指向的操作系統(tǒng)加載模塊,重新啟動(dòng)回到原操作系統(tǒng),如步驟S470所示。此外,本發(fā)明還包括提供使用者界面,用于指定并執(zhí)行上述程序代碼。同時(shí)也可在此使用者界面中顯示提示信息,令使用者了解程序代碼執(zhí)行的目的、執(zhí)行的流程以及注意事項(xiàng),避免使用者因不當(dāng)操作而產(chǎn)生不必要的風(fēng)險(xiǎn)。另外,也可利用一般的轉(zhuǎn)文件程序,將軟盤磁盤或光盤片的數(shù)據(jù)轉(zhuǎn)換成映像文件(imagefile)放到虛擬裝置中,再利用轉(zhuǎn)文件程序來執(zhí)行。根據(jù)本發(fā)明的方法,使用者只需在原操作系統(tǒng),利用使用者界面來簡單設(shè)定,接著,處理裝置就可以自動(dòng)完成需要在不同操作系統(tǒng)間切換執(zhí)行的程序代碼,再回到原操作系統(tǒng),而不需額外的軟盤磁盤或光盤片及繁復(fù)的操作。此外,由于無需更改扇區(qū)分割,因此可適用于各種操作系統(tǒng)平臺(tái),例如WindowsNT、Linux。圖5示出一個(gè)根據(jù)本發(fā)明實(shí)施例的固件更新方法的流程500,用于說明如何利用本發(fā)明實(shí)現(xiàn)從Windows操作系統(tǒng)下完成DOS下的固件更新流程。首先,如步驟S510,處理裝置300處于待機(jī)狀態(tài),此時(shí)主引導(dǎo)記錄M指向Windows操作系統(tǒng)的加載模塊W。接著,如步驟S520,開啟使用者更新界面,指定欲執(zhí)行的固件更新動(dòng)作。接著,如步驟S530,在磁盤位置Y上建立虛擬磁盤驅(qū)動(dòng)器V,此虛擬磁盤驅(qū)動(dòng)器V中包括了DOS加載模塊D、固件更新程序代碼C以及備份記錄BR。接著,如步驟S540,儲(chǔ)存目前的主引導(dǎo)記錄在虛擬磁盤驅(qū)動(dòng)器V的備份記錄BR中,并修改主引導(dǎo)記錄指向虛擬磁盤驅(qū)動(dòng)器的磁盤位置,即主引導(dǎo)記錄指向磁盤位置Y。接著,第一次重新引導(dǎo),跳至虛擬磁盤驅(qū)動(dòng)器V執(zhí)行(步驟S550),并根據(jù)虛擬磁盤驅(qū)動(dòng)器V的DOS加載模塊D,使處理裝置啟動(dòng)于DOS下,如步驟S560。接著,如步驟S570,利用虛擬磁盤驅(qū)動(dòng)器V中的備份記錄BR將主引導(dǎo)記錄M還原成原來的設(shè)定,指向Windows系統(tǒng)的加載模塊W。然后,如步驟S580,執(zhí)行虛擬磁盤驅(qū)動(dòng)器V中的固件更新程序代碼C。最后,當(dāng)固件更新程序代碼C執(zhí)行完成后,再次重新引導(dǎo),利用主引導(dǎo)記錄M指向的Windows操作系統(tǒng)加載模塊W,重新啟動(dòng)回到Windows操作系統(tǒng),如步驟S590。通過本發(fā)明的固件更新方法,使用者只需于Windows操作系統(tǒng)下,利用使用者界面來簡單設(shè)定,接著,處理裝置就可以自動(dòng)完成在DOS下執(zhí)行的固件更新程序代碼,再回到原Windows操作系統(tǒng),而不需額外的軟盤磁盤及繁復(fù)的操作。此外,不同廠商所提供的固件更新程序代碼也都可被執(zhí)行,沒有兼容性的問題。因此,可向使用者提供一個(gè)安全且穩(wěn)定的固件更新方法。上述說明提供數(shù)種不同實(shí)施例或應(yīng)用本發(fā)明的不同特性的實(shí)施例。實(shí)例中的特定裝置以及流程用于幫助闡釋本發(fā)明的主要精神及目的,當(dāng)然本發(fā)明不限于此。因此,雖然本發(fā)明已以優(yōu)選實(shí)施例披露如上,然而其并非用以限定本發(fā)明,任何本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可做些許更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求所界定的為準(zhǔn)。權(quán)利要求1.一種固件更新方法,適用于具有主引導(dǎo)記錄的處理裝置,其中所述主引導(dǎo)記錄指向第一操作系統(tǒng)的第一加載模塊,使該處理裝置可在該第一操作系統(tǒng)啟動(dòng),該固件更新方法包括下列步驟建立虛擬磁盤驅(qū)動(dòng)器,其包括第二加載模塊、至少一段固件更新程序代碼以及備份記錄,其中該第一加載模塊為第二操作系統(tǒng)的第三加載模塊;儲(chǔ)存該主引導(dǎo)記錄在該虛擬磁盤驅(qū)動(dòng)器的所述備份記錄中,并修改該主引導(dǎo)記錄指向所述虛擬磁盤驅(qū)動(dòng)器位置;重新引導(dǎo),跳至所述虛擬磁盤驅(qū)動(dòng)器位置執(zhí)行;根據(jù)所述虛擬磁盤驅(qū)動(dòng)器的所述第二加載模塊,使所述處理裝置在所述第二操作系統(tǒng)啟動(dòng);利用所述備份記錄將所述主引導(dǎo)記錄還原,使其指向所述第一加載模塊;執(zhí)行所述虛擬磁盤驅(qū)動(dòng)器中的所述固件更新程序代碼;以及重新引導(dǎo),根據(jù)所述主引導(dǎo)記錄指向的所述第一加載模塊,使所述處理裝置返回該第一操作系統(tǒng)。2.根據(jù)權(quán)利要求1所述的固件更新方法,其中所述第一操作系統(tǒng)與所述第二操作系統(tǒng)為不同位的操作系統(tǒng)。3.根據(jù)權(quán)利要求2所述的固件更新方法,其中所述第一操作系統(tǒng)為視窗操作系統(tǒng)。4.根據(jù)權(quán)利要求2所述的固件更新方法,其中所述第二操作系統(tǒng)為DOS。5.根據(jù)權(quán)利要求1所述的固件更新方法,其中所述固件更新程序代碼為基本輸入輸出系統(tǒng)更新程序代碼。6.根據(jù)權(quán)利要求5所述的固件更新方法,其中該固件更新程序代碼為映像檔案。7.一種程序代碼執(zhí)行方法,適用于具有主引導(dǎo)記錄的處理裝置,其中該主引導(dǎo)記錄指向第一操作系統(tǒng)的第一加載模塊,使所述處理裝置可在所述第一操作系統(tǒng)啟動(dòng),所述程序代碼執(zhí)行方法包括下列步驟建立虛擬磁盤驅(qū)動(dòng)器,其包括第二加載模塊、至少一段程序代碼以及備份記錄,并且所述第二加載模塊為第二操作系統(tǒng)的第三加載模塊;修改所述主引導(dǎo)記錄,使其指向所述虛擬磁盤驅(qū)動(dòng)器;重新引導(dǎo);重新根據(jù)所述主引導(dǎo)記錄,執(zhí)行所述虛擬磁盤驅(qū)動(dòng)器中的所述第二加載模塊,使所述處理裝置在所述第二操作系統(tǒng)啟動(dòng);將所述主引導(dǎo)記錄重新指向所述第一加載模塊;執(zhí)行所述虛擬磁盤驅(qū)動(dòng)器中的所述程序代碼;重新引導(dǎo);以及根據(jù)所述主引導(dǎo)記錄,使所述處理裝置在所述第一操作系統(tǒng)啟動(dòng)。8.根據(jù)權(quán)利要求7所述的程序代碼執(zhí)行方法,其中在所述修改所述主引導(dǎo)記錄,使其指向所述虛擬磁盤驅(qū)動(dòng)器的步驟之前還包括以下步驟儲(chǔ)存所述主引導(dǎo)記錄,并在所述處理裝置在所述第二操作系統(tǒng)啟動(dòng)后,利用儲(chǔ)存的所述主引導(dǎo)記錄,將所述主引導(dǎo)記錄重新指向所述第一加載模塊。9.根據(jù)權(quán)利要求7所述的程序代碼執(zhí)行方法,其中所述第一操作系統(tǒng)與所述第二操作系統(tǒng)為不同位的操作系統(tǒng)。10.根據(jù)權(quán)利要求7所述的程序代碼執(zhí)行方法,其中所述固件更新程序代碼為映像文件。11.根據(jù)權(quán)利要求7所述的程序代碼執(zhí)行方法,其中所述虛擬磁盤驅(qū)動(dòng)器還包括第一加載模塊、至少一段程序代碼以及備份記錄,其中所述第一加載模塊為所述第二操作系統(tǒng)加載模塊。12.一種程序代碼執(zhí)行系統(tǒng),適用于具有主引導(dǎo)記錄的處理裝置,所述處理裝置包括至少一個(gè)磁盤,所述磁盤包括至少第一磁盤位置與第二磁盤位置,所述程序代碼執(zhí)行系統(tǒng)包括至少一個(gè)虛擬磁盤驅(qū)動(dòng)器,其設(shè)置在所述第二磁盤位置,并且包括加載模塊,其為第二操作系統(tǒng)加載模塊;至少一段程序代碼;以及備份記錄,用以儲(chǔ)存所述主引導(dǎo)記錄,其中,所述虛擬磁盤驅(qū)動(dòng)器可使所述處理裝置重新引導(dǎo)至所述第二操作系統(tǒng),并且可在所述虛擬磁盤驅(qū)動(dòng)器執(zhí)行完成后,使所述處理裝置再次重新引導(dǎo)后,返回所述第一操作系統(tǒng)。13.根據(jù)權(quán)利要求12所述的程序代碼執(zhí)行系統(tǒng),其中所述第一操作系統(tǒng)與所述第二操作系統(tǒng)為不同位的操作系統(tǒng)。14.根據(jù)權(quán)利要求12所述的程序代碼執(zhí)行系統(tǒng),其中還包括使用者界面,用于指定并執(zhí)行所述程序代碼。15.根據(jù)權(quán)利要求12所述的程序代碼執(zhí)行系統(tǒng),其中所述程序代碼為更新程序代碼。全文摘要本發(fā)明提供一種程序代碼執(zhí)行方法,適用于具有主引導(dǎo)記錄的處理裝置,其中主引導(dǎo)記錄指向第一操作系統(tǒng)的第一加載模塊,使處理裝置可在第一操作系統(tǒng)啟動(dòng),此執(zhí)行方法包括下列步驟在磁盤空間中,建立虛擬磁盤驅(qū)動(dòng)器;儲(chǔ)存主引導(dǎo)記錄于虛擬磁盤驅(qū)動(dòng)器中,并修改主引導(dǎo)記錄,使其指向虛擬磁盤驅(qū)動(dòng)器;第一次重新引導(dǎo),跳至虛擬磁盤驅(qū)動(dòng)器執(zhí)行;虛擬磁盤驅(qū)動(dòng)器使處理裝置在第二操作系統(tǒng)啟動(dòng);利用虛擬磁盤驅(qū)動(dòng)器,還原主引導(dǎo)記錄,使其指向第一操作系統(tǒng)的加載模塊;執(zhí)行虛擬磁盤驅(qū)動(dòng)器中的至少一段程序代碼;以及第二次重新引導(dǎo),返回第一操作系統(tǒng)。文檔編號(hào)G06F9/445GK101075194SQ20061007836公開日2007年11月21日申請(qǐng)日期2006年5月15日優(yōu)先權(quán)日2006年5月15日發(fā)明者林君學(xué)申請(qǐng)人:明基電通股份有限公司