專利名稱:一種不依賴操作系統更新軟件數據的計算機系統及方法
技術領域:
本發明涉及計算機應用領域,特別是涉及一種不依賴于操作系統的更新軟件數據的計算機系統及在該計算機系統上更新軟件數據的方法。
背景技術:
目前,計算機技術已經廣泛的應用于人們社會生活的各個領域,已經成為人們社會生活不可或缺的一部分,人們對計算機的依賴越來越大,同時對計算機的管理、維護、自更新的需求也越來越高。不僅限于企業用戶,個人計算機用戶也希望能夠簡單方便的管理維護計算機,具備較高計算機管理能力。在眾多的計算機管理問題中,人們最常遇到的技術問題是針對計算機的軟件的管理和維護問題,而對于目前的主流操作系統(OSoperation system)-Windows系列操作系統和Unix/Linux操作系統來說,軟件可以包括隨機驅動程序、升級軟件、BIOS image,隨機手冊,維護軟件等等。而軟件的維護和管理則是令人們比較頭痛的一個問題。根據系統硬件的不同,操作系統還可能需要即時更新這些不同的軟件,以保證這些軟件保持最新和最有效的版本,而由于某些用戶誤操作或硬件異常情況,也可能導致現有軟件被破壞,特別是在操作系統本身被破壞或需要升級安裝時,可能需要原有軟件的支持。
目前,提供系統常用的軟件存儲更新的方法主要有兩種(1)出廠時提供隨機軟件的安裝軟盤或光盤,這樣在需要使用軟件時,用戶可以插入光盤或軟盤執行操作。
該方法的缺陷是存儲載體易遺失。在需要隨機光盤或軟盤時,這些光盤或軟盤往往已經難于找到。同時,其也不能應對軟件的更新需求。在操作系統升級、硬件升級、或硬件驅動升級等系統狀態變化的情況下,舊的軟件可能將失去實際意義,用戶可能需要新的高效率軟件支持。但是該方法不支持軟件的存儲更新需求。
(2)另外一種方法是從網絡下載軟件更新程序。用戶在需要安裝或更新軟件時,從供應商指定的網址下載所需的最新軟件。該方法是目前常用的一種更新軟件獲取方法,但是該方法一般是在操作系統之上完成,其主要原因源于遠程網絡下載需要的網絡支持功能,一般在操作系統之上才能夠提供,而傳統通用輸入輸出系統的基本功能不支持網絡。
該方法的缺陷是需要具備網絡功能的操作系統支持才能完成功能,在本機操作系統網絡功能故障或應對操作系統重裝的應用場景時,該方法不能適用。由此可見,該方法對運行環境要求較高,不能應對較為惡劣情況下的軟件安裝及使用要求。
發明內容
本發明的目的在于提供一種在EFI BIOS上實現不依賴操作系統更新軟件數據的計算機系統及方法。其能夠適用于各種復雜的需求情況,包括在操作系統尚未安裝或者崩潰的時候也可以適用,只需利用計算機自身資源即可完成軟件數據更新。
為達到上述目的,本發明提供了一種不依賴操作系統更新軟件數據的計算機系統,包括硬件和軟件,硬件中包括主板,中央處理器,內存,硬盤及外設,主板和中央處理器分別為支持EFI規范的主板和中央處理器,所述軟件包括隨機攜帶的軟件,觸發管理所述軟件事件的EFI軟件管理器觸發模塊,更新所述軟件的EFI軟件管理器模塊以及將計算機系統連接到遠程服務器的網絡連接功能模塊。
所述軟件可以為計算機隨機攜帶的公用軟件,如驅動程序文件,聯機手冊文件,BIOS鏡像文件,在線服務文件中的一個或者多個支持安全加密檢驗的EFI FV壓縮文件。
所述的軟件存儲于BIOS ROM的剩余空間,或者主機板上的擴展BIOS,或者具有主保護區域硬盤,或者通過USB接口連接的具有訪問控制功能的USB盤中的一種或者多種存貯器中。
所述的EFI軟件管理器模塊包括更新所述軟件的軟件更新模塊和將軟件拷貝到另外位置的軟件文件拷貝模塊。
同時,本發明還提供了一種不依賴操作系統更新軟件數據的方法,包括下列步驟
步驟一計算機上電,在EFI BIOS自檢完成后,運行EFI軟件管理器觸發模塊(22),用戶選擇直接進入啟動操作系統階段;或者,啟動進入EFI軟件管理器(21);步驟二EFI軟件管理器顯示操作界面,啟動網絡連接功能模塊,建立網絡連接;步驟三啟動軟件更新模塊,判斷本地軟件是否有可更新的版本,顯示可更新文件列表,用戶更新選擇需要更新的文件,下載更新軟件;步驟四關閉網絡連接,結束本次更新,返回軟件管理器。
上述方法中還可以包括下列步驟步驟a)預先設置整理需要隨機存儲的軟件;步驟b)利用EFI的壓縮功能,將需要存儲于BIOS ROM的剩余空間,或者主機板上的擴展option ROM中的軟件壓縮形成獨立的壓縮文件;步驟c)將所述壓縮文件打包形成獨立的EFI FV文件,存儲于BIOSROM的剩余空間,或者主機板上的擴展option ROM;步驟d)將其它的軟件直接加密存儲在具有保護區域硬盤,或者通過USB接口連接的具有訪問控制功能的USB盤中的一種或者多種存貯器中。
所述更新軟件可以是為自動更新進入該管理軟件后,即主動判斷指定的網絡位置的軟件有否更新,發現軟件具備更新狀況自動進行軟件升級;所述更新軟件為手動更新將顯示當前具有升級版本的軟件列表,用戶手工選擇需要更新的軟件。
所述步驟二包括通過軟件文件拷貝模塊將存儲在存儲器中的軟件拷貝到用戶指定的存儲載體上。
本發明的有益效果是本發明有效解決其它相關實現方法的弊端,實現計算機隨機存儲公用程序,而且存儲位置安全可靠,并增加靈活的存儲部署方式;其充分利用EFI擴展功能特性,提供EFI支持的軟件動態更新功能,滿足隨機軟件動態更新的高級應用需求;本發明的方法在EFI BIOS層面即可實現,特別適合于與操作系統獨立的操作方法。本發明可以提供給系統非常好的可維護性能和易用性能,降低廠商維護成本,提供用戶可用性,具有較高的實用價值。
圖1是本發明的計算機系統軟件架構圖;圖2是本發明的軟件存儲示意圖;圖3是本發明的軟件數據更新流程圖;圖4是本發明的軟件數據更新遠程服務器工作流程圖;圖5是本發明的EFI軟件管理器軟件更新界面示意圖;圖6是本發明的EFI軟件管理器文件拷貝界面示意圖;圖7是本發明支持的EFI BIOS存儲布局圖;圖8是Fv_data的單獨Firmware卷格式示意圖;圖9是對Fv_data卷的讀訪問操作流程圖。
具體實施例方式
下面結合附圖進一步詳細說明本發明。
首先,為詳細說明本發明,下面先說明EFI技術本發明將涉及可擴展固件接口(EFI)技術,可擴展固件接口(ExtensibleFirmware Interface,EFI)是1999年出現的用以取代沿用多年的基本輸入輸出系統(BIOS)的新一代接口程序,關于可擴展固件接口的介紹,詳見UEFI論壇關于EFI技術的介紹http://www.UEFI.org。EFI介于硬件設備以及操作系統(比如Windows或者Linux)之間。與傳統的BIOS不同,EFI使用全球最廣泛的高級語言C語言進行編寫,其提供了既具有傳統BIOS的功能又有優于傳統BIOS的擴展功能,在設計機制和架構上也有別于傳統BIOS的實現,是下一代BIOS接口規范,這就意味著有更多的工程師可以參與EFI的開發工作,添加許多更有價值的功能。
EFI具備的基本功能為硬件平臺初始化;支持啟動操作系統;脫離操作系統的平臺管理工具。
EFI的工作模式可以簡單歸納為啟動系統,標準固件平臺初始化,接著從加載EFI驅動程序庫以及及執行相關程序,在EFI系統啟動菜單中選取所要進入的系統并向EFI提交啟動引導代碼,正常的話將進入系統,否則將中止啟動服務并返回EFI系統啟動菜單。工程師們可以按照不同的需要為EFI增加新的功能,諸如更加詳細實用的診斷功能、自我配置程序、列出系統可能發生的故障等等。
如圖1-9所示,本發明的不依賴操作系統更新軟件數據的計算機系統,是在EFI BIOS上實現的,其包括硬件和軟件,硬件包括主板,中央處理器(CPU),內存,硬盤及外設。
主板和CPU分別為支持EFI規范的主板和CPU。
如圖1所示,所述軟件包括EFI FIRMWARE層1,EFI應用層2和操作系統層3。
所述的EFI FIRMWARE層包括網絡連接功能模塊11。
所述的EFI應用層包括EFI軟件管理器觸發模塊22,EFI軟件管理器模塊21。
EFI軟件管理器觸發模塊22在EFI BIOS自檢完成后,在Firmware啟動過程中,在調用操作系統的引導程序之前,運行EFI軟件管理器觸發模塊22,該模塊將在顯示器上給用戶提示按下特定功能鍵(如F9)可以啟動EFI軟件管理器模塊21,如果用戶在T等待時間內按下特定功能鍵,將啟動軟件管理器模塊21,否則將直接進入操作系統啟動。
EFI軟件管理器模塊21是一個運行在EFI上管理模塊,包括以下功能模塊1)軟件更新模塊。利用EFI的網絡連接功能支持通過網絡更新下載需要的軟件的功能,滿足軟件更新用戶需求。其包括自動更新和手動更新兩種方式a)自動更新是指進入該管理軟件后,主動判斷指定的網絡位置的軟件有否可更新軟件,發現軟件具備更新狀況自動進行軟件升級;b)手動更新將顯示當前具有升級版本的軟件列表,允許用戶手工選擇需要更新的軟件。
2)軟件文件拷貝模塊。如圖6所示,軟件文件拷貝模塊將存儲在BIOSROM中或者其他存儲位置的軟件拷貝到用戶指定的存儲載體上,特別是在計算機重裝操作系統時,可能需要將軟件到軟盤以備安裝操作系統時使用,在計算機操作系統尚未安裝無法進行文件拷貝的情況下,利用EFI BIOS運行環境可以為用戶解決很大的困難。
該模塊還支持除文件刪除、修改以外的其他基本文件操作功能,如列表文件,修改文件屬性,改名等。
網絡連接功能模塊11在EFI BIOS自檢完成后,通過EFI FIRMWARE的網絡協議EFI TCP/IP模塊,連接到軟件可以更新的遠程服務器,對遠程服務器進行訪問和控制,通常是連接到國際互聯網(Internet),通過軟件廠商的國際互聯網網址下載更新軟件。
在本實施例中,所述軟件還包括有計算機隨機攜帶的公用軟件等軟件4。
如圖2所示,在計算機出廠之前,或者在升級計算機的EFI BIOS7的過程中,可以把軟件管理器模塊21,軟件管理器觸發模塊22與網絡連接功能模塊11與EFI BIOS的原有功能模塊集成一起,同時將計算機隨機攜帶的公用軟件4封裝,并使用BIOS ROM7的燒寫工具把它們寫入到BIOS ROM7中,或者主機板上的擴展OPTION ROM5中,或者直接采用文件拷貝的方法存儲到本地安全存儲部件,如具有保護區域(Host protected Area,HPA)的硬盤6、外置安全存儲部件,如通過USB接口連接的具有訪問控制功能的USB盤上。
下面結合的可隨時更新軟件數據的計算機系統進一步說明其底層身份認證方法1)存儲計算機隨機攜帶的公用軟件等軟件,包括隨機驅動程序文件,聯機手冊文件,BIOS鏡像文件(BIOS image),在線服務文件等各種軟件,其包括以下步驟11)預先設置整理需要隨機存儲的隨機公用軟件;12)利用EFI的壓縮功能,將需要存儲于BIOS ROM的剩余空間,或者主機板上的擴展option ROM中的軟件壓縮形成獨立的壓縮文件;EFI shell中就帶有壓縮及解壓縮命令,用戶可以直接調用使用,生成壓縮文件的后綴名不作限定,命令如下EfiCompress Infile OutfileEfiDecompress Infile Outfile
其核心是用一個固定的壓縮及解壓縮算法,將指定輸入文件進行壓縮,并輸出到新的文件名中,其直接利用EFI壓縮功能,不用再另行編寫代碼,增加附加存儲空間。
13)將所述壓縮文件打包形成獨立的EFI FV文件,存儲于BIOS ROM7的剩余空間,或者主機板上的擴展option ROM5;14)將其它的軟件直接加密存儲在具有保護區域硬盤6,或者通過USB接口連接的具有訪問控制功能的USB盤中的一種或者多種存貯器中。
2)如圖3所示,用戶按下計算機的POWER ON按鈕后,在EFI BIOS自檢完成后,讀寫并運行EFI軟件管理器觸發模塊22,在顯示器上給用戶提示按下特定功能鍵可以進入更新軟件的信息,如果用戶在T時間內不按下特定功能鍵,則直接進入啟動操作系統階段;否則,當用戶按下特定功能鍵時,啟動進入EFI軟件管理器模塊21;21)其中,對存儲有EFI鏡像文件和隨機公用軟件的讀寫包括如下過程211)將隨機公用軟件獨立封裝成標準格式的單獨FV(FVFirmwareVolumn,相當于文件系統)文件,通過EFI提供的FV文件訪問接口進行訪問。
一個本發明支持的EFI BIOS的存儲布局如圖7所示,將公用軟件獨立封裝成標準格式的單獨FV文件Fv_data卷文件,增加的Fv_data卷文件存放在BIOS ROM的剩余空間內,其中的多個FV File子模塊即為不同的公用軟件數據文件。然后通過EFI提供的FV文件訪問接口進行訪問。
EFI提供的FV文件訪問接口可以參照EFI Framework規范《IntelPlatform Innovation Framework for EFI Firmware Volume Specification》Version0.9 September 16,2003。
212)將公用軟件獨立封裝成單獨FV文件,然后通過EFI軟件管理器21支持的接口進行訪問。
圖8是Fv_data的單獨Firmware卷格式示意圖。按照EFI規范定義,FV卷應該由多個文件Section組成,如圖8,Fv_data卷由多個葉節點類型的Section(leaf Section)組成,每個Section有自己標準定義的Section Header,接下來的部分應該是Section data(例如可以是壓縮的文件數據),本發明的格式將Section data通過“預定義的加密算法”進行了加密,并封裝了文件頭(例如但不局限于附加支持安全加密CRC校驗文件頭)。通過EFI標準FV寫指令接口實現將預先合成的上述格式的FV_data文件寫入BIOS ROM存儲空間內。
本發明所提供的讀寫訪問接口是在EFI BIOS的FVFirmware Volume標準訪問接口上的擴充,其擴充接口為這些軟件數據的訪問提供了更優及更安全的訪問。圖8中“自定義Header”在標準FV文件定義中是不存在的,可以是通過加密算法計算的文件頭數據.這樣,只有本發明的方法提供的公用軟件管理器才能識別該公用軟件FV格式,其它的通用訪問形式由于不識別其特殊文件頭設計,不能有效訪問,從而達到對特有部分的安全保護設計。
本發明所提供的對FV_data卷的讀訪問操作流程圖9所示a)系統首先定位FV_data卷,即FV_data文件系統;b)獲得FV_data卷的下一個文件;c)獲取FVFile Section,得到File Section Data部分的數據;d)分析c)得到的File Section Data部分的數據,獲得自定義文件表頭;e)比較表頭中存儲的文件名,是否為要讀取的文件如果不是,則返回步驟b);f)如果是,則讀取該文件的加密文件數據部分;g)根據預定義的加解密算法解密文件數據,得到解密的文件數據。
由此可見,只有實現該接口的本專利EFI軟件管理器21才知道其設計格式,可以有效訪問到存儲在EFI BIOS軟件數據。其它通用接口無法訪問。
3)EFI軟件管理器顯示軟件更新操作界面,如圖5所示,所述的文件包括驅動程序,聯機手冊文件,BIOS鏡像文件(BIOS image),在線服務文件等各種軟件。
31)用戶選擇遠程更新文件功能時,啟動網絡連接功能模塊11,網絡連接功能模塊11首先判斷EFI是否已經加載網絡協議,如果沒有加載,就加載所需的網絡協議,如果發現EFI已經加載網絡協議,則不需要加載網絡協議,建立網絡連接。
較佳地,本實施例采用基于安全保障的網絡功能優化定制處理EFI的網絡功能只是支持了網絡協議的基本功能,限定用戶訪問網址為所述軟件下載網址位置,禁止訪其它網址位置,保證不受其它網址的安全威脅,同時不支持不必要的網絡端口訪問功能,關閉其它不必要的網絡連接途徑。該方法即可以很好的滿足應用需求,又可以有效杜絕其它網絡安全漏洞,直接針對計算機供貨商的售后服務策略,有效提升了產品品質;32)啟動軟件更新模塊,判斷本地軟件是否有可更新的版本,顯示可更新文件列表,用戶更新選擇需要更新的文件,下載更新軟件;可更新文件列表如表1所示表1
33)關閉網絡連接,結束本次更新,返回EFI軟件管理器21;4)如圖6所示,用戶選擇文件拷貝時,啟動軟件文件拷貝模塊,彈出窗口可以選擇拷貝的位置,例如軟驅或者移動U盤,用戶選擇后進行拷貝操作。
5)結束運行EFI軟件管理器,返回后重新啟動計算機。
如圖4所示,遠程服務器可以按以下步驟工作1)遠程服務器啟動;2)等待客戶端建立網絡連接;3)如果有客戶端連接請求,則和客戶端建立網絡連接;4)和客戶端比較軟件的版本是否一致;5)將比較結果傳送給客戶端;6)是否得到客戶端更新請求;7)如果是,則進行遠程更新,然后進行遠程更新;否則,直接關閉本次網絡連接,返回步驟2)等待下一次客戶端建立網絡連接請求。
本發明是一種實用性和適用性較強的軟件動態存儲更新及下載方法,是在EFI BIOS層面上擴展實現的方法,它無需任何硬件支持,和計算機綁定集成,適合于操作系統尚未安裝或崩潰的應用環境,是一種實用性較好的發明方法。其提供穩定可靠的隨機存儲效果,無需任何光盤、軟盤等外部存儲載體,有效的保證了公用軟件存儲載體不易遺失的特點。采用與主機硬件綁定的部署方法,大大提升了主機整體品牌形象。無需操作系統支持的安全遠程網絡軟件更新功能,充分利用EFI的網絡功能,并對該網絡功能進行優化定制處理,限制訪問固定網絡位置,并且不支持不必要的網絡端口訪問,使得該網絡功能具備高于操作系統之上實現的安全性。對系統廠商而言,該發明可以有效提高系統的自維護性,增強系統的強壯性,作為一種系統維護有效手段,可以有效的減少上門維修的次數,降低售后服務成本。并可以直接針對計算機供貨商的售后服務策略,有效提升了產品品質。
權利要求
1.一種不依賴操作系統更新軟件數據的計算機系統,包括硬件和軟件,硬件中包括主板,中央處理器,內存,硬盤及外設,主板和中央處理器分別為支持EFI規范的主板和中央處理器,所述軟件包括軟件(4),其特征在于所述軟件還包括觸發管理所述軟件事件的EFI軟件管理器觸發模塊(22);更新所述軟件的EFI軟件管理器模塊(21);以及將計算機系統連接到遠程服務器的網絡連接功能模塊(11)。
2.根據權利要求1所述的更新軟件數據的計算機系統,其特征在于,所述軟件為計算機隨機攜帶的公用軟件。
3.根據權利要求2所述的更新軟件數據的計算機系統,其特征在于,所述的公用軟件為驅動程序文件,聯機手冊文件,BIOS鏡像文件,在線服務文件中的一個或者多個文件。
4.根據權利要求3所述的更新軟件數據的計算機系統,其特征在于,所述軟件可以是存儲于BIOS ROM(7)的剩余空間或者主機板上的擴展OptionROM(5)里支持安全加密檢驗的EFI FV壓縮文件,以及存儲在保護區域硬盤(6)或者通過USB接口連接的具有訪問控制功能的USB盤中的一種或者多種存貯器中的的加密文件。
5.根據權利要求4所述的更新軟件數據計算機系統,其特征在于,所述的軟件(4)存儲于BIOS ROM(7)的剩余空間,或者主機板上的擴展OptionROM(5),或者具有保護區域硬盤(6),或者通過USB接口連接的具有訪問控制功能的USB盤中的一種或者多種存貯器中。
6.根據權利要求5所述的更新軟件數據的計算機系統,其特征在于,所述的EFI軟件管理器模塊(21)包括更新所述軟件的軟件更新模塊和將軟件拷貝到另外位置的軟件文件拷貝模塊。
7.一種不依賴操作系統更新軟件數據的方法,其特征在于,包括下列步驟步驟一計算機上電,在EFI BIOS自檢完成后,運行EFI軟件管理器觸發模塊(22),用戶選擇直接進入啟動操作系統階段;或者,啟動進入EFI軟件管理器(21);步驟二EFI軟件管理器(21)顯示操作界面,啟動網絡連接功能模塊(11),建立網絡連接;步驟三啟動軟件更新模塊,判斷本地軟件是否有可更新的版本,顯示可更新文件列表,用戶選擇需要更新的文件,下載更新軟件;步驟四關閉網絡連接,結束本次更新,返回軟件管理器(21)。
8.根據權利要求7所述的更新軟件數據的方法,其特征在于,還包括下列步驟步驟a)預先設置整理需要隨機存儲的軟件(4);步驟b)利用EFI的壓縮功能,將需要存儲于BIOS ROM(7)的剩余空間,或者主機板上的擴展option ROM中的軟件(4)壓縮形成獨立的壓縮文件;步驟c)將所述壓縮文件打包形成獨立的EFI FV文件,存儲于BIOSROM(7)的剩余空間,或者主機板上的擴展option ROM(5);步驟d)將其它的軟件直接加密存儲在具有保護區域硬盤(6),或者通過USB接口連接的具有訪問控制功能的USB盤中的一種或者多種存貯器中。
9.根據權利要求8所述的更新軟件數據的方法,其特征在于,所述更新軟件為自動更新進入該管理軟件后,即主動判斷指定的網絡位置的軟件有否更新,發現軟件具備更新狀況自動進行軟件升級;
10.根據權利要求8所述的更新軟件數據的方法,其特征在于,所述更新軟件為手動更新將顯示當前具有升級版本的軟件列表,用戶手工選擇需要更新的軟件。
11.根據權利要求9或10所述的更新軟件數據的方法,其特征在于,所述步驟二包括通過軟件文件拷貝模塊將存儲在存儲器中的軟件拷貝到用戶指定的存儲載體上。
12.根據權利要求10所述的更新軟件數據的方法,其特征在于,所述步驟三包括以下步驟將存儲于BIOS ROM(7)的剩余空間,或者主機板上的擴展option ROM(5)中的公用軟件獨立封裝成附加支持安全加密檢驗的單獨FV文件,通過EFI軟件管理器(21)調用接口進行訪問;直接加密存儲在具有保護區域硬盤(6),或者通過USB接口連接的具有訪問控制功能的USB盤中的一種或者多種存貯器中的公用軟件也通過EFI軟件管理器(21)調用接口進行訪問。
全文摘要
一種不依賴操作系統更新軟件數據的計算機系統及方法,包括硬件和軟件,所述軟件包括觸發管理所述軟件事件的EFI軟件管理器觸發模塊(22),更新所述軟件的EFI軟件管理器模塊(21)以及將計算機系統連接到遠程服務器的網絡連接功能模塊(11)。用戶開機并在EFI BIOS自檢完成后,讀寫并運行EFI軟件管理器觸發模塊(22),當用戶按下功能鍵時,啟動EFI軟件管理器(21);EFI軟件管理器(21)顯示操作界面,通過網絡連接功能模塊(11)建立網絡連接;啟動軟件更新模塊判斷本地軟件是否更新,下載更新軟件;關閉網絡連接,返回軟件管理器(21)。本發明能夠適用于各種復雜的需求情況,只需利用計算機自身資源即可完成軟件數據更新。
文檔編號G06F9/445GK1936840SQ200510105390
公開日2007年3月28日 申請日期2005年9月23日 優先權日2005年9月23日
發明者張怡, 席振新, 周建, 田宏萍 申請人:聯想(北京)有限公司