国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法

      文檔序號(hào):7597210閱讀:176來源:國知局
      專利名稱:基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)設(shè)備中的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法。
      背景技術(shù)
      目前,在網(wǎng)絡(luò)中運(yùn)行的網(wǎng)絡(luò)設(shè)備數(shù)量較多,且分布較廣,因此對(duì)各網(wǎng)絡(luò)設(shè)備的維護(hù)工作量也很大。為減少維護(hù)成本,對(duì)于各種網(wǎng)絡(luò)設(shè)備逐步采用通過網(wǎng)管設(shè)備遠(yuǎn)程集中管理的模式進(jìn)行管理。如圖1所示,通常需要通過網(wǎng)管設(shè)備集中或利用網(wǎng)絡(luò)遠(yuǎn)程登錄(例如telnet)對(duì)遠(yuǎn)端或本地網(wǎng)絡(luò)設(shè)備進(jìn)行維護(hù)管理,以減少維護(hù)量和維護(hù)成本。對(duì)網(wǎng)絡(luò)設(shè)備的管理包括對(duì)網(wǎng)絡(luò)設(shè)備中的主機(jī)程序、BIOS(基本輸入輸出系統(tǒng))程序等軟件程序的升級(jí)管理。
      所述的BIOS程序是網(wǎng)絡(luò)設(shè)備啟動(dòng)后首先運(yùn)行的程序,如圖2所示,該程序的映像通常燒在EEPROM(電可擦除只讀存儲(chǔ)器)中,運(yùn)行時(shí)可以調(diào)入到內(nèi)存中運(yùn)行或駐留在EEPROM中運(yùn)行。BIOS的作用主要是引導(dǎo)設(shè)備啟動(dòng),其完成的主要功能有初始化CPU(中央處理器)寄存器、配置CPU,以及系統(tǒng)硬件的初始化(例如串口、網(wǎng)口的初始化)等,最后將一定格式的主機(jī)程序文件從非易失性存儲(chǔ)器上[如FLASH(閃存)、硬盤]讀出,將程序的映像裝入內(nèi)存指定的位置,并將對(duì)網(wǎng)絡(luò)設(shè)備的控制權(quán)較給主機(jī)程序。
      主機(jī)程序存放在非易失性存儲(chǔ)器上的方式和格式各種各樣,例如按壓縮或非壓縮格式保存,以文件形式或非文件形式保存,和其他文件打成包保存等等,其中壓縮算法和打包格式也可以多種多樣。內(nèi)存中運(yùn)行的主機(jī)程序必須按運(yùn)行時(shí)主機(jī)程序映像存放,網(wǎng)絡(luò)設(shè)備上的BIOS程序必須將主機(jī)程序從某一格式轉(zhuǎn)換為運(yùn)行時(shí)映像并裝入到內(nèi)存中運(yùn)行。
      在網(wǎng)絡(luò)設(shè)備運(yùn)行過程中,可能因?yàn)榫W(wǎng)絡(luò)設(shè)備功能的增加改變或彌補(bǔ)相應(yīng)的缺陷,需要對(duì)網(wǎng)絡(luò)設(shè)備中運(yùn)行的主機(jī)程序進(jìn)行升級(jí)。對(duì)主機(jī)程序進(jìn)行升級(jí)通??梢酝ㄟ^TFTP(簡單文件傳輸協(xié)議)和FTP(文件傳輸協(xié)議)將升級(jí)后的主機(jī)程序遠(yuǎn)程加載到網(wǎng)絡(luò)設(shè)備的非易失性存儲(chǔ)器上實(shí)現(xiàn)遠(yuǎn)程升級(jí)。支持遠(yuǎn)程升級(jí)需網(wǎng)絡(luò)設(shè)備提供Telnet、FTP服務(wù)器等功能,BIOS程序功能有限,無法實(shí)現(xiàn)這些功能,因此相應(yīng)的Telnet、FTP服務(wù)器等功能通常需要在主機(jī)程序中實(shí)現(xiàn)。
      也就是說,為實(shí)現(xiàn)針對(duì)網(wǎng)絡(luò)設(shè)備的遠(yuǎn)程維護(hù)管理和遠(yuǎn)程軟件升級(jí),各網(wǎng)絡(luò)設(shè)備需要在其主機(jī)程序中實(shí)現(xiàn)TFTP或FTP協(xié)議以及TELNET協(xié)議,網(wǎng)管設(shè)備的控制命令通過TELNET協(xié)議遠(yuǎn)程操作網(wǎng)絡(luò)設(shè)備,或網(wǎng)管用戶遠(yuǎn)程登錄到網(wǎng)絡(luò)設(shè)備上通過各種命令遠(yuǎn)程操作設(shè)備。通過TFTP或FTP協(xié)議,網(wǎng)管用戶將升級(jí)后的主機(jī)程序遠(yuǎn)程加載到設(shè)備的非易失性存儲(chǔ)器上,新的主機(jī)程序可以覆蓋掉舊的主機(jī)程序保存也可以另外保存。主機(jī)程序升級(jí)后,如果仍可以保證網(wǎng)絡(luò)設(shè)備的正常運(yùn)行還需要BIOS程序可以識(shí)別到新的主機(jī)程序,并在重新啟動(dòng)網(wǎng)絡(luò)設(shè)備后,由網(wǎng)絡(luò)設(shè)備的BIOS程序?qū)⑸?jí)后的主機(jī)程序裝入到內(nèi)存中運(yùn)行,完成主機(jī)軟件的升級(jí)。但由于受到原來主機(jī)程序功能的限制,可能無法遠(yuǎn)程加載新的主機(jī)程序到非易失性存儲(chǔ)器上,比如原來主機(jī)程序存放的文件系統(tǒng)和升級(jí)后的文件系統(tǒng)不兼容,或者原來沒有文件系統(tǒng)而升級(jí)后主機(jī)程序?qū)崿F(xiàn)了文件系統(tǒng),非易失性存儲(chǔ)器上信息仍需按文件形式存放等等。
      即使主機(jī)程序升級(jí)成功,若升級(jí)后的主機(jī)程序和原來的主機(jī)程序存放方式和格式不兼容,比如壓縮格式不一致,原有BIOS程序?qū)o法識(shí)別新的主機(jī)程序,仍將導(dǎo)致無法將新主機(jī)程序正確轉(zhuǎn)換為運(yùn)行時(shí)映像裝入到內(nèi)容中運(yùn)行,因此,為保證BIOS程序可以識(shí)別升級(jí)后的主機(jī)程序,通常還需要對(duì)BIOS程序進(jìn)行升級(jí)。目前,對(duì)BIOS程序進(jìn)行升級(jí),通常需要到現(xiàn)場(chǎng)打開機(jī)蓋更換網(wǎng)絡(luò)設(shè)備中用于保存BIOS程序的BOOTROOM,這種BIOS程序升級(jí)方式費(fèi)時(shí)費(fèi)力,升級(jí)成本較高,且無法實(shí)現(xiàn)遠(yuǎn)程升級(jí),不能滿足集中管理的維護(hù)需求。

      發(fā)明內(nèi)容
      鑒于上述現(xiàn)有技術(shù)存在的缺點(diǎn),本發(fā)明的目的是提供一種基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,從而使得網(wǎng)絡(luò)設(shè)備中的基本輸入輸出系統(tǒng)程序和主機(jī)程序均可以較為方便地實(shí)現(xiàn)遠(yuǎn)程升級(jí),并可保證升級(jí)后的程序均可以正常運(yùn)行。
      本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明所述的一種基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法包括A、建立用于處理原有主機(jī)程序和升級(jí)后的主機(jī)程序間差別的基本輸入輸出系統(tǒng)升級(jí)程序;B、網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),基本輸入輸出系統(tǒng)程序調(diào)用所述的基本輸入輸出系統(tǒng)升級(jí)程序,并啟動(dòng)升級(jí)后的主機(jī)程序。
      所述的步驟A還包括A1、將所述的基本輸入輸出系統(tǒng)升級(jí)程序與升級(jí)后的主機(jī)程序綁定。
      所述的步驟A1包括將所述的基本輸入輸出系統(tǒng)升級(jí)程序與升級(jí)后的主機(jī)程序的數(shù)據(jù)區(qū)信息綁定,或者將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序作為子程序集成綁定。
      所述的將所述的基本輸入輸出系統(tǒng)升級(jí)程序與升級(jí)后的主機(jī)程序的數(shù)據(jù)區(qū)信息綁定進(jìn)一步包括將生成的升級(jí)后的主機(jī)程序作為基本輸入輸出系統(tǒng)升級(jí)程序的數(shù)據(jù)和基本輸入輸出系統(tǒng)升級(jí)程序代碼編譯在一起,生成一個(gè)包含有升級(jí)后的主機(jī)程序的基本輸入輸出系統(tǒng)升級(jí)程序,且所述的基本輸入輸出系統(tǒng)升級(jí)程序需存放于非易失性存儲(chǔ)器中原主機(jī)程序?qū)?yīng)的位置。
      所述的將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序作為子程序集成綁定進(jìn)一步包括分別單獨(dú)編譯基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序;將兩個(gè)程序的可執(zhí)行指令文件壓縮成兩個(gè)子文件;將這兩個(gè)子文件按原來大包文件的格式合成一個(gè)大包文件,且其中基本輸入輸出系統(tǒng)升級(jí)程序子文件的存放位置和壓縮格式必須和原主機(jī)程序子文件保持一致。
      所述的基本輸入輸出系統(tǒng)升級(jí)程序?yàn)榕c基本輸入輸出系統(tǒng)程序形式一致的程序。
      所述的步驟B包括B1、網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),由基本輸入輸出系統(tǒng)程序?qū)⑺龅幕据斎胼敵鱿到y(tǒng)升級(jí)程序調(diào)入內(nèi)存中,并運(yùn)行;B2、基本輸入輸出系統(tǒng)升級(jí)程序?qū)⑸?jí)后的主機(jī)程序調(diào)入內(nèi)存中運(yùn)行。
      所述的步驟B1還包括基本輸入輸出系統(tǒng)升級(jí)程序?qū)τ布渲猛瓿珊?,將自身拷貝到?nèi)存中與主機(jī)程序占用的內(nèi)存空間不重疊的位置運(yùn)行;且所述的步驟B2包括基本輸入輸出系統(tǒng)升級(jí)程序?qū)⑸?jí)后的主機(jī)程序調(diào)入到主機(jī)程序應(yīng)當(dāng)占用的內(nèi)存空間中運(yùn)行。
      所述的步驟B1還包括從基本輸入輸出系統(tǒng)升級(jí)程序開始運(yùn)行到自身拷貝結(jié)束的過程中,所述的基本輸入輸出系統(tǒng)升級(jí)程序需要在主機(jī)程序占用的內(nèi)存空間中運(yùn)行。
      所述的步驟B1還包括從基本輸入輸出系統(tǒng)升級(jí)程序開始運(yùn)行到自身拷貝結(jié)束的過程中,不應(yīng)用含有相對(duì)地址的指令實(shí)現(xiàn)。
      所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法中,當(dāng)將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序作為子程序集成綁定為大包形式的文件時(shí),所述的步驟B1包括網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),讀取大包形式的文件的頭部,并獲取基本輸入輸出系統(tǒng)升級(jí)程序子文件在所述文件中的信息;從所述文件中讀取出基本輸入輸出系統(tǒng)升級(jí)程序子文件,并解壓成可執(zhí)行指令文件,調(diào)到內(nèi)存中作為原BIOS程序的主機(jī)程序運(yùn)行。
      所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法包括將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主級(jí)程序遠(yuǎn)程發(fā)送到網(wǎng)絡(luò)設(shè)備中。
      所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法還包括通過網(wǎng)絡(luò)設(shè)備中原有的主機(jī)程序?qū)⑺龅幕据斎胼敵鱿到y(tǒng)升級(jí)程序及升級(jí)后的主機(jī)程序保存于網(wǎng)絡(luò)設(shè)備的非易失存儲(chǔ)器中。
      由上述本發(fā)明所提供的技術(shù)方案可以看出,本發(fā)明的實(shí)現(xiàn)使得在不需更換網(wǎng)絡(luò)設(shè)備的BOOTROOM的情況下便可以實(shí)現(xiàn)遠(yuǎn)程升級(jí)BIOS程序,而且還可以在遠(yuǎn)程升級(jí)主機(jī)程序時(shí),不受新舊主機(jī)程序存放在非易失性存儲(chǔ)器上的方式和格式等差別上的限制。因此,本發(fā)明中升級(jí)BIOS程序的成本較現(xiàn)有技術(shù)所采用的升級(jí)方式大大降低。同時(shí),BIOS程序和主機(jī)程序均可以遠(yuǎn)程升級(jí),還大大減少了對(duì)所述程序的維護(hù)工作量。而且,主機(jī)程序的升級(jí)不再受到與舊版本兼容的限制,這樣,一方面為新版本實(shí)現(xiàn)新功能提供了方便,另一方面也為舊的版本遠(yuǎn)程升級(jí)提供了可能性。


      圖1為遠(yuǎn)程維護(hù)網(wǎng)絡(luò)組網(wǎng)結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中網(wǎng)絡(luò)設(shè)備啟動(dòng)過程中BIOS程序和主機(jī)程序的運(yùn)行示意圖;圖3為本發(fā)明所述的方法的流程圖;圖4為本發(fā)明中網(wǎng)絡(luò)設(shè)備啟動(dòng)過程中BIOS程序和主機(jī)程序的運(yùn)行示意圖一圖5為本發(fā)明中網(wǎng)絡(luò)設(shè)備啟動(dòng)過程中BIOS程序和主機(jī)程序的運(yùn)行示意圖二具體實(shí)施方式
      本發(fā)明的核心是在網(wǎng)絡(luò)設(shè)備中增加設(shè)置BIOS+(基本輸入輸出系統(tǒng)升級(jí))程序,該程序用于實(shí)現(xiàn)BIOS需要升級(jí)實(shí)現(xiàn)的功能,包括處理升級(jí)后的主機(jī)程序與原有主機(jī)程序間的差別,如存放方式和格式上的差別等,除此之外還包括處理其他需實(shí)現(xiàn)的新的功能。
      所述的差別及新的功能包括(1)原主機(jī)程序直接存放在FLASH(閃存)的某固定地址處,啟動(dòng)時(shí),BIOS程序直接到FLASH的某固定位置取出主機(jī)程序搬到內(nèi)存中運(yùn)行;若根據(jù)需要,升級(jí)后的主機(jī)程序在FLASH中存放的位置改變了,BIOS若不升級(jí)就不能正確地直接將主機(jī)程序搬到內(nèi)存中運(yùn)行;(2)原BIOS程序由于受存儲(chǔ)空間地限制(其存放在BOOTROOM中),沒有實(shí)現(xiàn)文件管理系統(tǒng)功能,其啟動(dòng)方式是到FLASH某固定地址處讀取主機(jī)程序運(yùn)行;現(xiàn)在為方便文件管理,在FLASH上建立了文件系統(tǒng),主機(jī)程序存放在文件系統(tǒng)中,因此,對(duì)其讀取需要按文件系統(tǒng)的操作方式進(jìn)行;這樣原BIOS程序若不升級(jí)就不能正確地讀取FLASH上的主機(jī)程序到內(nèi)存中運(yùn)行;(3)如果需要增加對(duì)主機(jī)程序版本許可證的檢查功能,若主機(jī)程序中保存的版本序列號(hào)和運(yùn)行設(shè)備保存的不一致,將拒絕運(yùn)行主機(jī)程序,而原BIOS程序中沒有此項(xiàng)功能;包括以上3種需求在內(nèi)容的多種需求,本發(fā)明均可以在不更換BIOS程序的情況下,應(yīng)用一個(gè)BIOS+程序來實(shí)現(xiàn)。
      本發(fā)明所述的方法的具體實(shí)現(xiàn)方式如圖3所示,包括以下步驟步驟31確定升級(jí)后的主機(jī)程序,建立BIOS+程序,且該程序?yàn)榫W(wǎng)絡(luò)設(shè)備中原有的BIOS程序可以識(shí)別的程序,從而使得原有的BIOS程序可以通過該BIOS+程序識(shí)別升級(jí)后的主機(jī)程序;所述的原有的BIOS程序可以識(shí)別的程序即為與原主機(jī)程序的形式一致的程序。
      步驟32將BIOS+程序和升級(jí)后的主機(jī)程序綁定在一起,從而制作成網(wǎng)絡(luò)設(shè)備中原有BIOS程序可以識(shí)別的原主機(jī)程序形式的文件;其中,BIOS+程序和升級(jí)后的主機(jī)程序綁定方式可以有多種,例如可以將新主機(jī)程序作為BIOS+程序的數(shù)據(jù)區(qū)信息綁定在一起;若原主機(jī)程序形式為多個(gè)程序的集成,還可以將BIOS+程序和新主機(jī)程序作為子程序按原來形式集成在一起;但綁定過程中需要遵循的綁定的原則是原BIOS程序可以識(shí)別BIOS+程序,并能將其裝入到內(nèi)存之運(yùn)行;同時(shí),需要將BIOS+程序的位置設(shè)置為與原主機(jī)程序的存放位置相同,以便于原BIOS程序可將BIOS+程序作為原主機(jī)程序執(zhí)行;以兩種具體的綁定處理過程為例對(duì)綁定方式進(jìn)行說明第一種方式為將新主機(jī)程序作為BIOS+程序的數(shù)據(jù)區(qū)信息綁定在一起,具體為先制作好升級(jí)后的主機(jī)程序,其形式不受原BIOS程序限制,只要BlOS+程序能識(shí)別即可,然后將制作好的升級(jí)后的主機(jī)程序作為BIOS+程序的數(shù)據(jù)(如作為一個(gè)全局?jǐn)?shù)組)和BIOS+程序的代碼編譯在一起,制作成可執(zhí)行指令文件,即包含有升級(jí)后的主機(jī)程序的BIOS+程序,從而使得原BIOS程序可以識(shí)別綁定后的BIOS+程序和升級(jí)后的主機(jī)程序,同時(shí),還需要令綁定后的BIOS+程序和升級(jí)后的主機(jī)程序存放位置與原主機(jī)程序的存放位置相同;第二種方式為將BIOS+程序和新主機(jī)程序作為子程序按原來形式集成在一起,具體為首先分別單獨(dú)編譯BIOS+程序和升級(jí)后的主機(jī)程序,并將這兩個(gè)程序的可執(zhí)行指令文件按一定壓縮格式壓縮成兩個(gè)子文件,然后將這兩個(gè)子文件按原來大包文件的格式合成一個(gè)大包形式的文件,其中BIOS+程序子文件的存放位置和壓縮格式必須和原主機(jī)程序子文件保持一致,這樣原BIOS程序便可以識(shí)別出BIOS+程序子文件,并能將讀出解壓并調(diào)入到內(nèi)存中作為原主機(jī)程序運(yùn)行。
      步驟33通過網(wǎng)絡(luò)設(shè)備中原有的主機(jī)程序(即未升級(jí)前的主機(jī)程序)將BIOS+程序和升級(jí)后的主機(jī)程序綁定成的新的程序遠(yuǎn)程加載到網(wǎng)絡(luò)設(shè)備中的非易失性存儲(chǔ)器上,如FLASH(閃存)或硬盤上,以便于網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),可以實(shí)現(xiàn)針對(duì)BIOS程序和主機(jī)程序的升級(jí)操作;所述的加載可以為遠(yuǎn)程加載,也可以為本地加載,通過遠(yuǎn)程加載則可以實(shí)現(xiàn)遠(yuǎn)程針對(duì)網(wǎng)絡(luò)設(shè)備中的BIOS程序和主機(jī)程序的升級(jí)操作;此時(shí),對(duì)于網(wǎng)絡(luò)設(shè)備中原有的BIOS程序來說,BIOS+程序可以相當(dāng)于原有的主機(jī)程序。
      步驟34當(dāng)網(wǎng)絡(luò)設(shè)備重新啟動(dòng)時(shí),網(wǎng)絡(luò)設(shè)備中原有的BIOS程序?qū)IOS+程序裝入到內(nèi)存中運(yùn)行,如圖4所示,首先將BIOS+程序從FLASH/硬盤中調(diào)出并裝入RAM(隨機(jī)存儲(chǔ)器)中,且裝入原主機(jī)程序運(yùn)行的空間中運(yùn)行;即在BIOS+程序運(yùn)行中,其首先完成BIOS程序需升級(jí)的功能,然后處理新舊主機(jī)程序(原有的主機(jī)程序和升級(jí)后的主機(jī)程序)在存放方式和格式上的差別,比如建立文件系統(tǒng),轉(zhuǎn)換新主機(jī)程序在非易失性存儲(chǔ)器上的存放方式和形式等;當(dāng)所述的BIOS+程序與升級(jí)后的主機(jī)程序的綁定方式為將升級(jí)后的主機(jī)程序作為BIOS+程序的數(shù)據(jù)區(qū)信息時(shí),由于BIOS+程序的位置與原主機(jī)程序相同,因此,該步驟中直接按照原有的執(zhí)行過程,即可以將BIOS+程序調(diào)入內(nèi)存并執(zhí)行;當(dāng)所述的BIOS+程序與升級(jí)后的主機(jī)程序的綁定方式為采用作為子程序按原BIOS程序的形式集成在一起時(shí),該步驟的具體處理過程包括原BIOS程序?qū)⒅鳈C(jī)程序作為一個(gè)大包形式的文件中的一個(gè)壓縮子文件來處理的,當(dāng)原BIOS程序需要調(diào)用主機(jī)程序到內(nèi)存中運(yùn)行時(shí),首先讀取大包形式的文件的頭部,以獲取主機(jī)程序子文件在大包形式的文件的位置,壓縮形式等信息,然后從大包文件中讀取出主機(jī)程序子文件并按一定形式解壓成可執(zhí)行指令文件,調(diào)到內(nèi)存中運(yùn)行;該步驟中,原BIOS程序是將BIOS+程序作為主機(jī)程序,因此,此處調(diào)到內(nèi)存中運(yùn)行的主機(jī)程序即為所述的大包形式的文件中的BIOS+程序;這樣,在BIOS+程序運(yùn)行階段,執(zhí)行新增加的功能代碼,可以完成原BIOS程序需增加的新功能,比如對(duì)新主機(jī)程序版本許可證的檢驗(yàn);然后處理新舊主機(jī)程序在存放方式和格式上的差別,比如建立文件系統(tǒng),轉(zhuǎn)換新主機(jī)程序在非易失性存儲(chǔ)器上的存放方式和形式,最后將升級(jí)后的主機(jī)程序裝入到內(nèi)存中運(yùn)行;對(duì)于升級(jí)后的主機(jī)程序來講,BIOS+程序的地位和作用就相當(dāng)于原BIOS程序的地位和作用。
      步驟35由BIOS+程序完成引導(dǎo)網(wǎng)絡(luò)設(shè)備的啟動(dòng)過程,將經(jīng)過處理的升級(jí)后的主機(jī)程序裝入到內(nèi)存中主機(jī)程序的空間中運(yùn)行;也就是說,對(duì)于升級(jí)后的主機(jī)程序,BIOS+程序功能相當(dāng)于原BIOS程序功能,即BIOS+程序和升級(jí)后的主機(jī)程序?qū)?yīng)成為經(jīng)過升級(jí)后的BIOS程序和主機(jī)程序;由于原有的BIOS程序?qū)IOS+程序裝入內(nèi)存時(shí)占用了主機(jī)程序運(yùn)行的空間,如圖4所示,導(dǎo)致無法再將升級(jí)后的主機(jī)程序裝入到內(nèi)存中本來應(yīng)該裝入主機(jī)程序的空間運(yùn)行,所以BIOS+程序需要將具有自己搬運(yùn)到一個(gè)新的內(nèi)存空間運(yùn)行的功能,從而將自己搬運(yùn)到內(nèi)存中的一個(gè)新的空間運(yùn)行,如圖5所示,搬運(yùn)后,BIOS+程序處于內(nèi)存中的高位地址空間中,升級(jí)后的主機(jī)程序處于內(nèi)存中的低位地址空間中,可以看出,針對(duì)網(wǎng)絡(luò)設(shè)備中的BIOS程序及主機(jī)程序的升級(jí)操作已經(jīng)完成。
      完成BIOS+程序的搬運(yùn)拷貝操作之后,在BIOS+程序?qū)崿F(xiàn)中直接使用函數(shù)名調(diào)用即可跳轉(zhuǎn)到新內(nèi)存地址空間運(yùn)行;BIOS+程序運(yùn)行完后,便可以按照一定的方式識(shí)別和讀取出升級(jí)后的主機(jī)程序并調(diào)到內(nèi)存中運(yùn)行,而不再受原來BIOS程序的限制。
      下面將對(duì)BIOS+程序的搬運(yùn)操作具體的處理過程進(jìn)行描述通常程序執(zhí)行是按程序指令的存放順序進(jìn)行的,其運(yùn)行可以根據(jù)執(zhí)行不同的跳轉(zhuǎn)指令進(jìn)行相對(duì)跳轉(zhuǎn)(即跳到距離當(dāng)前指令某處運(yùn)行)或絕對(duì)跳轉(zhuǎn)(即跳到某固定地址處運(yùn)行)。本發(fā)明中,采用的執(zhí)行指令程序是一個(gè)絕對(duì)定位的程序,也就是說此程序中的絕對(duì)跳轉(zhuǎn)指令的目的地址都已確定,此執(zhí)行指令程序必須直接加載到內(nèi)存一個(gè)指定位置處運(yùn)行;這個(gè)指定位置,即執(zhí)行指令程序的起始運(yùn)行地址是在程序編譯連接時(shí)由用戶指定;代碼的編譯連接器根據(jù)用戶指定的目標(biāo)指令起始運(yùn)行地址,對(duì)最后生成的程序指令進(jìn)行絕對(duì)定位;在編譯連接BIOS+程序時(shí),指定一個(gè)新的目標(biāo)指令起始運(yùn)行地址,使BIOS+指令程序運(yùn)行的內(nèi)存空間和主機(jī)程序占用的內(nèi)存空間不重疊,從而保證BIOS+程序在一個(gè)新的地址空間運(yùn)行。
      比如主機(jī)程序運(yùn)行的起始地址為0×1000,主機(jī)程序的長度為0×40000,那么我們指定BIOS+程序的起始運(yùn)行地址為0×45000,大于(0×1000+0×40000)即可。在設(shè)備啟動(dòng)時(shí),原BIOS程序?qū)IOS+程序當(dāng)作主機(jī)程序識(shí)別出來調(diào)到內(nèi)存0×1000處運(yùn)行,然后BIOS+程序運(yùn)行時(shí),首先完成CPU等硬件的基本配置,緊接著將整個(gè)BIOS+程序映像拷貝到0×45000處,然后跳到BIOS+程序的某函數(shù)處運(yùn)行。由于編譯連接BIOS+程序時(shí)指定了起始運(yùn)行地址為0×45000,所以BIOS+程序內(nèi)部所有調(diào)用函數(shù)的地址都絕對(duì)定位到0×45000以后的空間。BIOS+程序中從首條指令到自身拷貝完成準(zhǔn)備跳轉(zhuǎn)之間的所有指令必須可以在原主機(jī)程序運(yùn)行空間中運(yùn)行,即從0×1000處開始的地址空間。這可以通過從首條指令到自身拷貝完成準(zhǔn)備跳轉(zhuǎn)之間(即從BIOS+程序開始運(yùn)行到自身拷貝結(jié)束期間)的所有指令都不使用到相對(duì)地址來實(shí)現(xiàn),因?yàn)椴缓邢鄬?duì)地址的機(jī)器指令在任何地址處運(yùn)行的結(jié)果是一樣的。在編寫這段代碼時(shí)要注意其中不能直接使用函數(shù)調(diào)用,因?yàn)楹瘮?shù)調(diào)用代碼在編譯成機(jī)器指令后會(huì)包含有相對(duì)地址的指令。
      例如,其中的將指令程序從0×1000拷貝到0×45000處的功能可以采用如下{ }中一段代碼來實(shí)現(xiàn),這段拷貝功能代碼編譯連接后不會(huì)產(chǎn)生包含相對(duì)地址的指令,這段編譯連接后的指令可以在內(nèi)存中任何位置運(yùn)行。完成指令自身拷貝后,最后調(diào)用一函數(shù)跳轉(zhuǎn)到拷貝后的某處運(yùn)行,由于編譯連接時(shí)指定的起始地址為0×45000,所以最后的函數(shù)調(diào)用使用的相對(duì)地址是相對(duì)于0×45000的某地址。
      {unsigned int*uldestination=0×45000/*BIOS+程序起始運(yùn)行地址為0×45000*/;unsigned int*ulsource=0×1000/*主機(jī)程序起始運(yùn)行地址為0×1000*/;unsigned int*uldstend=(0×45000+0×5000)/*BIOS+程序長度為0×5000*/;while(uldestination<uldstend)*uldestination++=*ulsource++;}(absEntry)(startType);/*跳轉(zhuǎn)到相對(duì)0×45000的absEntry函數(shù)處運(yùn)行,absEntry為運(yùn)行的函數(shù)名,startType為啟動(dòng)類型參數(shù)*/可以看出,通過上段指令便可以實(shí)現(xiàn)將BIOS+程序拷貝到新的內(nèi)存地址空間的功能。
      以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
      ,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
      權(quán)利要求
      1.一種基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,包括A、建立用于處理原有主機(jī)程序和升級(jí)后的主機(jī)程序間差別的基本輸入輸出系統(tǒng)升級(jí)程序;B、網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),基本輸入輸出系統(tǒng)程序調(diào)用所述的基本輸入輸出系統(tǒng)升級(jí)程序,并啟動(dòng)升級(jí)后的主機(jī)程序。
      2.根據(jù)權(quán)利要求1所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的步驟A還包括A1、將所述的基本輸入輸出系統(tǒng)升級(jí)程序與升級(jí)后的主機(jī)程序綁定。
      3.根據(jù)權(quán)利要求2所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的步驟A1包括將所述的基本輸入輸出系統(tǒng)升級(jí)程序與升級(jí)后的主機(jī)程序的數(shù)據(jù)區(qū)信息綁定,或者將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序作為子程序集成綁定。
      4.根據(jù)權(quán)利要求3所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的將所述的基本輸入輸出系統(tǒng)升級(jí)程序與升級(jí)后的主機(jī)程序的數(shù)據(jù)區(qū)信息綁定進(jìn)一步包括將生成的升級(jí)后的主機(jī)程序作為基本輸入輸出系統(tǒng)升級(jí)程序的數(shù)據(jù)和基本輸入輸出系統(tǒng)升級(jí)程序代碼編譯在一起,生成一個(gè)包含有升級(jí)后的主機(jī)程序的基本輸入輸出系統(tǒng)升級(jí)程序,且所述的基本輸入輸出系統(tǒng)升級(jí)程序需存放于非易失性存儲(chǔ)器中原主機(jī)程序?qū)?yīng)的位置。
      5.根據(jù)權(quán)利要求3所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序作為子程序集成綁定進(jìn)一步包括分別單獨(dú)編譯基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序;將兩個(gè)程序的可執(zhí)行指令文件壓縮成兩個(gè)子文件;將這兩個(gè)子文件按原來大包文件的格式合成一個(gè)大包文件,且其中基本輸入輸出系統(tǒng)升級(jí)程序子文件的存放位置和壓縮格式必須和原主機(jī)程序子文件保持一致。
      6.根據(jù)權(quán)利要求1所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的基本輸入輸出系統(tǒng)升級(jí)程序?yàn)榕c基本輸入輸出系統(tǒng)程序形式一致的程序。
      7.根據(jù)權(quán)利要求1、2、3、4、5或6所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的步驟B包括B1、網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),由基本輸入輸出系統(tǒng)程序?qū)⑺龅幕据斎胼敵鱿到y(tǒng)升級(jí)程序調(diào)入內(nèi)存中,并運(yùn)行;B2、基本輸入輸出系統(tǒng)升級(jí)程序?qū)⑸?jí)后的主機(jī)程序調(diào)入內(nèi)存中運(yùn)行。
      8.根據(jù)權(quán)利要求7所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的步驟B1還包括基本輸入輸出系統(tǒng)升級(jí)程序?qū)τ布渲猛瓿珊?,將自身拷貝到?nèi)存中與主機(jī)程序占用的內(nèi)存空間不重疊的位置運(yùn)行;且所述的步驟B2包括基本輸入輸出系統(tǒng)升級(jí)程序?qū)⑸?jí)后的主機(jī)程序調(diào)入到主機(jī)程序應(yīng)當(dāng)占用的內(nèi)存空間中運(yùn)行。
      9.根據(jù)權(quán)利要求8所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的步驟B1還包括從基本輸入輸出系統(tǒng)升級(jí)程序開始運(yùn)行到自身拷貝結(jié)束的過程中,所述的基本輸入輸出系統(tǒng)升級(jí)程序需要在主機(jī)程序占用的內(nèi)存空間中運(yùn)行。
      10.根據(jù)權(quán)利要求8所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,所述的步驟B1還包括從基本輸入輸出系統(tǒng)升級(jí)程序開始運(yùn)行到自身拷貝結(jié)束的過程中,不應(yīng)用含有相對(duì)地址的指令實(shí)現(xiàn)。
      11.根據(jù)權(quán)利要求7所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,當(dāng)將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主機(jī)程序作為子程序集成綁定為大包形式的文件時(shí),所述的步驟B1包括網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),讀取大包形式的文件的頭部,并獲取基本輸入輸出系統(tǒng)升級(jí)程序子文件在所述文件中的信息;從所述文件中讀取出基本輸入輸出系統(tǒng)升級(jí)程序子文件,并解壓成可執(zhí)行指令文件,調(diào)到內(nèi)存中作為原BIOS程序的主機(jī)程序運(yùn)行。
      12.根據(jù)權(quán)利要求1、2、3、4、5或6所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,該方法包括將所述的基本輸入輸出系統(tǒng)升級(jí)程序和升級(jí)后的主級(jí)程序遠(yuǎn)程發(fā)送到網(wǎng)絡(luò)設(shè)備中。
      13.根據(jù)權(quán)利要求12所述的基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法,其特征在于,該方法還包括通過網(wǎng)絡(luò)設(shè)備中原有的主機(jī)程序?qū)⑺龅幕据斎胼敵鱿到y(tǒng)升級(jí)程序及升級(jí)后的主機(jī)程序保存于網(wǎng)絡(luò)設(shè)備的非易失存儲(chǔ)器中。
      全文摘要
      本發(fā)明涉及一種基本輸入輸出系統(tǒng)程序和主機(jī)程序的升級(jí)方法。該方法包括首先,建立用于處理原有主機(jī)程序和升級(jí)后的主機(jī)程序間差別的基本輸入輸出系統(tǒng)升級(jí)程序;然后,在網(wǎng)絡(luò)設(shè)備啟動(dòng)時(shí),基本輸入輸出系統(tǒng)程序調(diào)用所述的基本輸入輸出系統(tǒng)升級(jí)程序,并啟動(dòng)升級(jí)后的主機(jī)程序。本發(fā)明的實(shí)現(xiàn)使得在不需更換網(wǎng)絡(luò)設(shè)備的BOOTROOM的情況下便可以實(shí)現(xiàn)遠(yuǎn)程升級(jí)BIOS程序,而且還可以在遠(yuǎn)程升級(jí)主機(jī)程序時(shí),不受新舊主機(jī)程序存放在非易失性存儲(chǔ)器上的方式和格式等差別上的限制。
      文檔編號(hào)H04L12/00GK1740971SQ20041007530
      公開日2006年3月1日 申請(qǐng)日期2004年8月27日 優(yōu)先權(quán)日2004年8月27日
      發(fā)明者樊宏偉 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1