欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

固件更新系統(tǒng),固件傳輸服務(wù)器、固件整合設(shè)備以及程序的制作方法

文檔序號:6348059閱讀:272來源:國知局

專利名稱::固件更新系統(tǒng),固件傳輸服務(wù)器、固件整合設(shè)備以及程序的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及在進(jìn)行固件傳輸?shù)姆?wù)器與固件整合設(shè)備(firmwareincorporatingdevice)之間執(zhí)行的固件更新技術(shù)。
背景技術(shù)
:近年來,在放棄DVD設(shè)備或者TV設(shè)備等整合設(shè)備之后,在軟件(包括固件)發(fā)現(xiàn)了不良情況的情況下,一般進(jìn)行通過將以往的固件改寫成解決了不良情況的固件來解決問題的方法。這里,所謂固件(firmware),指的是預(yù)先存儲在整合設(shè)備的非易失性存儲區(qū)域中的所有數(shù)據(jù)。關(guān)于這樣的固件更新,例如在專利文獻(xiàn)1、非專利文獻(xiàn)2以及非專利文獻(xiàn)2等中已經(jīng)公開。專利文獻(xiàn)1公開了對固件全部進(jìn)行更換的固件更新方式。為了對固件全部進(jìn)行更換,在經(jīng)由網(wǎng)絡(luò)進(jìn)行更新的情況下,需要將新版本(version)的固件映像(firmwareimage)全部進(jìn)行傳輸,因此,應(yīng)該傳輸?shù)臄?shù)據(jù)大小增大。另外,非專利文獻(xiàn)1公開了提取舊版本的數(shù)據(jù)與新版本數(shù)據(jù)的差分的技術(shù)。在經(jīng)由網(wǎng)絡(luò)進(jìn)行更新的情況下,如果利用該技術(shù)傳輸固件的更新差分部分,能夠減小傳輸數(shù)據(jù)大小。非專利文獻(xiàn)2公開了在Linux中經(jīng)常使用的軟件更新程序。通過該程序,以數(shù)據(jù)包為單位來管理軟件,發(fā)布有更新的軟件數(shù)據(jù)包。現(xiàn)有技術(shù)文獻(xiàn)專利文獻(xiàn)1日本特開平11-110218號公報非專利文獻(xiàn)1:xdelta:http//xdelta.org/2:Yum:YellowdogUpdater,Modified:http://linux.duke,edu/projects/yum但是,在專利文獻(xiàn)1的方法中,用于應(yīng)該傳輸?shù)臄?shù)據(jù)大小很大,因此存在下載耗費時間、用于設(shè)備側(cè)的下載的區(qū)域也變大的問題。另外,還存在用于對固件全部進(jìn)行改寫的作業(yè)時間也變長的問題。另外,在非專利文獻(xiàn)1的固件傳輸中,雖然傳輸?shù)臄?shù)據(jù)的大小變小,但是卻存在為了將更新應(yīng)用于固件映像要耗費時間和作業(yè)區(qū)域的問題。即,例如,在將更新數(shù)據(jù)應(yīng)用于舊版本的固件映像的情況下,當(dāng)逐漸應(yīng)用于舊本版的映像時,在由于電源切斷等而中斷了的情況下,固件映像會損壞。因此,需要使應(yīng)用了更新數(shù)據(jù)后的輸出與舊版本的映像在不同的區(qū)域進(jìn)行,相應(yīng)地需要占用作業(yè)區(qū)域。另外,由于需要訪問整個舊版本的映像,因此也耗費時間。另外,如果使用非專利文獻(xiàn)2的固件的更新,則不耗費作業(yè)區(qū)域和時間,但是對于不支持寫入的文件系統(tǒng)來說則無法應(yīng)對。在數(shù)據(jù)包中放入有文件系統(tǒng)中的更新對象的文件。為了寫入該文件,需要文件系統(tǒng)對寫入的支持。通常,在整合設(shè)備的情況下,為了減輕處理(不影響啟動時間),使用了僅支持讀入的1/0請求的文件系統(tǒng)。因此,希望有能夠在4保持了僅支持讀入的文件系統(tǒng)的優(yōu)點的情況下更新(^(OperatingSystem操作系統(tǒng))等的固件的方法。
發(fā)明內(nèi)容本發(fā)明是鑒于上述狀況而完成的發(fā)明,其提供一種作業(yè)區(qū)域小、作業(yè)時間短、即使電源切斷也能夠再次開始更新、而且即使是不支持寫入的文件系統(tǒng)也能夠更新固件的技術(shù)。為了解決上述課題,在本發(fā)明中,在固件傳輸服務(wù)器中,具有將舊版本的固件映像分割成預(yù)定個數(shù)而生成的多個舊版本分割固件映像;該固件傳輸服務(wù)器以與舊版本的固件映像相同的條件對新版本的固件映像進(jìn)行分割,并生成多個新版本分割固件映像。另外,針對固件映像的每個分割單位,提取出新版本固件映像與舊版本固件映像的差分信息,并生成具有每個所述分割單位的差分信息的更新映像。并且,將更新映像傳輸給整合設(shè)備。在接收到該更新映像的整合設(shè)備中,將更新映像應(yīng)用于使用中的既有固件映像,更新固件。這里,以目錄名相通的文件對舊版本的固件進(jìn)行匯總分割,由此生成所述多個舊版本分割固件映像。由此,以與生成多個舊版本分割固件映像時相同的條件,根據(jù)所述目錄名,來對新版本的固件進(jìn)行分割,從而生成多個新版本分割固件映像。固件傳輸服務(wù)器還具有映像分割表,該映像分割表在分割固件映像時使用,用于將成為分配固件映像的基準(zhǔn)的目錄名與分割映像編號對應(yīng)起來進(jìn)行管理。另外,在映像分割表中,與各分割映像編號對應(yīng)的表的區(qū)域大小設(shè)定成相等。在該情況下,在執(zhí)行固件的分割處理的時候,在分配給分割表中的第一表區(qū)域的文件的合計大小大于區(qū)域大小的情況下,使分配給第一表區(qū)域的文件的一部分移動到所分配的文件的合計大小小于區(qū)域大小的第二表區(qū)域中。并且對移動處理后的所述第一表區(qū)域賦予表示移動目的地的鏈接信息。在整合設(shè)備中,在將更新映像應(yīng)用于既有固件映像從而更新固件的時候,使啟動OS從通常使用的通常OS切換到緊急時使用的緊急用OS。該緊急用OS具有以下功能當(dāng)在固件更新中整合設(shè)備的電源切斷的情況下,確定更新應(yīng)用中的更新映像的功能;能夠直接對存儲器進(jìn)行訪問的功能;以及使更新應(yīng)用處理工作的功能。另外,整合設(shè)備具有對所述既有固件映像根據(jù)目錄名進(jìn)行分割而生成的既有分割固件映像。該分割的條件與上述的新舊固件映像的分割處理時使用的條件相同。并且,在固件更新處理的時候,將具有基于目錄名的每個分割單位的差分信息的更新映像,應(yīng)用于具有對應(yīng)的目錄名的既有分割固件映像。進(jìn)一步的本發(fā)明的特征可以通過下文的用于實施本發(fā)明的最佳方式和附圖來明確。根據(jù)本發(fā)明,在整合設(shè)備中,固件更新所需要的作業(yè)區(qū)域小,而且作業(yè)時間短,即使電源切斷也能夠再次開始更新,而且即使是不支持寫入的文件系統(tǒng),也能夠更新固件。圖1是表示本發(fā)明的實施方式涉及的固件更新系統(tǒng)的概要結(jié)構(gòu)的圖。圖2是表示本發(fā)明的實施方式涉及的更新制作/發(fā)布服務(wù)器的軟件結(jié)構(gòu)的圖。圖3是表示本發(fā)明的整合設(shè)備的軟件的結(jié)構(gòu)的圖。圖4是表示映像分割表的結(jié)構(gòu)例的圖。圖5是表示分割固件映像的結(jié)構(gòu)體的圖。圖6是表示更新映像的結(jié)構(gòu)例的圖。圖7是表示分區(qū)表的結(jié)構(gòu)例的圖。圖8是表示安裝表的結(jié)構(gòu)例的圖。圖9是表示更新狀態(tài)的結(jié)構(gòu)例的圖。圖10是用于說明映像分割功能的處理內(nèi)容的流程圖。圖11是用于說明更新制作功能的處理內(nèi)容的流程圖。圖12是用于說明更新發(fā)布功能的處理內(nèi)容的流程圖。圖13是用于說明更新應(yīng)用程序的處理內(nèi)容的流程圖。圖14是用于說明恢復(fù)用程序的處理內(nèi)容的流程圖。具體實施例方式關(guān)于本發(fā)明,直截了當(dāng)?shù)卣f,是對新舊固件映像進(jìn)行分割,將每個分割區(qū)域的差分?jǐn)?shù)據(jù)作為更新映像從服務(wù)器發(fā)送到整合設(shè)備中,在整合設(shè)備中不使用文件系統(tǒng)而通過OS執(zhí)行固件的更新。下面,參照附圖對本發(fā)明的實施方式進(jìn)行說明。其中,需要注意的是本實施方式不過是為了實現(xiàn)本發(fā)明的一個示例,其并不限定本發(fā)明的技術(shù)范圍。另外,在各圖中,對于共同的結(jié)構(gòu)標(biāo)以相同的參照符號。<系統(tǒng)結(jié)構(gòu)>圖1是表示系統(tǒng)(固件更新系統(tǒng))的概要結(jié)構(gòu)的圖。該系統(tǒng)具備傳輸更新映像140的更新制作/傳輸服務(wù)器130;經(jīng)網(wǎng)絡(luò)150接收更新映像140并更新內(nèi)部的固件的整合設(shè)備160。開發(fā)者110將制作的新的固件映像120傳輸?shù)礁轮谱?發(fā)布服務(wù)器130。這里,所謂固件映像120是將開發(fā)者110開發(fā)的軟件與構(gòu)成文件作為一個文件來存檔而形成的。存檔的形式是不支持寫入I/O請求的文件系統(tǒng)映像。例如,如果是Linux,則是cramfs那樣的文件系統(tǒng)的映像。更新制作/發(fā)布服務(wù)器130例如是配置在因特網(wǎng)上的整合設(shè)備制造商的服務(wù)器,其具備作為具有網(wǎng)絡(luò)功能的計算機的硬件。即,更新制作/發(fā)布服務(wù)器130具備CPU131、RAM132、網(wǎng)絡(luò)接口133以及HDD134。在HDD134中存儲有將固件映像分割而形成的分割固件映像。具體來說,是基于比新的固件映像120老一個版本的固件映像制作得到的舊版分割固件映像135。另外,對于更新制作/發(fā)布服務(wù)器130的軟件結(jié)構(gòu)將參照圖2在后文中進(jìn)行敘述。另外,舊版分割固件映像135的結(jié)構(gòu)將參照圖5在后文中進(jìn)行敘述。另外,更新制作/發(fā)布服務(wù)器130基于固件映像120和舊版分割固件映像135制作出更新映像140,并經(jīng)由網(wǎng)絡(luò)150發(fā)送給整合設(shè)備160。另外,對于更新映像140的詳細(xì)結(jié)構(gòu),將參照圖6在后文中敘述。整合設(shè)備160具備作為具有網(wǎng)絡(luò)功能的計算機的硬件。即,整合設(shè)備160具備CPU161、RAM162、網(wǎng)絡(luò)接口163以及閃速存儲器164。整合設(shè)備160將軟件更新請求發(fā)送給更新制作/發(fā)布服務(wù)器130,并接收更新映像160,對存儲在閃速存儲器164中的分割固件映像165進(jìn)行更新。另外,對于整合設(shè)備160的軟件結(jié)構(gòu),將參照圖3在后文中進(jìn)行敘述。另外,對于在整合設(shè)備160中使用中的分割固件映像165的結(jié)構(gòu),將參照圖5在后文中進(jìn)行敘述。<更新制作·發(fā)布服務(wù)器的軟件結(jié)構(gòu)>圖2是表示更新制作/發(fā)布服務(wù)器130的軟件的結(jié)構(gòu)的圖。該軟件由映像分割功能210、更新制作功能220、更新發(fā)布功能230、映像分割表M0、舊版分割固件映像(存儲部)135、以及新的分割固件映像(存儲部)260構(gòu)成。所述的各功能以及表存儲在HDD134中。映像分割功能210是更新制作功能220調(diào)用的功能(參照圖11),其對固件映像120進(jìn)行分割,制作出新版固件映像沈0。映像分割功能的處理內(nèi)容的詳細(xì)情況將在后文參照圖10進(jìn)行敘述。更新制作功能220是用于制作更新映像140的功能。其詳細(xì)的處理內(nèi)容將在后文參照圖11進(jìn)行敘述。更新發(fā)布功能230是將更新數(shù)據(jù)包140發(fā)布給整合設(shè)備160的功能。關(guān)于更新發(fā)布功能230的詳細(xì)的處理將在后文參照圖12進(jìn)行敘述。映像分割表240是在映像分割功能210中使用的數(shù)據(jù),其詳細(xì)情況將參照圖4在后文中進(jìn)行敘述。分割固件映像260是更新制作功能220的輸出,其詳細(xì)結(jié)構(gòu)將參照圖5在后文中敘述。<整合設(shè)備的軟件結(jié)構(gòu)>圖3是表示整合設(shè)備160的軟件結(jié)構(gòu)的圖。該軟件由OS組300、更新應(yīng)用程序330、安裝表350、更新狀態(tài)360;分割固件映像165構(gòu)成。OS組300具有在通常時使用、具有讀入專用文件系統(tǒng)的通常0S310;在電源突然切斷時等緊急時使用、具有恢復(fù)用程序322的緊急用0S321;以及分區(qū)表(partitiontable)340o另外,分割固件映像165是在當(dāng)前時刻搭載于整合設(shè)備160的分割固件映像,其在更新前與舊版分割固件映像135為相同內(nèi)容,在更新后與新版分割固件映像260為相同內(nèi)容。通常OS(操作系統(tǒng))310支持讀入專用文件系統(tǒng)311作為文件系統(tǒng)。該讀入專用文件系統(tǒng)311能夠安裝閃速存儲器164上的文件系統(tǒng)映像,并通過Linux那樣的目錄樹(directorytree)訪問文件。但是,即使經(jīng)由目錄樹打開文件,文件僅支持讀入操作,而不支持寫入操作。為了對閃速存儲器進(jìn)行寫入,如LinuxOS的MTD接口那樣,需要直接訪問閃速存儲器。緊急用0S321是在更新應(yīng)用程序330的處理由于電源切斷等而中斷的情況下使用的0S,其包括恢復(fù)用程序322。對于恢復(fù)用程序322的處理將在圖14中敘述,但是,簡單地說,其具有將更新固件寫入到閃速存儲器164功能。但是,在該情況下,與僅指定文件名就能夠進(jìn)行寫入的支持寫入的文件系統(tǒng)不同,必須指定應(yīng)該寫入的閃速存儲器的地址(LBA)進(jìn)行寫入。分區(qū)表340是記載了閃速存儲器164的分區(qū)的表,其存儲在具有通常0S310和緊急用0S321的OS組300中。關(guān)于分區(qū)表340的詳細(xì)結(jié)構(gòu)將在后文參照圖7進(jìn)行敘述。更新應(yīng)用程序330是根據(jù)更新映像140來更新分割固件映像165的程序。更新應(yīng)用程序330的詳細(xì)的處理內(nèi)容將在后文參照圖13進(jìn)行敘述。7安裝表350用于記述整合設(shè)備160內(nèi)的分割固件映像165通過哪個目錄樹進(jìn)行安裝。安裝表350在閃速存儲器164中記錄在與分割固件映像165不同的區(qū)域中。關(guān)于安裝表350的詳細(xì)的結(jié)構(gòu),將參照圖8在后文進(jìn)行敘述。更新狀態(tài)360是用于存儲更新狀態(tài)的區(qū)域,其在閃速存儲器164中記錄在與分割固件映像165不同的區(qū)域中。關(guān)于更新狀態(tài)360的詳細(xì)結(jié)構(gòu)將在后文參照圖9進(jìn)行敘述。<映像分割表的結(jié)構(gòu)>圖4是表示映像分割表MO的結(jié)構(gòu)的圖。該映像分割表240用于對新制作的固件映像120進(jìn)行分割,并生成新版分割固件映像沈0。在圖4中,映像大小410是分割的大小。在圖4的例子中,分割大小(分割出的各映像的大小)不超過8Mbyte,但是并不限定于該大小。在映像分割表MO中,針對分割出的映像,賦予映像編號420。在目錄名430中記錄有在分割出的映像中存儲的目錄子樹。例如,符號420所示的行具有這樣的意思“在映像編號為2的映像中存儲/lib以下的目錄樹”。另外,符號441一行中的“/”意思是“存儲了符號442、443、以及444的行中沒有存儲的所有目錄樹”。<分割固件映像(新舊)的結(jié)構(gòu)>圖5是表示分割固件映像260和舊版分割固件映像135的結(jié)構(gòu)的圖。分割固件映像260和135是將固件映像120以映像大小(分割大小410)為單位進(jìn)行分割而生成,并由分割編號510和530以及分割出的映像數(shù)據(jù)520和540構(gòu)成。<更新映像的結(jié)構(gòu)>圖6是表示更新映像140的結(jié)構(gòu)的圖。更新映像140由映像編號610、與映像編號對應(yīng)的更新數(shù)據(jù)620構(gòu)成。如圖6所示,例如,關(guān)于映像編號為2的映像數(shù)據(jù),由于在新版和舊版之間沒有差,因此,沒有包含在更新映像140中。<分區(qū)表的結(jié)構(gòu)>圖7是表示分區(qū)表340的結(jié)構(gòu)的圖。該分區(qū)表340是在確定將映像數(shù)據(jù)物理性地寫入到哪里時所參照的表,其進(jìn)行了閃速存儲器164的分區(qū)設(shè)定。分區(qū)表340由分區(qū)編號710、與分區(qū)編號710對應(yīng)的閃速存儲器的地址范圍720構(gòu)成。在本次的示例中,定義了5個8M字節(jié)的分區(qū)5和1個2M字節(jié)的分區(qū)。<安裝表的結(jié)構(gòu)>圖8是表示安裝表350的詳細(xì)結(jié)構(gòu)的圖。安裝表350是為了將正確的數(shù)據(jù)存儲在文件樹內(nèi)的正確位置而使用的表,其由存儲了映像的分區(qū)編號810、映像編號820以及安裝OS的安裝點830構(gòu)成。當(dāng)不清楚安裝點830時,OS無法判斷應(yīng)該安裝哪個數(shù)據(jù)。另外,在安裝表350中,例如,行832是這樣的意思“在分區(qū)編號為2的分區(qū)中,存儲與映像標(biāo)號2對應(yīng)的映像,OS將該映像安裝到/lib”?!锤聽顟B(tài)的結(jié)構(gòu)〉圖9是表示更新狀態(tài)360的結(jié)構(gòu)的圖。在更新狀態(tài)360中記錄更新狀態(tài)編號。艮口,更新狀態(tài)360是表示現(xiàn)在正在更新與哪個映像編號對應(yīng)的更新映像的信息。當(dāng)所有的更新映像的更新處理結(jié)束時,最后更新的映像編號被記錄,因此,可知所有的更新映像已經(jīng)處理過了。<映像分割功能的處理內(nèi)容>圖10是用于說明在映像分割功能210中使用的映像分割功能所執(zhí)行的處理內(nèi)容的流程圖。另外,作為映像分割表M0,使用圖4所示的表的例子進(jìn)行說明。首先,映像分割功能210在RAM132上設(shè)置行數(shù)與映像分割表240的行數(shù)為相同數(shù)量的作業(yè)區(qū)域(步驟1010),如果是圖4的映像分割表M0,則設(shè)置4個作業(yè)區(qū)域。接著,映像分割功能210對包含在固件映像120中的各文件反復(fù)執(zhí)行以下的步驟1021和1022的處理(步驟1020)。即,映像分割功能210對文件與映像分割表MO的哪個映像編號420對應(yīng)進(jìn)行檢索(步驟1021)。例如,如果文件名為/lib/libc.so,則映像編號為“2”,如果文件名為/sbin/insmod,則與行442、443、444中的任何一個目錄都不相當(dāng),因此,與行441的目錄“/”匹配,映像編號為“1”。然后,映像分割功能210將文件存儲到與通過步驟1021而匹配的映像編號對應(yīng)的作業(yè)區(qū)域中(步驟1022)。例如,如果為/lib/libc.so,則在作業(yè)區(qū)域2以相同文件名進(jìn)行保存,如果為/sbin/insmod,則在作業(yè)區(qū)域1以相同文件名進(jìn)行保存。接著,映像分割功能210在各作業(yè)區(qū)域中反復(fù)執(zhí)行以下的步驟1031至1034的處理(步驟1030)。即,映像分割功能210估計將保存在各作業(yè)區(qū)域中的文件作為文件系統(tǒng)映像進(jìn)行存檔了的情況下的大小(步驟1031)。具體來說,實際制作出存檔,測量所制作的存檔文件大小。另外,映像分割功能210判定映像大小是否大于映像大小410(在圖4的例子中為8M字節(jié))(步驟1032)。在判斷為映像大小大于映像大小410的情況下,處理轉(zhuǎn)移到步驟1033,在判斷為小于映像大小410的情況下,處理轉(zhuǎn)移到步驟1034。當(dāng)在步驟1032中為是(Yes)的情況下,映像分割功能210將保存在作業(yè)區(qū)域中的文件移動到映像大小比映像大小410小的作業(yè)區(qū)域中,并且,將該源文件作為符號鏈接(symboliclink)保留,使鏈接目的地為移動目的地(步驟1033)。例如,將保存在作業(yè)區(qū)域2中的/lib.libc.so作為/bin/overflow3/lib/libc.so移動到了作業(yè)區(qū)域3的情況下,作業(yè)區(qū)域2中的/lib.libc.so成為通向/bin/overflow3/lib/libc.so的符號鏈接。這樣,即使移動文件的內(nèi)容,也能夠以相同的名字訪問文件。當(dāng)在步驟1032中為否的情況下,或者,在步驟1033的處理之后,映像分割功能210將保存在作業(yè)區(qū)域中的文件作為文件系統(tǒng)映像存檔,并保存到分割固件映像260中(步驟1034)。例如,如果是作業(yè)區(qū)域2,則保存的地點成為行532。通過上述的作業(yè),固件映像120被分割成最大為8M字節(jié)的文件系統(tǒng)映像,并作為分割固件映像260進(jìn)行保存。<更新制作功能的處理內(nèi)容>圖11是用于說明更新制作功能220執(zhí)行的更新映像制作處理的內(nèi)容的流程圖。首先,將由開發(fā)者110制作的固件映像120輸入到更新制作/發(fā)布服務(wù)器130,更新制作功能220取得該固件映像120(步驟1110)。接著,更新制作功能220調(diào)出映像分割功能210,并使用其進(jìn)行固件映像分割處理(圖10),并取得分割固件映像260(步驟1120)。然后,更新制作功能220,針對分割固件映像沈0的各映像編號510(為循環(huán)變量m),反復(fù)執(zhí)行下面的步驟1131至1134的處理(步驟1130)。S卩,更新制作功能220對分割固件映像沈0的映像編號510為m的映像數(shù)據(jù)520與舊版分割固件映像135的映像編號530為m的映像數(shù)據(jù)540進(jìn)行比較(步驟1131),判斷映像數(shù)據(jù)是否相同(步驟1132)。如果相同則結(jié)束處理,如果不相同則使處理轉(zhuǎn)移到步驟1133。在步驟1132為否的情況下,更新制作功能220以二進(jìn)制為單位提取步驟1131的分割固件映像260的映像數(shù)據(jù)520與舊版分割固件映像135的映像數(shù)據(jù)530之間的差分?jǐn)?shù)據(jù)(步驟1133)。作為提取方法,例如可以使用xdelta那樣的技術(shù)。接著,更新制作功能220將m保存到更新映像140的映像編號610,將在步驟1133中提取到的差分?jǐn)?shù)據(jù)保存到更新狀態(tài)620中(步驟1134)。如上所述,制作出更新映像。如前所述,更新映像例如為圖6那樣的結(jié)構(gòu)。<更新發(fā)布功能的處理內(nèi)容>圖12是用于說明更新發(fā)布功能230的處理內(nèi)容的流程圖。當(dāng)取得從整合設(shè)備160發(fā)送到更新制作/發(fā)布服務(wù)器130的固件更新的請求時(步驟1210),更新發(fā)布功能230將更新制作功能220制作好的更新映像傳輸?shù)秸埱蟀l(fā)送源整合設(shè)備160(步驟1220)。另外,更新請求的發(fā)送例如由使用者指定更新,或者由整合設(shè)備160定期地自動發(fā)送,或者在啟動整合設(shè)備160時與更新制作/發(fā)布服務(wù)器130進(jìn)行通信來檢查固件是否正在更新,在正在更新的情況下自動發(fā)送更新請求即可?!锤聭?yīng)用程序的處理內(nèi)容〉圖13是用于說明整合設(shè)備160中的更新應(yīng)用程序330執(zhí)行的處理內(nèi)容的流程圖。另外,更新應(yīng)用程序330與CPU161協(xié)同作為更新應(yīng)用處理部發(fā)揮功能。整合設(shè)備160從更新制作/發(fā)布服務(wù)器130接收更新映像140,啟動了的更新應(yīng)用程序330將存儲地點通知通常OS(在RAM上展開的0,通常OS將其保存到存儲器中(步驟1310)。另外,關(guān)于更新映像140的保存目的地,為安裝表350的映像編號820為“W0RK2”的行中的、與分區(qū)編號810對應(yīng)的分區(qū)。在圖8所示的安裝表的情況下,為與分區(qū)編號6對應(yīng)的分區(qū)(W0RK2)。另外,在進(jìn)行保存的時候,不經(jīng)文件系統(tǒng)311而由通常OS的文件系統(tǒng)311以外的功能直接寫入到閃速存儲器164中。另外,更新狀態(tài)921為“0”(表示還沒有進(jìn)行任何更新)。接著,更新應(yīng)用程序330將下次啟動時的OS從通常OS切換到緊急用0S321(步驟1320)。這是用于使在非常事態(tài)時等電源切斷的情況下能夠使用緊急用0S321的處理,如果電源沒有斷開,則使用通常0S310(在RAM162上展開的通常OS)。另外,切換通過切換引導(dǎo)裝入(bootload)的設(shè)定等可以實現(xiàn)。此外,緊急用0S321的功能只要至少具有以下功能即可更新狀態(tài)參照功能;指定地址、執(zhí)行針對閃速存儲器164的數(shù)據(jù)讀寫的功能;以及執(zhí)行恢復(fù)用程序322的功能。另外,更新應(yīng)用程序330對更新映像140的各映像編號610反復(fù)執(zhí)行步驟1331至1334的處理(步驟1330)。這里,復(fù)返的變量在下文中為η。S卩,更新應(yīng)用程序330對更新狀態(tài)921進(jìn)行更新(步驟1331)。具體來說,將“η”輸入到更新狀態(tài)921中。另外,更新應(yīng)用程序330,參照安裝表350(圖8),查找與映像編號η對應(yīng)的分區(qū),來作為更新數(shù)據(jù)620的應(yīng)用對象。例如,在η=1的情況下,參照圖8,對應(yīng)的分區(qū)編號為1,存在于該分區(qū)的數(shù)據(jù)成為更新應(yīng)用對象。將更新數(shù)據(jù)620應(yīng)用到更新應(yīng)用對象的數(shù)據(jù)。應(yīng)用的時候,使用xdelta的差分應(yīng)用功能那樣的功能。應(yīng)用后的數(shù)據(jù)被輸出到與映像編號為WORK(作業(yè)區(qū)域)1對應(yīng)的分區(qū)(分區(qū)編號為“m”)。在圖8的示例中,與WOKRl對應(yīng)的分區(qū)編號為5,因此,輸出到分區(qū)5中。這樣,不是分區(qū)編號為1的區(qū)域而是將更新數(shù)據(jù)存儲到TORK1,是因為若沒有保留舊版的數(shù)據(jù),則在中途電源斷開的情況下,無法再次開始固件的更新處理。并且,當(dāng)更新數(shù)據(jù)在應(yīng)用對象中的存儲完成時,更新應(yīng)用程序330將安裝表的分區(qū)編號810的m和η對調(diào)(步驟1333)。在圖8的例子中,行831的分區(qū)編號為5,行835的分區(qū)編號為1。接著,更新應(yīng)用程序330再次執(zhí)行安裝處理。在這里所示的例子的情況下,安裝點“/”被安裝到分區(qū)5中。由此,安裝于安裝點“/”的數(shù)據(jù)為更新過的映像編號為1的數(shù)據(jù)。在發(fā)送來的所有更新映像被應(yīng)用后(對所有的映像編號結(jié)束了步驟1332至1334的處理之后),更新應(yīng)用程序330使啟動OS返回到原來的通常0S310,并結(jié)束處理(步驟1340)。<回復(fù)用程序的處理內(nèi)容>圖14是用于說明從緊急用0S321開始啟動的恢復(fù)用程序322的處理的流程圖。另外,緊急用0S321在圖13的處理在中途結(jié)束的情況下啟動。當(dāng)圖13的處理由于某種原因(緊急事態(tài)或者異常事態(tài))而結(jié)束的情況下,恢復(fù)用程序322參照更新狀態(tài)921,取得曾經(jīng)正在更新中(結(jié)束時正在處理中)的更新數(shù)據(jù)的映像(步驟1410)。在圖9的情況下為2。然后,恢復(fù)用程序322從圖13的處理的步驟1332,η=步驟1410的值,再次開始圖13的處理(步驟1420)。此時,使用緊急用0S321?!葱〗Y(jié)〉在本實施方式中,在更新制作發(fā)布服務(wù)器中,將更新對象設(shè)備(整合設(shè)備)的舊版本的固件映像與新版本的固件映像分別分割成等大小Μ(字節(jié))的N個新版本固件映像i(l<i<N)(下文中稱為新固件映像i)與N個舊版本固件映像i(下文中稱為舊固件映像)。然后,提取出舊固件映像i與新固件映像i之間的差分i(1<i<N),匯總差分i來形成更新數(shù)據(jù)包,并傳輸給對象設(shè)備。由此,整合設(shè)備側(cè)的更新處理僅通過針對存在差的分割后的固件映像i的更新即可完成,因此,容易確定更新對象的文件,而且能夠非常高效地執(zhí)行固件的更新處理。更新對象設(shè)備的閃速存儲器分成N個以上的分區(qū),分區(qū)大小至少在大小M以上,舊固件映像i存儲在各分區(qū)中。另外,更新對象設(shè)備接收更新數(shù)據(jù)包,并將數(shù)據(jù)包中所包含的差分i應(yīng)用到存儲于分區(qū)中的舊固件映像i,生成新固件映像i。另外,在對象設(shè)備,設(shè)置使用于針對舊固件映像i的更新作業(yè)的作業(yè)用的分區(qū)W。將作為針對舊固件映像i的更新作業(yè)的輸出的新固件映像i輸出到分區(qū)W。更新后,將W的數(shù)據(jù)作為新固件映像i進(jìn)行處理,將存儲有舊固件映像i的分區(qū)作為W處理。另外,在對象設(shè)備設(shè)置緊急用OS和更新狀態(tài)數(shù)據(jù)。在更新狀態(tài)中記錄當(dāng)前正在更新哪個固件映像i的狀態(tài)。當(dāng)在更新途中切斷了電源的情況下,當(dāng)下一次接通電源時,緊急用OS啟動,參照更新狀態(tài)數(shù)據(jù)再次開始更新處理。通過以上,作業(yè)區(qū)域的大小僅僅是作業(yè)用的分區(qū)W。另外,由于僅僅是對有差分的分割后的固件映像i進(jìn)行更新,因此,更新所需要的時間比對所有的固件映像進(jìn)行更新花費的時間要短。此外,即使在從舊固件映像i生成新固件映像i的作業(yè)的中途電源被切斷的情況下,由于舊固件映像i仍然保留,因此,在下一次的電源接通時能夠再次開始更新。另外,在實施方式中,作業(yè)區(qū)域的大小是作業(yè)用分區(qū)W0RK1、W0RK2的合計,為IOM字節(jié)。固件映像的大小為4個8M的映像的量,為32M字節(jié)。在對固件映像全部進(jìn)行更新的方式中,由于需要與固件映像相同大小(32M字節(jié))的作業(yè)區(qū)域,因此,能夠減小作業(yè)區(qū)域。另外,由于僅僅是對有差分的分割后的固件映像的更新,因此更新所需要的時間也比對所有的固件映像進(jìn)行更新要短。另外,即使是在從舊固件映像生成新固件映像的作業(yè)的中途切斷電源的情況下,通過圖14的處理,在下一次的電源接通時能夠再次開始更新。另外,本發(fā)明也可以通過實現(xiàn)本實施方式的功能的軟件程序代碼來實現(xiàn)。在該情況下,將記錄有程序代碼的存儲介質(zhì)提供給系統(tǒng)或者裝置,由該系統(tǒng)或者裝置的計算機(或者CPU、MPU)讀出存儲在存儲介質(zhì)中的程序代碼。在該情況下,從存儲介質(zhì)讀出的程序代碼本身實現(xiàn)了所述的實施方式的功能,該程序代碼本身以及存儲有該程序代碼的存儲介質(zhì)構(gòu)成本發(fā)明。作為用于供給這樣的程序代碼的存儲介質(zhì),例如可以使用柔性盤、CD-ROM、DVD-ROM、硬盤、光盤、光磁盤、CD-R、磁帶、非易失性的存儲卡、ROM等。另外,也可以構(gòu)成為根據(jù)程序代碼的指示,由在計算機上工作的OS(操作系統(tǒng))等進(jìn)行實際的處理的一部分或者全部,通過該處理來實現(xiàn)所述的實施方式的功能。另外,也可以構(gòu)成為在從存儲介質(zhì)讀出的程序代碼寫入到計算機的存儲器后,根據(jù)該程序代碼的指示,由計算機的CPU等進(jìn)行實際的處理的一部分或者全部,通過該處理來實現(xiàn)所述的實施方式的功能。另外,也可以構(gòu)成為將實現(xiàn)實施方式的功能的軟件的程序代碼經(jīng)由網(wǎng)絡(luò)進(jìn)行傳輸,由此,將其存儲到系統(tǒng)或者裝置的硬盤或存儲器等存儲單元或者CD-RW、CD-R等存儲介質(zhì)中,在使用時由該系統(tǒng)或者裝置的計算機(或者CPU、MPU)讀出存儲在該存儲單元或者該存儲介質(zhì)中的程序代碼來執(zhí)行。權(quán)利要求1.一種固件更新系統(tǒng),其特征在于,具備整合有固件的整合設(shè)備;以及固件傳輸服務(wù)器,其經(jīng)由網(wǎng)絡(luò)與該整合設(shè)備連接,用于傳輸包括軟件及其構(gòu)成數(shù)據(jù)的固件映像,所述固件傳輸服務(wù)器具有存儲部,其存儲將舊版本的固件映像分割成預(yù)定個數(shù)而生成的多個舊版本分割固件映像;分割映像制作部,其以與所述舊版本的固件映像相同的條件對新版本的固件映像進(jìn)行分割,并生成多個新版本分割固件映像;更新映像制作部,其針對固件映像的每個分割單位,提取出所述新版本固件映像與所述舊版本固件映像的差分信息,并生成具有每個所述分割單位的差分信息的更新映像;以及傳輸部,其將所述更新映像傳輸給所述整合設(shè)備,所述整合設(shè)備具有接收所述更新映像的接收部;以及更新應(yīng)用部,其將所述更新映像應(yīng)用于使用中的既有固件映像,并更新固件。2.根據(jù)權(quán)利要求1所述的固件更新系統(tǒng),其特征在于,以目錄名相通的文件對所述舊版本的固件進(jìn)行匯總分割,由此生成所述多個舊版本分割固件映像,所述分割映像制作部,以與生成所述多個舊版本分割固件映像時相同的條件,根據(jù)所述目錄名,來對所述新版本的固件進(jìn)行分割,從而生成所述多個新版本分割固件映像。3.根據(jù)權(quán)利要求2所述的固件更新系統(tǒng),其特征在于,所述固件傳輸服務(wù)器還具有映像分割表,該映像分割表在分割固件映像時使用,用于將成為分配所述固件映像的基準(zhǔn)的目錄名與分割映像編號對應(yīng)起來進(jìn)行管理,在所述映像分割表中,與各分割映像編號對應(yīng)的表的區(qū)域大小設(shè)定成相等,所述分割映像制作部,在分配給第一表區(qū)域的文件的合計大小大于所述區(qū)域大小的情況下,使分配給所述第一表區(qū)域的文件的一部分移動到所分配的文件的合計大小小于所述區(qū)域大小的第二表區(qū)域中,并對移動處理后的所述第一表區(qū)域賦予表示移動目的地的鏈接信息,由此,來分割所述固件映像。4.根據(jù)權(quán)利要求1所述的固件更新系統(tǒng),其特征在于,所述更新應(yīng)用部,在將所述更新映像應(yīng)用于所述既有固件映像從而更新所述固件的時候,使啟動OS從通常使用的通常OS切換到緊急時使用的緊急用OS。5.根據(jù)權(quán)利要求4所述的固件更新系統(tǒng),其特征在于,所述緊急用OS具有以下功能當(dāng)在所述固件更新中所述整合設(shè)備的電源切斷的情況下,確定更新應(yīng)用中的更新映像的功能;能夠直接對存儲器進(jìn)行訪問的功能;以及使所述更新應(yīng)用部工作的功能。6.根據(jù)權(quán)利要求2所述的固件更新系統(tǒng),其特征在于,所述整合設(shè)備具有對所述既有固件映像根據(jù)所述目錄名進(jìn)行分割而生成的既有分割固件映像,所述更新應(yīng)用部將具有基于所述目錄名的每個所述分割單位的所述差分信息的所述更新映像,應(yīng)用于具有對應(yīng)的目錄名的所述既有分割固件映像,從而對所述固件進(jìn)行更新。7.一種固件傳輸服務(wù)器,其特征在于,該固件傳輸服務(wù)器經(jīng)由網(wǎng)絡(luò)與整合有固件的整合設(shè)備連接,用于傳輸包括軟件及其構(gòu)成數(shù)據(jù)的固件映像,所述固件傳輸服務(wù)器具有存儲部,其存儲將舊版本的固件映像分割成預(yù)定個數(shù)而生成的多個舊版本分割固件映像;分割映像制作部,其以與所述舊版本的固件映像相同的條件對新版本的固件映像進(jìn)行分割,并生成多個新版本分割固件映像;更新映像制作部,其針對固件映像的每個分割單位,提取出所述新版本固件映像與所述舊版本固件映像的差分信息,并生成具有每個所述分割單位的差分信息的更新映像;以及傳輸部,其將所述更新映像傳輸給所述整合設(shè)備。8.一種固件整合設(shè)備,其特征在于,該固件整合設(shè)備經(jīng)由網(wǎng)絡(luò)與固件傳輸服務(wù)器連接,所述固件傳輸服務(wù)器用于傳輸包括軟件及其構(gòu)成數(shù)據(jù)的固件映像,所述固件整合設(shè)備具有接收從所述固件傳輸服務(wù)器發(fā)送來的更新映像的接收部;以及更新應(yīng)用部,其將所述更新映像應(yīng)用于使用中的既有固件映像,并更新固件,所述更新映像由多個舊版本分割固件映像和多個新版本分割固件映像的差分構(gòu)成,所述多個舊版本分割固件映像通過將舊版本的固件映像分割成預(yù)定個數(shù)而生成;所述多個新版本分割固件映像通過以與所述舊版本的固件映像相同的條件對新版本的固件映像進(jìn)行分割而生成;所述更新映像針對所述新舊版本的固件映像的每個分割單位,提取出所述新版本固件映像與所述舊版本固件映像的差分信息,并具有每個所述分割單位的差分信息,以與所述新舊版本的固件映像相同的條件對所述使用中的既有固件映像進(jìn)行分割,所述更新應(yīng)用部將所述更新映像應(yīng)用于所述分割后的使用中的既有固件映像的相應(yīng)的分割單位。9.一種程序,其用于使計算機作為權(quán)利要求7所述的固件傳輸服務(wù)器來工作。全文摘要本發(fā)明提供一種固件更新技術(shù),作業(yè)區(qū)域和作業(yè)時間小,即使電源切斷也能夠再次開始更新,而且支持了不支持寫入的文件系統(tǒng)。為此,在更新制作/發(fā)布服務(wù)器中,對舊版和新版的固件映像進(jìn)行分割,提取出新版和舊版的分割后的固件映像的差分,制作出更新數(shù)據(jù)包,并將其傳輸給整合設(shè)備。另一方面,在整合設(shè)備中,對舊版的分割后的固件映像(當(dāng)前使用中的既有固件映像)應(yīng)用更新數(shù)據(jù)包。文檔編號G06F11/00GK102132259SQ201080002440公開日2011年7月20日申請日期2010年3月8日優(yōu)先權(quán)日2009年3月30日發(fā)明者中村雄一,大浜伸之申請人:日立系統(tǒng)解決方案有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
云南省| 万州区| 井陉县| 普安县| 丰顺县| 常山县| 如皋市| 剑川县| 灵川县| 兴宁市| 阳曲县| 阳东县| 惠东县| 长宁区| 石家庄市| 星子县| 达日县| 铁岭县| 华坪县| 漳平市| 太白县| 嫩江县| 平邑县| 昌图县| 涞水县| 合山市| 兰溪市| 临西县| 兴化市| 和田县| 漳浦县| 那曲县| 义乌市| 辉南县| 万盛区| 白城市| 株洲县| 定兴县| 邵东县| 绥德县| 松潘县|