專利名稱::生成增量程序更新的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及更新存儲(chǔ)器圖像模塊,所述存儲(chǔ)器圖像模塊被存儲(chǔ)在與目標(biāo)處理裝置相關(guān)聯(lián)的存儲(chǔ)介質(zhì)中。本發(fā)明尤其涉及生成更新的存儲(chǔ)器圖像,所述存儲(chǔ)器圖像要被載入其上存儲(chǔ)了當(dāng)前存儲(chǔ)器圖像的存儲(chǔ)介質(zhì)中,例如處理裝置的存儲(chǔ)器。
背景技術(shù):
:很多現(xiàn)代電子裝置,例如嵌入式裝置,由存儲(chǔ)在閃存中的軟件控制。閃存是一類經(jīng)常在電子裝置中使用的存儲(chǔ)器,因?yàn)樗试S進(jìn)行多次重寫。然而,寫操作每一次被限制在被稱作頁(yè)的整個(gè)存儲(chǔ)器扇區(qū)。當(dāng)前閃存的典型頁(yè)大小是64k字節(jié)。例如為了向軟件添加新的特征和/或校正當(dāng)前軟件版本中的錯(cuò)誤,當(dāng)存儲(chǔ)在電子裝置閃存中的軟件被更新時(shí),閃存的一些或全部存儲(chǔ)器扇區(qū)被重寫/重編程或"再閃光(re-flashed)"。通常,為了使安裝軟件更新所需的時(shí)間和能量消耗最少,希望使在軟件更新期間被重寫的閃存頁(yè)數(shù)最少。特別地,其中關(guān)心更新時(shí)間的一種應(yīng)用是移動(dòng)終端的空中下載(over-the-air,OTA)更新,例如移動(dòng)終端固件的更新,所謂的固件空中下載(F0TA)更新。為了提供資源高效的更新機(jī)制,已知分配增量更新,即僅僅把對(duì)當(dāng)前圖像的修改分配到目標(biāo)裝置,而不是分配整個(gè)更新圖像。修改通常是指德耳塔(delta)文件。通常,在這種系統(tǒng)中,運(yùn)行在移動(dòng)終端上的更新代理將接收到的修改應(yīng)用到當(dāng)前圖像上,所述當(dāng)前圖像因此4t變換為更新版本。為了減小當(dāng)通過(guò)通信信道發(fā)送德耳塔文件時(shí)所需的加載/傳輸帶寬,和/或減小在目標(biāo)裝置中的加載過(guò)程期間的處理時(shí)間和存儲(chǔ)需求,通常希望減小德耳塔文件的大小。并且,通常希望減小為了執(zhí)行軟件更新在移動(dòng)終端中所需的存儲(chǔ)容量和計(jì)算資源的數(shù)量。終端可能在更新過(guò)程期間不可操作是這種更新系統(tǒng)的另一普遍問(wèn)題。因此,希望減小再閃光存儲(chǔ)器所需的時(shí)間,并因此減小系統(tǒng)的停機(jī)時(shí)間(downtime)。為了本說(shuō)明書的目的,存儲(chǔ)介質(zhì)可在其上存儲(chǔ)有一個(gè)或更多可^R同時(shí)或單獨(dú)更新的軟件模塊,例如較大軟件系統(tǒng)的不同部件和/或不同單獨(dú)軟件應(yīng)用。對(duì)應(yīng)于特定軟件^t塊的二進(jìn)制存儲(chǔ)器內(nèi)容部分也將被稱作存儲(chǔ)器圖像模塊。在已知的德耳塔更新系統(tǒng)中,關(guān)于軟件模塊如何被放置在目標(biāo)裝置存儲(chǔ)器中的信息通常對(duì)德耳塔文件生成工具可用。特別地,德耳塔文件生成工具通常假設(shè)要被更新的存儲(chǔ)器圖像模塊的起始地址已知并且固定,就像當(dāng)存儲(chǔ)器圖像包括單個(gè)固定圖像模塊,所述單個(gè)固定圖像模塊總是被定位在同一起始地址的情況一樣。然而,當(dāng)存儲(chǔ)存儲(chǔ)器包含可以被定位在每個(gè)目標(biāo)裝置存儲(chǔ)器中不同起始地址上的模塊時(shí),出現(xiàn)特殊的問(wèn)題,使得德耳塔文件生成工具不知道該模塊的實(shí)際起始地址。特別地,在這種情況下,當(dāng)前安裝的軟件模塊的準(zhǔn)確二進(jìn)制圖像對(duì)于生成更新包的離線工具未知,并且不同目標(biāo)裝置上的單個(gè)軟件模塊版本的圖像很可能不同。并且,新圖像將要被加載的位置不一定與所安裝圖像的位置相同,因?yàn)槔缈臻g要求會(huì)迫使目標(biāo)裝置選擇不同的位置。因此,這種軟件模塊的二進(jìn)制圖像完全僅僅在被加載到存儲(chǔ)器之后確定。通常,這種模塊由目標(biāo)裝置以可再定位的版本接收,例如以目標(biāo)碼的格式,所述格式包括對(duì)存儲(chǔ)器地址的符號(hào)的/未解析的參照。為了本說(shuō)明書的目的,這種模塊也將被稱作加載模塊。加載模塊中的符號(hào)參照由目標(biāo)裝置在加載過(guò)程期間解析。不同的符號(hào)參照可能需要不同的解析,例如絕對(duì)參照與相對(duì)參照不同地被解析。因此,加載模塊具有與其相關(guān)聯(lián)的所謂再定位指令,所述指令指導(dǎo)解析過(guò)程如何為各個(gè)符號(hào)參照計(jì)算實(shí)際的存儲(chǔ)器地址。US專利no.6,230,316公開了在臺(tái)式計(jì)算機(jī)系統(tǒng)上增量更新文件的方法。在某些情況下,不可能或不希望將可執(zhí)行文件加載到其原始預(yù)定的位置上??蓤?zhí)行代碼的起始地址然后被改變,過(guò)程被稱作重定位基址(rebasing)。重定位基址在軟件;波安裝到計(jì)算機(jī)上之后在目標(biāo)系統(tǒng)上說(shuō)是未知的:特別地,桌面系統(tǒng)的可執(zhí)行文件典型地被存儲(chǔ)在次要(secondary)存儲(chǔ)器中,典型地是硬盤,并且在文件的一部分被執(zhí)行之前,其被從次要存儲(chǔ)器加載到典型地是隨機(jī)存取存儲(chǔ)器(RAM)的主要存儲(chǔ)器。沒(méi)有被復(fù)制到主要存儲(chǔ)器的文件部分包含重定位信息,所述重定位信息列出依賴于位置的參照。重定位基址文件時(shí),重定位信息被使用。重定位信息還可以用于恢復(fù)重定位基址過(guò)程,得到可能對(duì)于離線工具已知的正則(canonical)形式。上述現(xiàn)有4支術(shù)方法公開了一種在重定位基址到預(yù)先確定的基地址的形式。在目標(biāo)系統(tǒng)上,安裝版本在德耳塔文件被應(yīng)用之前被引入相同的正則形式,且更新版本被生成,其接下來(lái)可被重定位基址為新的基地址。盡管現(xiàn)有技術(shù)的方法提供了在臺(tái)式計(jì)算機(jī)系統(tǒng)上增量更新重定位基址文件的方法,但是在提供解決上述一般性問(wèn)題并適用于由嵌入式軟件控制的便攜式裝置,諸如移動(dòng)終端的增量更新系統(tǒng)方面仍存在問(wèn)題。特別地,與臺(tái)式系統(tǒng)相反,嵌入式系統(tǒng)中使用的二進(jìn)制圖像通常被"在適當(dāng)位置"執(zhí)行,即其被存儲(chǔ)在永久性存儲(chǔ)器中并從同一存儲(chǔ)器執(zhí)行。上述現(xiàn)有技術(shù)方法對(duì)嵌入式系統(tǒng)的應(yīng)用將會(huì)需要除了可執(zhí)行代碼,也需要存儲(chǔ)在目標(biāo)裝置中的重定位信息。然而,重定位信息的大小可能很重要,有可能甚至與存儲(chǔ)器圖像本身的順序相同。增加的存儲(chǔ)器腳注的成本對(duì)大批量生產(chǎn)不利。
發(fā)明內(nèi)容上述和其它問(wèn)題由生成德耳塔文件的方法解決,該德耳塔文件包括用于使目標(biāo)處理裝置將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊的更新指令;該方法包括-將第一存儲(chǔ)器地址的參數(shù)化表示合并到德耳塔文件中,該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像^t塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)化的;和-將參數(shù)解析指令合并到德耳塔文件中。因此,這里所述的方法生成參數(shù)德耳塔文件,即未被完全指定但關(guān)于目標(biāo)指定數(shù)據(jù)被參數(shù)化的德耳塔文件。參數(shù)化的德耳塔文件被從生成該德耳塔文件的系統(tǒng)傳送到目標(biāo)系統(tǒng),例如移動(dòng)終端。當(dāng)?shù)露募粦?yīng)用到目標(biāo)系統(tǒng)上的安裝的存儲(chǔ)器圖像時(shí),相應(yīng)的參數(shù)值神支分配給參數(shù)。這樣可以使用同樣的與其被應(yīng)用在哪里和什么環(huán)境中無(wú)關(guān)的德耳塔更新包。并且,一旦參數(shù)值已知,參數(shù)化的德耳塔文件可被直接應(yīng)用到安裝圖像,而無(wú)需在安裝之前將安裝圖像變換為正則形式。因此,這里所描述的參數(shù)化德耳塔更新程序的好處在于,其提供安裝的加載模塊到較新版本的直接更新,而不必首先卸載、重定位基址或重新排列舊版本。因此,這里所述的方法提供了存儲(chǔ)器高效的更新過(guò)程。特別地,盡管上面現(xiàn)有技術(shù)的系統(tǒng)需要完全重定位信息和要被重定位基址的文件一起存儲(chǔ),沒(méi)有重定位信息需要被存儲(chǔ)在目標(biāo)系統(tǒng)上,所述目標(biāo)系統(tǒng)允許安裝版本重新變換為正則形式。在這里所述方法的實(shí)施例中,足夠保持使參照進(jìn)入到存儲(chǔ)器模塊中/從存儲(chǔ)器模塊中引出參照。并且,在更新過(guò)程期間,在安裝期間所需的暫時(shí)存儲(chǔ)器量減少,因?yàn)闆](méi)有安裝版本的正則形式需要由目標(biāo)裝置生成。這里所述方法的另一個(gè)優(yōu)點(diǎn)是,加載才莫塊可以被簡(jiǎn)單地更新,而不涉及來(lái)自任何操作系統(tǒng)加載器過(guò)程等等。特別地,更新可以由在適當(dāng)位置生成更新存儲(chǔ)器圖像的更新代理完成。因此,該過(guò)程可被應(yīng)用到目標(biāo)系統(tǒng)的固件,即使如果該固件在適當(dāng)?shù)奈恢帽粓?zhí)行,因?yàn)樵摴碳恍枰诟逻^(guò)程期間運(yùn)4亍。在一個(gè)實(shí)施例中,該方法包括由包括對(duì)存儲(chǔ)器地址的符號(hào)參照的當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本,和由用于當(dāng)前和更新的存儲(chǔ)器圖像模塊的各個(gè)可重定位版本中所述符號(hào)參照的當(dāng)前和更新的重定位指令而生成德耳塔文件。因此,德耳塔文件被生成為關(guān)于反映存儲(chǔ)器圖像的可重定位版本之間的修改,所述可重定位版本即其中對(duì)存儲(chǔ)器地址的符號(hào)參照尚未被解析的版本,由此使得可重定位版本能夠被加載到不同的存儲(chǔ)器位置上。當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本可以包括結(jié)果代碼(objectcode),即計(jì)算機(jī)可讀程序代碼,通常用二進(jìn)制機(jī)器語(yǔ)言表達(dá),這通常是給定翻譯過(guò)程的輸出,通常是指匯編(compilation),其中輸出在理論上易于由計(jì)算機(jī)執(zhí)行。可重定位加載模塊可包括符號(hào)參照,所述符號(hào)參照是指加載模塊中的其它位置或者甚至是指其它加載模塊,例如被在任何地方定義的函數(shù)、變量等。特別地,可重定位加載模塊通常包括符號(hào)參照和相應(yīng)的重定位位置,后者包括關(guān)于符號(hào)參照解析的指令??芍囟ㄎ荒K的一個(gè)有趣的性質(zhì)是,起始位置、某些位置或者所有的被參照符號(hào)都尚未被確定。在一個(gè)實(shí)施例中,生成德耳塔文件進(jìn)一步包括比較當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本,以便識(shí)別至少一個(gè)共同子串;并且比較包括,通過(guò)比較所述符號(hào)參照和相應(yīng)的解析指令來(lái)比較符號(hào)參照。因此,當(dāng)比較當(dāng)前和更新的版本時(shí),德耳塔文件生成過(guò)程單獨(dú)處理符號(hào)參照,由此改善德耳塔生成的性能,特別是減小得到的更新包的大小。特別地,在一個(gè)實(shí)施例中,比較符號(hào)參照包括,只有在所述符號(hào)參照在當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本相等,并且相應(yīng)的用于所述符號(hào)參照的當(dāng)前和更新的解析指令相等的情況下,確定符號(hào)參照為相等。在一些實(shí)施例中,該方法進(jìn)一步包括,響應(yīng)于當(dāng)前和更新的存儲(chǔ)器圖像^t塊的可重定位版本中共同子串的識(shí)別-比較與添加指令和復(fù)制指令相關(guān)聯(lián)的各個(gè)大小,所述添加指令用于使目標(biāo)處理裝置將所識(shí)別的共同子串添加到更新的存儲(chǔ)器圖像模塊,所述復(fù)制指令用于使目標(biāo)處理裝置將所識(shí)別的共同子串從當(dāng)前的存儲(chǔ)器圖像模塊復(fù)制到更新的存儲(chǔ)器圖像模塊,其中比較各個(gè)大小包括,比較添加和復(fù)制指令的各自大小和各個(gè)參數(shù)解析指令的各自大小,所述各個(gè)參數(shù)解析指令用于被包括在共同子串中的符號(hào)參照(如果有的話),以便確定各個(gè)大小中最小大小的一個(gè);和響應(yīng)于比較結(jié)果,生成對(duì)應(yīng)于所確定的最小大小的添加指令或復(fù)制指令。因此,無(wú)益的復(fù)制操作可以由添加操作來(lái)代替。特別地,為了確定是選擇復(fù)制還是添加操作,不但考慮子串的大小、實(shí)際復(fù)制和添加指令的大小,還要考慮參數(shù)解析指令的大小,由此得到更加資源高效的德耳塔文件。在一些實(shí)施例中,該方法包括預(yù)處理步驟、德耳塔文件生成步驟和后處理步*,其中預(yù)處理步驟包括-生成當(dāng)前和更新的存儲(chǔ)器圖像模塊的各個(gè)可重定位版本的各個(gè)正則表示,其中對(duì)存儲(chǔ)器地址的符號(hào)參照用預(yù)先確定的存儲(chǔ)器內(nèi)容代替;和-將關(guān)于所代替的符號(hào)參照的信息轉(zhuǎn)送到后處理步驟;其中德耳塔文件生成步驟包括由可重定位的當(dāng)前和更新的存儲(chǔ)器圖像模塊的正則表示生成德耳塔文件;且其中后處理步驟包括由所轉(zhuǎn)送的關(guān)于代替的符號(hào)參照的信息和由生成的德耳塔文件生成參數(shù)解析指令。因此,該方法可以基于常規(guī)的德耳塔文件生成工具執(zhí)行,由此避免了對(duì)德耳塔文件生成工具進(jìn)行昂貴修改的需要。在一些實(shí)施例中,當(dāng)前的存儲(chǔ)器圖像模塊被存儲(chǔ)在與目標(biāo)處理裝置相關(guān)聯(lián)的存儲(chǔ)介質(zhì)中,例如處理裝置的存儲(chǔ)器。在一些實(shí)施例中,更新的存儲(chǔ)器圖像模塊包括至少一個(gè)對(duì)第一存儲(chǔ)器地址的參照。如上所述,德耳塔文件關(guān)于在基線版本存儲(chǔ)器中的實(shí)際位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置而被參數(shù)化。更新的存儲(chǔ)器圖像的位置可以是目標(biāo)裝置確定加載更新的存儲(chǔ)器圖像模塊所處的起始地址。并且,德耳塔文件可以關(guān)于特定目標(biāo)系統(tǒng)所特有的附件信息而被參數(shù)化。在一個(gè)實(shí)施例中,更新指令關(guān)于如下參數(shù)而被參數(shù)化當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置、更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置、由更新的存儲(chǔ)器圖像模塊所參照的每個(gè)地址值,該地址值在更新的存儲(chǔ)器圖像模塊的外部,由此提供基于不多于三個(gè)參數(shù)的高效的參數(shù)更新系統(tǒng)。因此,在一個(gè)實(shí)施例中,目標(biāo)系統(tǒng)上的加載過(guò)程確定/獲得當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像的相應(yīng)位置?;谶@些參數(shù)值,加載過(guò)程直接由當(dāng)前的存儲(chǔ)器圖像模塊和由接收的參數(shù)化德耳塔文件生成更新的存儲(chǔ)器圖像模塊。其它優(yōu)選實(shí)施例在從屬權(quán)利要求中被揭露。注意到,上述方法的特征和下面的特征可以用軟件執(zhí)行,并在數(shù)據(jù)處理系統(tǒng)或由諸如計(jì)算機(jī)可執(zhí)行指令的程序代碼裝置的執(zhí)行引起的其它處理裝置上執(zhí)行。這里和下面,術(shù)語(yǔ)處理裝置包括適用于執(zhí)行上述功能的任意電路和/或裝置。特別地,術(shù)語(yǔ)處理裝置包括通用或?qū)S每删幊涛⑻幚砥?、?shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、可編程邏輯陣列(PLA)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、專用電子電路等,或者它們的組合。例如,程序代碼裝置可通過(guò)計(jì)算機(jī)網(wǎng)絡(luò),從存儲(chǔ)介質(zhì)或其它計(jì)算機(jī)/計(jì)算裝皇而被加載到存儲(chǔ)器中,諸如隨機(jī)存取存儲(chǔ)器(RAM)??商鎿Q地,所述特征可以由硬布線電路而不是軟件或與軟件的組合來(lái)執(zhí)行。本發(fā)明可以以不同方式扭j亍,包括上面和下面所述的方法、加載更新的存儲(chǔ)器圖像的方法、數(shù)據(jù)處理系統(tǒng)和其它產(chǎn)品裝置,每一種帶來(lái)與首先提到的方法相聯(lián)系地描述的一個(gè)或更多益處和優(yōu)點(diǎn),并且每一種具有對(duì)應(yīng)于與首先提到的方法相聯(lián)系地描述和/或在從屬權(quán)利要求中揭示的優(yōu)選實(shí)施例的一個(gè)或更多優(yōu)選實(shí)施例。特別地,根據(jù)將更新的存儲(chǔ)器圖像模塊加載到存儲(chǔ)介質(zhì)上的方法的一個(gè)方面,所述存儲(chǔ)介質(zhì)具有存儲(chǔ)在其上的當(dāng)前存儲(chǔ)器圖像模塊,包括-接收包括更新指令的德耳塔文件,其中更新指令包括至少第一存儲(chǔ)器地址的參數(shù)化表示,該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像^t塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)化的;并且其中德耳塔文件進(jìn)一步包括參數(shù)解析指令;-響應(yīng)于所接收的更新指令和參數(shù)解析指令,將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊。利用更新的存儲(chǔ)器圖像模塊,執(zhí)行當(dāng)前存儲(chǔ)器圖像模塊(該當(dāng)前存儲(chǔ)器圖像模塊存儲(chǔ)在與目標(biāo)處理裝置相關(guān)聯(lián)的存儲(chǔ)介質(zhì)中)的德耳塔更新的整個(gè)方法可因此包括生成德耳塔文件,所述德耳塔文件包括適用于使目標(biāo)處理裝置將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊的更新指令;其中所述更新指令包括第一存儲(chǔ)器地址的參數(shù)化表示,該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)的;并且其中德耳塔文件進(jìn)一步包括參數(shù)解析指令;-將所述生成的德耳塔文件發(fā)送到目標(biāo)處理裝置;-響應(yīng)于接收的更新指令和參數(shù)解析指令,將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊。在一些實(shí)施例中,參數(shù)解析指令適用于使得目標(biāo)處理裝置確定當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置的值,并由參數(shù)化表示和所確定的值來(lái)確定第一存儲(chǔ)器地址的地址值。因此,在一些實(shí)施例中,變換包括確定當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置的值,并由參數(shù)化表示和所確定的值來(lái)確定第一存儲(chǔ)器地址的地址值。在一些實(shí)施例中,該方法進(jìn)一步包括將更新的存儲(chǔ)器圖像模塊存儲(chǔ)在永久性存儲(chǔ)器中。在一些實(shí)施例中,該方法進(jìn)一步包括執(zhí)行來(lái)自永久性存儲(chǔ)器的更新的程序代碼。當(dāng)該方法進(jìn)一步包括確定/獲得當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置時(shí),目標(biāo)系統(tǒng)在安裝時(shí)向確定更新的存儲(chǔ)器圖像模塊的位置。在一些實(shí)施例中,該方法進(jìn)一步包括確定/獲得全局符號(hào)表,該全局符號(hào)表包括至少一個(gè)由更新的存儲(chǔ)器圖像模塊尋址的地址值,該地址值在更新的存儲(chǔ)器圖像模塊外部。因此,如果要被更新的加載模塊包括對(duì)加載^t塊外部的存儲(chǔ)器地址,例如其它加載才莫塊中地址的參照,則這種參照在德耳塔文件生成期間被參數(shù)化,并且這些參數(shù)的實(shí)際值由目標(biāo)系統(tǒng)上的加載過(guò)程確定。因此,要被安裝的加載模塊參照的其它加載模塊的位置不需要被生成德耳塔文件的離線工具知道。這里所述的參數(shù)化德耳塔更新過(guò)程的另一優(yōu)點(diǎn)是,它不需要為所有參照存儲(chǔ)重定位信息。這足夠用于維持全局符號(hào)列表,即與外部參照有關(guān)的符號(hào)。在一些實(shí)施例中,全局符號(hào)表包括由其它存儲(chǔ)器圖像模塊尋址的當(dāng)前存儲(chǔ)器圖像模塊內(nèi)的至少一個(gè)當(dāng)前地址值,并且本方法包括利用更新的存儲(chǔ)器圖像模塊內(nèi)相應(yīng)的更新地址值來(lái)更新當(dāng)前地址值。因此,全局符號(hào)表利用更新的加載模塊的符號(hào)參照的更新值來(lái)更新,所述更新的加載模塊是從其它加載模塊參照,如果有的話,由此允許對(duì)參照當(dāng)前更新的^t塊的任意其它加載^t塊進(jìn)行更新。因此,在一些實(shí)施例中,該方法進(jìn)一步包括將其它存儲(chǔ)器圖像模塊中參照當(dāng)前地址值的所有參照由所述當(dāng)前地址值更新為所述更新的地址值。在一些實(shí)施例中,該方法進(jìn)一步包括提供用于每個(gè)存儲(chǔ)器圖像模塊的引出參照的列表,每個(gè)引出參照的列表包括從相應(yīng)存儲(chǔ)器圖像模塊尋址的全局符號(hào)的列表,該全局符號(hào)在存儲(chǔ)器圖像模塊外部。因此,用于更新全局符號(hào)的高效機(jī)制被提供。在一些實(shí)施例中,當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本包括結(jié)果代碼格式的程序代碼。才艮據(jù)另一個(gè)方面,數(shù)據(jù)處理系統(tǒng)可適當(dāng)編程,以扭J亍上面和下面所述方法的步驟。根據(jù)另一個(gè)方面,計(jì)算機(jī)程序產(chǎn)品包括程序代碼裝置,適用于當(dāng)所述程序代碼裝置被在數(shù)據(jù)處理系統(tǒng)上執(zhí)行時(shí),使得數(shù)據(jù)處理系統(tǒng)能夠執(zhí)行上面和下面所述的方法。計(jì)算機(jī)程序產(chǎn)品可以體現(xiàn)為其上存儲(chǔ)有所述程序代碼裝置的計(jì)算機(jī)可讀介質(zhì),諸如光盤、硬盤、軟盤、磁帶、CDR0M、閃存、記憶棒和/或其它類型的磁和/或光存儲(chǔ)介質(zhì)。根據(jù)另一個(gè)方面,處理裝置包括用于存儲(chǔ)當(dāng)前存儲(chǔ)器圖像模塊的存儲(chǔ)介質(zhì);用于接收德耳塔文件的通信接口,德耳塔文件包括更新指令,更新指令包括第一存儲(chǔ)器地址的參數(shù)化表示,參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)化的;并且其中德耳塔文件進(jìn)一步包括參數(shù)解析指令;并且處理裝置適用于響應(yīng)于接收的更新指令和參數(shù)解析指令,將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊。在一些實(shí)施例中,處理裝置進(jìn)一步適用于將更新的存儲(chǔ)器圖像模塊存儲(chǔ)在永久性存儲(chǔ)器中。在一些實(shí)施例中,處理裝置進(jìn)一步適用于執(zhí)行來(lái)自于永久性存儲(chǔ)器的更新的程序代碼。在一些實(shí)施例中,處理裝置進(jìn)一步適用于確定/獲得當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置。在一些實(shí)施例中,處理裝置進(jìn)一步適用于確定/獲得全局符號(hào)表,該全局符號(hào)表包括至少一個(gè)由更新的存儲(chǔ)器圖像模塊尋址的地址值,該地址值在更新的存儲(chǔ)器圖像模塊外部。在一些實(shí)施例中,全局符號(hào)表包括至少一個(gè)由其它存儲(chǔ)器圖像^t塊尋址的當(dāng)前存儲(chǔ)器圖像模塊內(nèi)的當(dāng)前地址值,且處理裝置進(jìn)一步適用于利用更新的存儲(chǔ)器圖像模塊內(nèi)的相應(yīng)更新的地址值來(lái)更新當(dāng)前的地址值。在一些實(shí)施例中,處理裝置進(jìn)一步適用于,將存儲(chǔ)在存儲(chǔ)介質(zhì)中的其它存儲(chǔ)器圖像模塊中參照當(dāng)前地址值的所有參照,由所述當(dāng)前地址值更新為所述更新的地址4直。在一些實(shí)施例中,處理裝置已經(jīng)存儲(chǔ)了用于每個(gè)存儲(chǔ)器圖像模塊的引出參照的列表,每個(gè)引出參照的列表包括從相應(yīng)存儲(chǔ)器圖像模塊尋址的全局符號(hào)的列表,并且該全局符號(hào)在存儲(chǔ)器圖像^t塊的外部。用于生成德耳塔文件的系統(tǒng),該德耳塔文件包括用于使目標(biāo)處理裝置將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊的更新指令,包括-存儲(chǔ)裝置,用于存儲(chǔ)對(duì)應(yīng)于當(dāng)前存儲(chǔ)器圖像模塊的當(dāng)前軟件版本的表示;-處理裝置,適用于生成包括第一存儲(chǔ)器地址的參數(shù)化表示的德耳塔文件,該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像^t塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)化的;還包括德耳塔文件中的參數(shù)解析指令。在一些實(shí)施例中,處理裝置進(jìn)一步適用于由包括對(duì)存儲(chǔ)器地址的符號(hào)參照的當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本,和由用于當(dāng)前和更新的存儲(chǔ)器圖像模塊的各個(gè)可重定位版本中所述符號(hào)參照的當(dāng)前和更新的重定位指令而生成德耳塔文件。在一些實(shí)施例中,處理裝置進(jìn)一步適用于比較當(dāng)前和更新的存儲(chǔ)器圖像^t塊的可重定位版本,以便識(shí)別至少一個(gè)共同子串;并且比較包括,通過(guò)比較所述符號(hào)參照和相應(yīng)的解析指令來(lái)比較符號(hào)參照。在一些實(shí)施例中,處理裝置進(jìn)一步適用于,只有在所述符號(hào)參照在當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本相等,并且相應(yīng)的用于所述符號(hào)參照的當(dāng)前和更新的解析指令相等的情況下,確定符號(hào)參照為相等。在一些實(shí)施例中,處理裝置進(jìn)一步適用于,響應(yīng)于在當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本中對(duì)共同子串的識(shí)別比較與添加指令和復(fù)制指令相關(guān)聯(lián)的各個(gè)大小,所述添加指令用于使目標(biāo)處理裝置將所識(shí)別的共同子串添加到更新的存儲(chǔ)器圖像模塊,所述復(fù)制指令用于使目標(biāo)處理裝置將所識(shí)別的共同子串從當(dāng)前的存儲(chǔ)器圖像模塊復(fù)制到更新的存儲(chǔ)器圖像模塊,其中比較各個(gè)大小包括,比較添加和復(fù)制指令的各自大小和各個(gè)參數(shù)解析指令的各自大小,所述各個(gè)參數(shù)解析指令用于被包括在共同子串中的符號(hào)參照(如果有的話);和-響應(yīng)于比較結(jié)果,生成添加指令或復(fù)制指令。在一些實(shí)施例中,處理裝置進(jìn)一步適用于執(zhí)行預(yù)處理步驟、德耳塔文件生成步驟和后處理步驟,其中預(yù)處理步驟包括-生成當(dāng)前和更新的存儲(chǔ)器圖像模塊的各個(gè)可重定位版本的各個(gè)正則表示,其中對(duì)存儲(chǔ)器地址的符號(hào)參照用預(yù)先確定的存儲(chǔ)器內(nèi)容代替;和-將關(guān)于所代替的符號(hào)參照的信息轉(zhuǎn)送到后處理步驟;其中德耳塔文件生成步驟包括由可重定位的當(dāng)前和更新的存儲(chǔ)器圖像模塊的正則表示生成德耳塔文件;和其中后處理步驟包括由所轉(zhuǎn)送的關(guān)于代替的符號(hào)參照的信息和由生成的德耳塔文件生成參數(shù)解析指令。在一些實(shí)施例中,該系統(tǒng)進(jìn)一步包括通信裝置,適用于將生成的德耳塔文件發(fā)送到處理裝置。在一些實(shí)施例中,更新的存儲(chǔ)器圖像模塊包括至少一個(gè)對(duì)第一存儲(chǔ)器地址的參照。用于利用更新的存儲(chǔ)器圖像模塊,執(zhí)行當(dāng)前存儲(chǔ)器圖像模塊的德耳塔更新的系統(tǒng)包括,用于生成如這里所述的德耳塔文件的系統(tǒng)和如這里所述的處理裝置。為了本說(shuō)明書的目的,術(shù)語(yǔ)處理裝置和電子裝置包括任何包括諸如用于存儲(chǔ)程序代碼的閃存之類的存儲(chǔ)器的裝置。這種裝置的例子包括便攜式無(wú)線電通信設(shè)備和其它手持或便攜式的裝置。術(shù)語(yǔ)便攜式無(wú)線電通信設(shè)備包括諸如移動(dòng)電話、尋呼機(jī)、通信器,即電子組織體、智能電話、個(gè)人數(shù)字助理(PDA)、手持計(jì)算機(jī)等的所有設(shè)備。通過(guò)下面參考附圖所描述的實(shí)施例,上面和其它方面將會(huì)變得明顯并得到闡釋,其中圖1示意性地示出了用于更新移動(dòng)終端中軟件的系統(tǒng)的實(shí)施例的框圖。圖2示意性地示出了諸如移動(dòng)終端的電子裝置的框圖。圖3示出了軟件更新之前和之后,處理裝置的存儲(chǔ)器布局的例子。圖4示出了軟件更新過(guò)程的實(shí)施例的框圖。圖5示出了德耳塔文件生成過(guò)程的實(shí)施例的功能性框圖。圖6示出了德耳塔更新代理的實(shí)施例的功能性框圖。圖7示出了德耳塔文件生成過(guò)程的另一實(shí)施例的流程圖。圖8示出了確定當(dāng)前和更新的加載模塊中共同子串的步驟的例子的更詳細(xì)流程圖。圖9示出了確定當(dāng)前和更新的加載模塊中共同子串的步驟的另一個(gè)例子。圖10示出了確定當(dāng)前和更新的加載模塊中共同子串的步驟的又一個(gè)例子。具體實(shí)施例方式圖l示意性地示出了用于更新諸如移動(dòng)終端的電子裝置中軟件的系統(tǒng)的實(shí)施例的框圖。該系統(tǒng)包括移動(dòng)終端101,例如移動(dòng)電話等,軟件更新系統(tǒng)102和通信接口103。軟件更新系統(tǒng)102可包括接入到通信網(wǎng)絡(luò)的服務(wù)器計(jì)算機(jī)。在一些實(shí)施例中,服務(wù)器計(jì)算機(jī)的功能性可以分布在多個(gè)計(jì)算機(jī),例如通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)連接的計(jì)算機(jī)之間,所述計(jì)算機(jī)網(wǎng)絡(luò)例如局域網(wǎng)、廣域網(wǎng)和互聯(lián)網(wǎng)等。軟件更新系統(tǒng)102包括接口電路104,使得軟件更新系統(tǒng)102能夠通過(guò)通信接口103來(lái)傳送數(shù)據(jù)。例如,接口電路104可包括串行端口、并行端口、短距離無(wú)線通信接口,例如紅外端口、藍(lán)牙收發(fā)信機(jī)等。接口電路的其它例子包括網(wǎng)卡、DSL調(diào)制解調(diào)器、網(wǎng)關(guān)計(jì)算機(jī)等。軟件更新系統(tǒng)102進(jìn)一步包括處理單元105,例如月良務(wù)器計(jì)算機(jī)的CPU,其適當(dāng)?shù)乇痪幊虨榭刂撇?zhí)行更新過(guò)程。處理單元105可進(jìn)一步執(zhí)行這里所述的實(shí)際代碼生成過(guò)程。然而,通常代碼生成將會(huì)由其它計(jì)算機(jī)執(zhí)行,然后生成的代碼將會(huì)被傳送到處理單元105。軟件更新系統(tǒng)102進(jìn)一步包括版本數(shù)據(jù)庫(kù)/儲(chǔ)存庫(kù)106,其中存儲(chǔ)有要被更新的軟件的至少基本/當(dāng)前版本和更新的版本,例如以存儲(chǔ)器圖像和/或結(jié)果代碼和/或諸如重定位信息的其它信息的形式。在一些實(shí)施例中,版本數(shù)據(jù)庫(kù)可進(jìn)一步包括附加信息,例如多個(gè)基本版本和/或更新的版本,例如用于不同的移動(dòng)終端模型,用于不同的客戶組,和/或等等。通信接口103可以是任意適當(dāng)?shù)挠芯€或無(wú)線通信接口,用于在軟件更新系統(tǒng)102和移動(dòng)終端101之間傳輸數(shù)據(jù)。例如,在適用于通過(guò)蜂窩通信網(wǎng)絡(luò),例如GSM網(wǎng)絡(luò)、UMTS網(wǎng)絡(luò)、GPRS網(wǎng)絡(luò)等通信的移動(dòng)電話的情況下,軟件更新系統(tǒng)102和與軟件更新相連接的移動(dòng)終端101之間的通信可以通過(guò)該蜂窩通信網(wǎng)絡(luò)執(zhí)行,由此避免了對(duì)移動(dòng)終端101中附加通信接口的需要。因此,為了在移動(dòng)終端101上更新軟件,移動(dòng)終端101可從軟件更新系統(tǒng)102接收更新指令,例如包括要被重寫的存儲(chǔ)器扇區(qū)的圖像。在使用德耳塔文件的差分軟件更新系統(tǒng)102中,更新指令被生成,使得它們能夠使移動(dòng)終端從已經(jīng)存儲(chǔ)在移動(dòng)終端101中的現(xiàn)有版本和從包括在更新指令中的附加信息而生成更新的軟件版本。德耳塔文件可在適當(dāng)?shù)奈恢蒙蠎?yīng)用,即可以由移動(dòng)終端101在現(xiàn)有圖像上進(jìn)行改變,由此需要4艮少的附加存儲(chǔ)。并且,由于只有德耳塔文件需要^^皮加載,并由于德耳塔文件通常被認(rèn)為比新版本小,加載時(shí)間通過(guò)上述方法而被減少。因此,在上面,其中這里描述的過(guò)程和系統(tǒng)可被應(yīng)用的可能情形被描述。然而,將會(huì)意識(shí)到,這里所述的德耳塔更新過(guò)程還可被應(yīng)用到其它更新情形。例如,更新可以通過(guò)例如其它通信信道的其它介質(zhì),通過(guò)計(jì)算機(jī)可讀介質(zhì)等而被提供到目標(biāo)裝置。德耳塔更新過(guò)程的實(shí)施例將在下面進(jìn)4亍更i羊細(xì)4笛述。圖2示意性地示出了諸如移動(dòng)終端的電子裝置的例子的框圖。移動(dòng)終端101包括通信模塊210、處理單元211和存儲(chǔ)器單元212。通信模塊21G包括電路和/或裝置,使得能夠通過(guò)蜂窩通信網(wǎng)絡(luò)進(jìn)行基于無(wú)線電的數(shù)據(jù)通信。因此,為了本說(shuō)明書的目的,通信模塊210包括用于接收數(shù)據(jù)信號(hào)的接收機(jī)電路。通信^t塊可進(jìn)一步包括用于借助在無(wú)線電通信領(lǐng)域眾所周知的適當(dāng)技術(shù)適當(dāng)?shù)靥幚硇盘?hào),例如調(diào)制、編碼、放大等信號(hào)的電路。移動(dòng)終端101進(jìn)一步包括處理單元211,例如適當(dāng)編程的微處理器。處理單元適用于執(zhí)行與更新過(guò)程有關(guān)的各種功能,例如諸如確定存儲(chǔ)在移動(dòng)終端101中的軟件版本,計(jì)算所存儲(chǔ)軟件的校驗(yàn)和,一接收到相應(yīng)更新指令就生成軟件的更新版本,和/或等等的功能。存儲(chǔ)器單元212已經(jīng)在其中存儲(chǔ)了預(yù)先確定版本的軟件和/或其它數(shù)據(jù)。例如,存儲(chǔ)器212可包括移動(dòng)終端的固件,當(dāng)^皮載入和由處理單元211執(zhí)行時(shí),其執(zhí)行移動(dòng)終端的基本功能。固件可進(jìn)一步包括操作系統(tǒng),使得應(yīng)用軟件能夠被執(zhí)行。因此,存儲(chǔ)器212可進(jìn)一步在其中存儲(chǔ)提供附件功能的應(yīng)用軟件。存儲(chǔ)器212利用適當(dāng)?shù)牡刂房臻g;故尋址,由此使得處理單元能夠訪問(wèn)存儲(chǔ)器的所選部分。在一些實(shí)施例中,存儲(chǔ)器212可以被蓬輯地或物理地分為多個(gè)存儲(chǔ)器扇區(qū)。例如,存儲(chǔ)器2U可包括閃存,使得數(shù)據(jù)能夠被寫入預(yù)先確定大小的扇區(qū)中。然而,了解到,也可以使用存儲(chǔ)器的任意其它尋址來(lái)代替。進(jìn)一步了解到,這里所述的更新過(guò)程可被應(yīng)用到整個(gè)存儲(chǔ)器212,例如如果移動(dòng)電話閃存的整個(gè)圖像要被更新的話,或者也可僅僅應(yīng)用到存儲(chǔ)器的預(yù)先確定部分,例如如果一個(gè)或更多軟件應(yīng)用要被更新的話。圖3示出了軟件更新之前和之后處理裝置的存儲(chǔ)器布局的例子。圖3a示出了對(duì)應(yīng)于當(dāng)前安裝的存儲(chǔ)器圖像的程序代碼版本的存儲(chǔ)器布局的例子,通常用附圖標(biāo)記301來(lái)表示。存儲(chǔ)器圖像包括第一加載模塊LMO和兩個(gè)另外的加載沖莫塊,分別用LM1和LM2指示。為了圖3例子的目的,加載模塊LM1被假設(shè)放置在LM0附近。因此,加載模塊LM1和LM2在存儲(chǔ)器中的確切位置可以變化,例如根據(jù)加載模塊LMO的大小,或者因?yàn)闉榱似渌?,它們?cè)诖鎯?chǔ)器中的位置由目標(biāo)裝置在加載時(shí)間上確定。因此,關(guān)于它們位置的知識(shí)在作為德耳塔生成過(guò)程輸入的服務(wù)器一側(cè)不能得到。圖3b示出了對(duì)應(yīng)于更新的存儲(chǔ)器圖像的更新版本,通過(guò)由302表示。在該例子中,假設(shè)加載模塊LMO已經(jīng)借助德耳塔文件A固而被更新,得到更新的加載;^莫塊LMO,。更新的加載;^莫塊LMO,具有與原始加載^t塊LMO不同的大小。相似地,每個(gè)加載才莫塊LM1和LM2已經(jīng)由各自的德耳塔文件△LM1和△面更新,得到各自更新的版本LM1,和LM2,。特別地,更新的加載才莫塊LM1,和LM2,現(xiàn)在被分別定位在不同的起始/基本地址Sl,和S2,,它們與原始/基線版本的相應(yīng)起始/基本地址Sl和S2不同。當(dāng)加載模塊起始地址的選擇由目標(biāo)裝置在加載時(shí)間上做出時(shí),已經(jīng)生成德耳塔文件△uu和△W2的德耳塔文件生成過(guò)程可以既不知道起始地址Sl和S2,也不知道更新的起始地址Sl,和S2,。因此,在上面的情形中,存儲(chǔ)器結(jié)構(gòu)包括總是被定位在給定位置的加載模塊和一個(gè)或更多被定位在可變位置的加載模塊。將會(huì)意識(shí)到,在其它存儲(chǔ)器結(jié)構(gòu)中,多于一個(gè)的^t塊可以具有固定位置,而在其它存儲(chǔ)器結(jié)構(gòu)中,所有軟件模塊可以具有可變位置。這里所述的參數(shù)德耳塔更新程序支持加載模塊,例如其位置對(duì)于德耳塔文件生成過(guò)程或系統(tǒng)來(lái)說(shuō)未知的被動(dòng)態(tài)加載的加載模塊的德耳塔更新。特別地,在存儲(chǔ)在目標(biāo)裝置存儲(chǔ)器中的軟件包括加載模塊的集合的情形下,這里所述的方法可被用于更新整個(gè)存儲(chǔ)器圖像或軟件的單獨(dú)部分。這些加載才莫塊將會(huì)例如對(duì)應(yīng)于用于不同功能的庫(kù)。在幾種不同的軟件版本包含相同模塊的情況下,可以用同樣的更新包更新所有版本中的該特定模塊。接下來(lái),將結(jié)合圖4-10描述增量軟件更新過(guò)程的不同例子。在附圖中,同樣的附圖標(biāo)記代表相同或?qū)?yīng)的部件、特征、實(shí)體等。圖4示出了軟件更新過(guò)程的實(shí)施例的框圖。該過(guò)程包括由更新服務(wù)器執(zhí)行的用于生成參數(shù)化德耳塔文件408的德耳塔文件生成過(guò)程402,和由目標(biāo)裝置執(zhí)行的用于應(yīng)用德耳塔文件408的德耳塔文件應(yīng)用過(guò)程401。德耳塔文件生成過(guò)程可以由德耳塔文件生成器,即軟件程序或由更新服務(wù)器執(zhí)行的軟件程序的功能部件執(zhí)行,其中所述更新服務(wù)器生成表示當(dāng)前的程序代碼版本與更新的程序代碼版本之間差別的德耳塔文件。相似地,德耳塔文件應(yīng)用過(guò)程可以由德耳塔文件更新代理,即軟件程序或由目標(biāo)裝置執(zhí)行的軟件程序的功能部件執(zhí)行。德耳塔文件生成過(guò)程402接收通常用403指示的加載才莫塊LI—N的更新版本,和通常用405指示的該加載模塊的相應(yīng)基線版本L1-BL。更新版本L1—N通常從代碼儲(chǔ)存庫(kù)或從程序代碼生成過(guò)程(未明確示出)接收,例如包括匯編器和鏈接器的系統(tǒng),其中所述鏈接器從源代碼生成可執(zhí)行代碼?;€版本對(duì)應(yīng)于當(dāng)前被安裝在目標(biāo)裝置上的軟件版本,并從加載模塊的數(shù)據(jù)庫(kù)106、版本管理系統(tǒng)或其它適當(dāng)?shù)拇a儲(chǔ)存庫(kù)接收。在一些實(shí)施例中,德耳塔生成器402可例如從儲(chǔ)存庫(kù)106接收附加輸入,諸如例如所謂的地圖文件形式的額外鏈接信息。加載才莫塊^皮假設(shè)為在結(jié)果代碼格式中,除了原始二進(jìn)制,還分別包括重定位信息414和415。當(dāng)解析符號(hào)參照時(shí),重定位信息被使用,所述解析順從加載時(shí)間。給目標(biāo)i置的德耳塔文件408,、所述目標(biāo)裝置i;存儲(chǔ)器被從當(dāng)l的存4諸器圖像更新為更新的存儲(chǔ)器圖像。為此,目標(biāo)裝置執(zhí)行德耳塔文件應(yīng)用過(guò)程401,這在后面進(jìn)行更詳細(xì)描述??偟脕?lái)說(shuō),生成德耳塔文件以將基線文件更新為新文件可以示意性地用如下操作來(lái)示出<formula>formulaseeoriginaldocumentpage24</formula>相應(yīng)地,新版本的實(shí)際生成然后可以由移動(dòng)終端根據(jù)如下操作完成<formula>formulaseeoriginaldocumentpage24</formula>了解到,在移動(dòng)終端上生成德耳塔文件(上面表示中用"-"表示)和生成新版本(上面表示中用"+"表示)的上述操作可以包括更多或更少的復(fù)雜運(yùn)算。德耳塔文件通常包括至少兩部分新內(nèi)容池(pool)和指令列表,其中指令描述如何將新的內(nèi)容與安裝的圖像合并。當(dāng)生成新圖像時(shí),每個(gè)字或者從安裝圖像復(fù)制,或者從新內(nèi)容的池添加。除了上面的部件,參數(shù)德耳塔文件408包括關(guān)于內(nèi)部和外部參照(絕對(duì)的和相對(duì)的)的信息418。信息418可4t包括在德耳塔文件的單獨(dú)部分中,該信息可以與剩下的德耳塔文件指令交織,和/或以任意其它適當(dāng)?shù)姆绞蕉缓喜⒃诘露募?。由于出現(xiàn)在目標(biāo)裝置存儲(chǔ)器中的加載模塊的位置對(duì)更新服務(wù)器來(lái)說(shuō)未知,擴(kuò)展的德耳塔文件408被制成例如關(guān)于新的和基線版本的起始地址和全局符號(hào)的位置是參數(shù)化的。因此,德耳塔文件生成過(guò)程402包括生成一組指令和新內(nèi)容池的德耳塔生成器模塊406,和將外部和內(nèi)部參照從基線和更新版本中提取出來(lái)的參照提取模塊407,所述參照提取模塊407還包括參數(shù)德耳塔文件中的那個(gè)信息。參數(shù)化可以擴(kuò)展德耳塔文件中部分的數(shù)目和/或指令的數(shù)目。在一個(gè)實(shí)施例中,參數(shù)德耳塔文件關(guān)于下面的三個(gè)參數(shù)而被參數(shù)化參加載模塊的安裝版本,即基線版本L1—BL的起始地址。加載才莫塊L1_N新版本的起始地址。外部符號(hào)的值,其被新的加載模塊使用。當(dāng)?shù)露募?08被應(yīng)用時(shí),過(guò)程401接收起始地址413,即通常用411指殺的當(dāng)前安裝圖像Ll-B"的起始地址,和目標(biāo)裝置已經(jīng)確定加載用411指示的新圖像L1-N"斤在的起始地址。過(guò)程401進(jìn)一步接收存儲(chǔ)在目標(biāo)裝置存儲(chǔ)器212中的全局符號(hào)表412。該全局符號(hào)表包括全局符號(hào)參照的列表,即不同軟件模塊之間的符號(hào)參照和它們各自的地址值。根據(jù)這些參數(shù)值,過(guò)程4Q1例示參數(shù)德耳塔文件,并將例示的德耳塔文件應(yīng)用到安裝的圖像L1—BL*,以便生成用410指示的新圖像L1—New"其被存儲(chǔ)在存儲(chǔ)器212中確定的新起始地址上。將參數(shù)德耳塔的應(yīng)用到加載模塊上可被描述為步驟1:<formula>formulaseeoriginaldocumentpage25</formula>References/03—'8—Refere闊"—掛.步驟3:因此,在步驟1中,德耳塔被應(yīng)用到基線版本。對(duì)德耳塔的參數(shù)是分別基線和新版本的起始地址startbaseline、Start婦和加載才莫塊可能參照的全局符號(hào)的集合SymbolSi。在下一步驟中,全局符號(hào)表利用從加載模塊的新版本輸出的符號(hào)而被更新。并且,從其它加載模塊到要被更新的基線加載模塊的所有參照還需要被更新,以便指向新版本的正確符號(hào)。為此,包括引出參照的地圖的參照地圖與每個(gè)安裝的加載模塊相關(guān)聯(lián)。因此,在第三步驟期間,當(dāng)前被更新的加載模塊的參照地圖Referencesi'。"^"被更新。接下來(lái),從其它加載模塊到更新的加載模塊的參照基于更新的參照地圖而被更新。注意到德耳塔文件應(yīng)用過(guò)程401將德耳塔文件應(yīng)用到安裝的二進(jìn)制圖像411是有趣的,然而對(duì)德耳塔文件生成過(guò)程402的輸入包括加載模塊403和405,即結(jié)果代碼格式的文件。結(jié)果代碼格式分別包括重定位信息414和415,其沒(méi)有出現(xiàn)在安裝圖像中。當(dāng)加載模塊被安裝(普通的"全"安裝)時(shí),重定位信息被消耗。在該過(guò)程期間,符號(hào)參照被解析。正如由上面的例子所示出的,德耳塔文件的參數(shù)化影響德耳塔生成、德耳塔文件格式和德耳塔文件的應(yīng)用。然而,德耳塔文件的參數(shù)化可被執(zhí)行,使得其利用常規(guī)的德耳塔生成技術(shù),現(xiàn)在將結(jié)合圖5和6進(jìn)行描述。圖5示出了德耳塔文件生成過(guò)程的實(shí)施例的功能框圖。除了德耳塔生成器模塊506,德耳塔文件生成過(guò)程4Q2還包括預(yù)處理器516和后處理器517。'德耳塔生成器模塊506可以是常規(guī)的德耳塔生成器,其可以沒(méi)有意識(shí)到參數(shù)化。適當(dāng)?shù)牡露募夹g(shù)的例子包括US6,546,552和"CompressingDifferencesofExecutableCode"byBrendaBaker,UdiManber和RobertMuth,inACMSIGPLANWorkshoponCompilerSupportforSystemSoftware(WCSSS,99),1999中描述的方法。預(yù)處理器516的目的是從兩個(gè)加載才莫塊403和405中的每一個(gè),即從更新的/新的版本Ll-N和從基線版本Ll-BL中摘錄二進(jìn)制圖像,同時(shí)留意在每個(gè)加載模塊中的參照。二進(jìn)制圖像被饋送到德耳塔生成器506中,并且關(guān)于參照的信息被饋送到后處理器517中。后處理器接收來(lái)自預(yù)處理器516的信息和由德耳塔生成器506生成的德耳塔文件。后處理器然后利用關(guān)于由預(yù)處理器516采集的參照的信息,用附加信息418擴(kuò)展德耳塔文件,由此生成參數(shù)的德耳塔文件418。注意到,目標(biāo)裝置中的更新代理可被執(zhí)行為具有相似的結(jié)構(gòu)。圖6示出了德耳塔文件應(yīng)用過(guò)程的實(shí)施例的功能框圖。德耳塔文件應(yīng)用過(guò)程包括德耳塔更新模塊620,其后是后處理器621。更新模塊620可以是常規(guī)的沒(méi)有意識(shí)到參數(shù)化的更新代理。后處理器621接收德耳塔更新模塊620的輸出622和實(shí)際的參數(shù)值,即在這個(gè)實(shí)施例中,全局符號(hào)表412和加載模塊在基線和更新版本中的起始地址413。根據(jù)該信息,后處理器例示由更新模塊620產(chǎn)生的圖像622,得到更新的圖{象410。德耳塔文件生成過(guò)程的預(yù)處理器516模仿安裝過(guò)程。如上面所提到的,安裝過(guò)程消耗重定位信息和解析符號(hào)參照。通過(guò)模仿該過(guò)程,預(yù)處理器516產(chǎn)生用作對(duì)常規(guī)德耳塔文件生成器輸入的加載模塊的表示,所述德耳塔文件生成器反過(guò)來(lái)產(chǎn)生能夠與安裝圖像相關(guān)的德耳》荅文件。然而,參照仍然不能被解析,因?yàn)榘惭b圖像的位置對(duì)德耳塔生成過(guò)程未知。因此,包括用于解析參照所需的"配方"的重定位信息414和415被傳遞到后處理器517。代替解析參照,預(yù)處理器可以使它們盡可能相似,由此便于德耳塔生成器506的工作。例如,預(yù)處理器516可以用預(yù)先確定的值,例如零來(lái)代替所有參照??偟脕?lái)說(shuō),兩種符號(hào)參照是特別感興趣的絕對(duì)和相對(duì)參照。絕對(duì)參照簡(jiǎn)單地通過(guò)用原始二進(jìn)制內(nèi)容中的占位符代替符號(hào)值來(lái)解析。相對(duì)參照被不同地解析符號(hào)值和源地址之間的差別用相應(yīng)公式來(lái)計(jì)算。參照的目的地是代碼的位置。該位置對(duì)包含參照的加載模塊來(lái)說(shuō)是內(nèi)部的或外部的。內(nèi)部位置在加載模塊內(nèi)具有已知的偏移,并且可關(guān)于加載模塊的起始地址而被參數(shù)化(即start+offsetD)。加載模塊外部的目的地用符號(hào)名來(lái)表示。參照源,即根據(jù)其進(jìn)行參照的位置,被定義為在加載才莫塊內(nèi)部。因此,源可^皮表示為(start+offsets)。表l總結(jié)了用于上述類型參照的重定位公式<table>tableseeoriginaldocumentpage27</column></row><table>表1:用于到內(nèi)部和外部位置的絕對(duì)和相對(duì)參照的重定位公式到內(nèi)部位置的相對(duì)參照可以在建立時(shí)間上凈皮解析,即在德耳塔文件生成過(guò)程期間或之前。這種參照被叫做與位置無(wú)關(guān)的。因此,三類參照保持被解析到內(nèi)部位置的絕對(duì)參照和到外部位置的絕對(duì)以及相對(duì)參照。到加載模塊內(nèi)部位置的絕對(duì)參照依賴于加載模塊的起始地址(start)。到外部位置的絕對(duì)參照依賴于未知的符號(hào)地址(symbolD)。到外部位置的相對(duì)參照依賴于未知的符號(hào)地址和加載模塊的起始地址。使圖像相似的一種方式是使用特殊恒量,例如零來(lái)代替未解析的參照。所有絕對(duì)參照然后將看來(lái)要指向地址零,未解析的相對(duì)參照將看來(lái)要指向跟隨該位置的地址,根據(jù)該位置進(jìn)行參照。一些德耳塔生成器知道相對(duì)參照(例如US6,546,552中揭示的德耳塔生成器)。在這些情況下,當(dāng)預(yù)處理器使得未解析的相對(duì)參照指向同一位置,例如加載模塊的開頭時(shí),更高效的德耳塔文件生成可被提供。德耳塔文件生成過(guò)程的后處理器517包括關(guān)于德耳塔文件中參照的適當(dāng)信息,從而使得更新代理能夠解析參照。當(dāng)?shù)露募粦?yīng)用到目標(biāo)裝置中時(shí),更新代理被指示與新的二進(jìn)制圖像放到一起。為了本說(shuō)明書的目的,假設(shè)通過(guò)從安裝的圖像復(fù)制字或通過(guò)從被提供作為德耳塔文件一部分的池添加內(nèi)容來(lái)完成這一點(diǎn)。下面,上述兩種通??商鎿Q方式被假設(shè)分別用德耳塔文件中的"復(fù)制"指令和"添加"指令來(lái)表示。然而,了解到,一些德耳塔生成器可以利用不同的表示,包括這些指令的子類型和/或變形。下面,將描述通過(guò)后處理器517和對(duì)目標(biāo)裝置中德耳塔文件應(yīng)用的相應(yīng)影響來(lái)處理上述類型的參照。為了描述后處理器517的功能,將應(yīng)用由德耳塔生成器506生成的德耳塔文件的結(jié)果與在不固定參照情況下的安裝的二進(jìn)制圖像進(jìn)行比較是有幫助的。這些結(jié)果被總結(jié)在下面的表2中,并與理想的結(jié)果進(jìn)行比較。<table>tableseeoriginaldocumentpage29</column></row><table>表2:應(yīng)用德耳塔文件的實(shí)際和理想結(jié)果首先考慮參照被從安裝的圖像復(fù)制到新圖像的情況,對(duì)應(yīng)于表2中的第1-3行,例如由德耳塔文件中相應(yīng)的"復(fù)制"指令引起如果參照是絕對(duì)的并且用外部符號(hào)作為目的地(表2中的第1行),則正確值(Syrnbol。)將被從安裝的圖像復(fù)制到新圖像,即不需要接下來(lái)的后處理。在另外兩種情況下(參見表2,第2和3行),復(fù)制的參照已經(jīng)被固定下來(lái),因?yàn)榘惭b圖像中的參照值是基于安裝的加載模塊中參照源的起始:地址(startj和偏移(offset^,而^皮正確更新的^直應(yīng)該基于更新圖像中的相應(yīng)值starh和offset"在圖6的實(shí)施例中,校正參照是后處理器621的工作。因此,在該實(shí)施例中,德耳塔更新模塊620可以得到在"實(shí)際值,,列中列出的地址值,并且后處理器621校正該值,從而生成"理想值,,列中列出的值。為了使更新代理的后處理器621能夠執(zhí)行該過(guò)程,德耳塔生成器的后處理器517將德耳塔文件擴(kuò)展部分418。當(dāng)復(fù)制參照時(shí),被插入在德耳塔文件的部分418中的信息可包括加載模塊中參照的源位置和參照的種類(即絕對(duì)外部的等)。如果參照未被復(fù)制,但是被從包括在德耳塔文件中的新內(nèi)容池添加,例如由德耳塔文件中的相應(yīng)"添加"指令引起,則后處理集合需要對(duì)應(yīng)于表2的第4-6行。如上所述,德耳塔生成器506的后處理器517將德耳塔文件擴(kuò)展部分418,使得校正參照是可能的。在添加參照的情況下,包括在德耳塔文件部分418中的信息可以包括參照在加載模塊中的源位置、參照種類、目的地(符號(hào)和/或偏移)。注意到,在表2中第6行的情況下,0ffse"的值是隱含已知的,因?yàn)镾tar"+0ffset2是參照的源位置。進(jìn)一步注意到,表2第4-6行中的"實(shí)際結(jié)果,,值可以依賴于德耳塔文件生成過(guò)程的預(yù)處理器516的結(jié)果。在表2中,假設(shè)預(yù)處理器516用零代替所有參照,由此模仿更新的參照等于安裝圖像中的相應(yīng)參照,并使得德耳塔文件生成器將那些參照從對(duì)應(yīng)于表2中第1-3行的安裝圖像復(fù)制。然而,如上所述,在可替換實(shí)施例中,預(yù)處理器516可以使得相對(duì)參照指向加載才莫塊的開始,而不是指向下一個(gè)源地址。在這種情況下,第6行中的實(shí)際結(jié)果值將會(huì)為-0ffset2而不是0。復(fù)制的參照(根據(jù)表2的第2和3行)可通過(guò)應(yīng)用與當(dāng)產(chǎn)生新參照(分別根據(jù)表2的第5和第6行)時(shí)同樣的機(jī)制而被在模塊中后處理。因此,在該情況下,被從安裝圖像(即"實(shí)際結(jié)果")復(fù)制的信息基本上#皮后處理器621不予考慮??商鎿Q地,當(dāng)生成正確的更新地址值時(shí),后處理器517可利用安裝圖像中的信息,由此允許對(duì)德耳塔文件進(jìn)行更緊湊的表示。例如,到內(nèi)部位置的絕對(duì)參照(表2的第2行)涉及從W嚴(yán)StartfK)ffse"到W尸StartrK)ffset2的變換。如果Offset1和Offset2相同,這可以由德耳塔文件生成過(guò)程校驗(yàn),上述變換簡(jiǎn)化為W2=W1+Start2-Start1因而,加載模塊在基線和更新版本中的起始地址Start1和Start2分別是要被插入的參數(shù),并且復(fù)制字W1被從安裝圖像復(fù)制。因此,足夠德耳塔文件生成過(guò)程的后處理器517能指定參照在德耳塔文件中的源位置。相對(duì)外部參照(表2的第3行)的情況可以以同樣方式處理,得到如下要由后處理器621估計(jì)的變換公式W2=W1+Start1+0ffset1-Start2一0ffset2。因此,對(duì)SymbolD的依賴被去除,這意味著該符號(hào)不必在德耳塔文件中被表示。表3總結(jié)了構(gòu)成德耳塔文件408的擴(kuò)展418的記錄類型<table>tableseeoriginaldocumentpage31</column></row><table>表3:為了由更新代理后處理器使用的德耳塔文件擴(kuò)展418的記錄類型。德耳塔生成器的后處理器517產(chǎn)生擴(kuò)展的德耳塔文件,如上所述。為此,后處理器517訪問(wèn)由德耳塔生成器506產(chǎn)生的德耳塔文件和訪問(wèn)加載模塊的兩種版本的重定位信息414和415。對(duì)于加載模塊新版本中的每個(gè)參照,后處理器517找到德耳塔文件中相應(yīng)的"復(fù)制"或"添加,,指令。在"添加"指令的情況下,相應(yīng)的記錄類型(根據(jù)表3的第4-6行)被產(chǎn)生。當(dāng)后處理器517探測(cè)到"復(fù)制"指令時(shí),后處理器517跟隨復(fù)制指令到其起源,這可以通過(guò)仿效德耳塔應(yīng)用來(lái)執(zhí)行。后處理器517查詢數(shù)據(jù)在加載模塊的基線版本405中被復(fù)制所開始的起源。如果在基線加載模塊中也有匹配的參照,則后處理器517依賴于參照類型,根據(jù)表3的第2或3行生成相應(yīng)記錄。沒(méi)有記錄被產(chǎn)生用于到外部位置(第1行)的絕對(duì)參照。然而,可能在基線加載模塊中沒(méi)有匹配的參照,盡管德耳塔文件中有"復(fù)制,,指令。這是該預(yù)處理步驟516實(shí)施例的人工產(chǎn)物,例如通過(guò)用預(yù)先確定的常數(shù)代替所有參照,使不同參照看起來(lái)相同。并且,本實(shí)施例的其它人工產(chǎn)物是,具有與預(yù)先確定的常數(shù)相同的值的原始二進(jìn)制存儲(chǔ)器內(nèi)容不能與用預(yù)處理器代替的參照相區(qū)分。在這種情況下,作為退路,后處理器517生成對(duì)應(yīng)于"添加"指令的記錄,即根據(jù)第4-6行,根據(jù)參照的類型。因此,在上面,已經(jīng)描述了利用常規(guī)德耳塔生成工具的參數(shù)德耳塔更新過(guò)程的實(shí)施例。在下面,實(shí)施例將參照?qǐng)D7-IO而被描述,其利用用于德耳塔文件生成和德耳塔文件應(yīng)用的明確適用的算法。以這種方式,可以生成較小的德耳塔文件。特別是,當(dāng)選擇復(fù)制和添加指令的最佳序列時(shí),可以將修補(bǔ)(fix-up)記錄的大小考慮進(jìn)來(lái)。并且,比較加載模塊而不是比較預(yù)處理器生成的二進(jìn)制圖像,可以允許對(duì)參照進(jìn)行特殊處理。圖7示出了德耳塔文件生成過(guò)程的另一實(shí)施例的流程圖??偟脕?lái)說(shuō),德耳塔生成可以被建模為尋找塊移動(dòng)的最小覆蓋集合的問(wèn)題(參見例如WalterF.Tichy:TheString-to-StringCorrectionProblemwithBlockMoves;ACMTransactionsonComputerSystems2:4(November1984),pp309-321)。塊移動(dòng)對(duì)應(yīng)于德耳塔文件中的復(fù)制指令。為了德耳塔生成的目的,通常希望生成盡可能小的德耳塔文件,這通常對(duì)應(yīng)于利用盡可能少的塊復(fù)制的解決方案。塊移動(dòng)的最優(yōu)覆蓋可利用如下算法而被找到-新圖像的子串12被定位在舊(基線)圖像h中,以便識(shí)別共同子串。-每個(gè)共同子串對(duì)應(yīng)于塊復(fù)制。所謂的貪婪算法在每一步中識(shí)別出現(xiàn)在h中的最長(zhǎng)子串,其中h是l2的前綴。這種算法的更詳細(xì)例子被顯示在圖7中。在步驟S701中,該過(guò)程通過(guò)將目的地指針d設(shè)置為零(d=0)來(lái)初始化,即指針被初始化為指向更新圖像12的開始。該過(guò)粗然后重復(fù)下面的步驟(S702-S708),直到整個(gè)新圖像(I2)已經(jīng)被處理。因此,在步驟S702中,該過(guò)程驗(yàn)證整個(gè)新圖像是否已經(jīng);故處理,即是否d-N2,其中N2代表12的大小。如果d-N2,則該過(guò)程終止,否則該過(guò)程繼續(xù)步驟S703。在步驟S703中,該過(guò)程識(shí)別h中l(wèi)2[d:N2-l]的最長(zhǎng)前綴。在沒(méi)有未解析參照的情況下,尋找最長(zhǎng)的前綴對(duì)應(yīng)于尋找s,使得k最大且li[s]=l2[d],l![s+l]-l2[d+l],…,h[s+k-l]^2[d+k-1]。然而,在出現(xiàn)未解析參照時(shí),該過(guò)程處理這些參照與圖像的其它內(nèi)容分離,這將在下面進(jìn)4亍,詳細(xì)4苗述。在接下來(lái)的步驟S704中,該過(guò)程檢測(cè)該子串是否能夠被識(shí)別。如果沒(méi)有這種子串能夠被找到(即k=0),則該過(guò)程生成"添加,,指令(步驟S7Q5)并且將d前進(jìn)l,除非h中有參照在d處,在這種情況下d祐二前進(jìn)該參照的長(zhǎng)度(步驟S706)。否則,該過(guò)程生成"復(fù)制"指令(步驟S707),例如"復(fù)制s,k,,,即使得目標(biāo)裝置中的更新代理從地址s開始,從當(dāng)前安裝的圖像復(fù)制長(zhǎng)度為k的子串。接下來(lái),該過(guò)程使d前進(jìn)k(步驟S708)。通常,當(dāng)被復(fù)制的塊小時(shí)(例如3個(gè)字節(jié)或更小),希望使用"添加"指令而不是"復(fù)制"指令。這是由于在"復(fù)制"指令中指定源指針s和塊長(zhǎng)度k的開銷。德耳塔文件生成算法的很多實(shí)施方式尋找最小的覆蓋集合,但是用添加指令代替小塊復(fù)制。因此,去除不經(jīng)濟(jì)的"復(fù)制,,指令可以祐:執(zhí)行為后處理步驟。并且,在一些實(shí)施例中,用于德耳塔生成的后處理步驟考慮修補(bǔ)記錄的大小,例如當(dāng)在"復(fù)制,,和"添加"指令之間選擇時(shí)。以這種方式,無(wú)益的塊移動(dòng)被避免。特別地,在一些實(shí)施例中,無(wú)論何時(shí)"復(fù)制"指令的開銷大于可替換指令的開銷時(shí),后處理器代替"復(fù)制"指令,這通常使用"添加,,指令。"復(fù)制,,指令的開銷包括表示起始位置、塊長(zhǎng)度和修補(bǔ)記錄所需的存儲(chǔ),所述修補(bǔ)記錄包括用于參照解析的地址信息(例如表3的記錄)。"添加"指令的開銷包括表示塊長(zhǎng)度、新內(nèi)容和修補(bǔ)記錄(其可能與"復(fù)制"指令的相應(yīng)修補(bǔ)記錄的大小不同,如表3所示)所需的存儲(chǔ)。后處理器具有將無(wú)益的"復(fù)制"指令轉(zhuǎn)變?yōu)?添加,,指令的選項(xiàng)。并且,可以合并由后處理得到的相鄰的"添加"指令。如上面所提到的,步驟S703當(dāng)識(shí)別共同子串時(shí)考慮了未解析參照。為此,該過(guò)程處理與圖像其它內(nèi)容分離的未解析的參照符號(hào)。由于要在圖像中編碼的值直到加載時(shí)間為止是未知的,只有在利用同樣符號(hào)公式解析的兩個(gè)參照之間保證相等。出于這個(gè)原因,德耳塔文件生成過(guò)程匹配/復(fù)制整個(gè)/完全參照,而不是部分參照。下面,將結(jié)合圖8-IO描述執(zhí)行在L中尋找最長(zhǎng)前綴l2[d:N-l]的步驟。全部三個(gè)例子利用重定位信息,所述信息當(dāng)生成德耳塔文件時(shí)可用,但當(dāng)將德耳塔文件安裝在目標(biāo)裝置中時(shí)不一定可用。特別地,重定位信息使得未解析參照可被識(shí)別。讓R1=r11r12...rm是所安裝的加載模塊重定位記錄的集合,R2=r21r22...r2m2是相應(yīng)的新加載模塊的集合。每個(gè)重定位激勵(lì)rjk被假定為指定解析一個(gè)參照所必需的屬性。特別地,參照的位置source(rjk),其是在其圖像中的偏移,由r,k給定。為了本說(shuō)明書的目的,進(jìn)一步假定借助斷言的相等(i>,rM),兩個(gè)相同的解析可被識(shí)別。圖8示出了在當(dāng)前和更新的加載模塊中確定共同子串的步驟的例子的更詳細(xì)流程圖。圖8的過(guò)程接收下面的輸入整個(gè)安裝的(基線)圖像L、新圖像的前綴12[d:N廠l]和分別是重定位記錄集合Id和R2。該過(guò)程生成下面的輸出子串在h中的位置tnax_s及其長(zhǎng)度max-len。在初始步驟S801中,該過(guò)程初始化指針s到基線圖像h,以指向圖^象的開4會(huì),即s二O,并凈刀4臺(tái)^i輸出j直為0:max_s=max—len=0。該過(guò)程然后重復(fù)如下步驟(S802-S814),直到整個(gè)安裝圖像(h)已經(jīng)被處理。因此,在步驟S802中,該過(guò)程檢查整個(gè)圖像是否已被處理,即是否s=N"其中^表示h的大小。如果s=N15則該過(guò)程返回(max_s,max_l)到德耳塔文件生成過(guò)程并終止;否則該過(guò)程繼續(xù)步驟S803。在步驟S803中,該過(guò)程初始化共同子串的當(dāng)前長(zhǎng)度k為k=0,并重復(fù)步驟S804-S809,直到出現(xiàn)不匹配(參見下面),直到s+k-Ni或直到d+k=N2。因此,在步驟S804中,該過(guò)程驗(yàn)證當(dāng)前的共同子串是否到達(dá)其中一個(gè)圖像的末尾,即s+k-Ni或d+k=N2。如果是這樣,則該過(guò)程繼續(xù)步驟S810;否則該過(guò)程繼續(xù)步驟S805。在步驟S805,該過(guò)程檢查是否有重定位記錄r2p,使得source(r2p)=d+k,或者重定位記錄rl4,使得source(rlq)=s+k。如果沒(méi)有找到這樣的對(duì),則該過(guò)程確定當(dāng)前地址上的存儲(chǔ)器內(nèi)容是"簡(jiǎn)單的(plain)"二進(jìn)制內(nèi)容,即沒(méi)有未解析的參照,并且該過(guò)程繼續(xù)步驟S806;否則,當(dāng)找到參照對(duì)、和r2p時(shí),該過(guò)程檢查是否equal(rlq,r2p)(步驟S807)。如果equal(rlq,r2p),則該過(guò)程使k前進(jìn)匹配參照的長(zhǎng)度(步驟S809);否則,存在不匹配,該過(guò)程繼續(xù)步驟S810。在步驟S806,即當(dāng)該過(guò)程比較簡(jiǎn)單的二進(jìn)制內(nèi)容時(shí),該過(guò)程確定是否h[s+k]^2[d+k]。如果是這樣,則該過(guò)程使k增加l(步驟S808);否則,該過(guò)程找到不匹配并繼續(xù)步驟S810。在步驟S810中,該過(guò)程確定是否k〉max_len,即最長(zhǎng)前綴到現(xiàn)在是否已經(jīng)被找到。如果是,則該過(guò)程設(shè)置max—s=s,max—len=k(步驟S811)。接下來(lái),在步驟S812,該過(guò)程檢查是否存在重定位記錄rlq,使得source(rlq)=s,即是否指針s當(dāng)前指在基線圖像中參照上。如果是,則該過(guò)程使s前進(jìn)該參照的長(zhǎng)度(步驟S813);否則,該過(guò)程使s前進(jìn)l(步驟S814)。下面,將基于高效匹配算法,描述兩種可替換的匹配過(guò)程。圖9示出了確定當(dāng)前和更新的加載模塊中共同子串的步驟的另一個(gè)例子。圖9的例子是基于利用散列密鑰來(lái)高效識(shí)別固定大小(例如4字節(jié))的共同子串的方法。^口在"DeltaStorageforArbitraryNon—TextFiles"byChristophReichenberger,inProceedingsofthe3rdinternationalworkshoponSoftwareconfigurationmanagement,May1991,pp144-152中所揭示的,對(duì)子串的搜索可以利用固定長(zhǎng)度子串上的散列密鑰而被加速。不像圖8方法的步驟S804-S809中那樣考慮每個(gè)可能的起始點(diǎn)s,可以限制搜索到具有同樣散列密鑰的起始點(diǎn)。已經(jīng)被用于計(jì)算散列密鑰的子串越長(zhǎng),則不等前綴的分離越好,且需要考慮的起始點(diǎn)越少。然而,密鑰長(zhǎng)度還限制能被匹配的最短子串。使用對(duì)應(yīng)于最短有益復(fù)制指令的密鑰長(zhǎng)度是一個(gè)選擇。在預(yù)處理步驟中,用于L中給定長(zhǎng)度的所有子串的散列密鑰被計(jì)算。I,中的每個(gè)符號(hào)影響到幾個(gè)散列密鑰,如圖9a所示。圖9a示出了包括9個(gè)符號(hào)"c"、"d"、"b,,、"a"、"t"、"a"、"t,,、"a"和"s"的子串901。串"cdbatatas"中有7個(gè)長(zhǎng)度為3的子串。串的每個(gè)位置都可能是用于串匹配的起始點(diǎn)。因此,假設(shè)為了圖9例子的目的,密鑰長(zhǎng)度為3,匹配過(guò)程計(jì)算7個(gè)散列值h(cdb)、h(dba)、h(bat)、h(ata)、h(tat)、h(ata)、h(tas)。圖9b示出了該匹配方法的概括。特別地,圖9b示出了串903"cdba〈ref〉tas",其中〈ref〉是代替特定參照的特殊符號(hào)902。在該例子中,〈ref〉是兩個(gè)位置寬。子串中未解析的參照902影響散列密鑰的值。然而,由于部分匹配參照沒(méi)有意義,因此該過(guò)程不為在參照中間開始的子串計(jì)算散列密鑰。因此,在該例子中,該過(guò)程只計(jì)算6個(gè)散列值,如圖9b所示。為了避免在參照中間結(jié)束的子串,該過(guò)程將這種密鑰擴(kuò)展為包括整個(gè)參照,如圖9b中的散列值h(ba〈ref"所示。圖10示出了確定當(dāng)前和更新的加載模塊中共同子串的步驟的又一個(gè)例子。在該例子中,子串匹配利用了基于后綴的高效算法,被揭示在文章"TheString-to-StringCorrectionProblemwithBlockMoves"byWalterF.TichyinACMTransactiononComputerSystems2:4(November1984),pp309-321中。圖10a示出了串"bananas"的后綴樹(#是唯一結(jié)束標(biāo)志)。后綴樹的邊緣用串h(在圖9a的例子中,l嚴(yán)"batatas")的子串注釋,且節(jié)點(diǎn)用可能的子串起始點(diǎn)標(biāo)注。連接從#^1001到葉的路徑的串得到全部后綴lf[s:N廣l]。內(nèi)部節(jié)點(diǎn)對(duì)應(yīng)于具有幾個(gè)可能延續(xù)的子串,而葉對(duì)應(yīng)于只剩下一個(gè)選項(xiàng)的情況。通過(guò)從前綴樹的根跟蹤l2[d:N2-l]的前綴,直到不匹配被找到或到達(dá)葉,L[s:N「l]和12[d:N廠l]的共同子串被定位。例如,當(dāng)跟蹤串"atatd"時(shí),標(biāo)記為'a,(1002)、'ta,(1003)和'tas#,(1004)的邊緣被橫貫。在最后一個(gè)邊緣1004,出現(xiàn)不匹配('tas#,#'td,)。跟蹤在標(biāo)記為1的節(jié)點(diǎn)1005處結(jié)束,其是共同子串"atat"的起始點(diǎn)。因此,h的后綴樹可被用于非??斓卣业阶哟?。圖10b示出了考慮參照的匹配過(guò)程的修改。特別地,圖10b示出了串'ba〈ref〉tas,的后綴樹,其中〈ref〉是代替特定參照的特殊符號(hào)。在該例子中,〈ref〉是兩個(gè)位置寬。節(jié)點(diǎn)標(biāo)記是指在替換參照之前的原始起始位置。參照的可分性(atomicity)可以通過(guò)用符號(hào)擴(kuò)展字母表來(lái)實(shí)現(xiàn),其中符號(hào)唯一地表示每個(gè)未解析的參照(相同的參照用相同的符號(hào)表示)。當(dāng)構(gòu)造后綴樹時(shí),添加的符號(hào)代替未解析的參照。當(dāng)跟蹤前綴時(shí),在12中進(jìn)行同樣的替換。因此,在上面已經(jīng)借助參數(shù)化德耳塔文件對(duì)加載^^莫塊進(jìn)行增量更新的方法實(shí)施例進(jìn)行了描述。這里所述方法的優(yōu)點(diǎn)在于,生成德耳塔文件時(shí)不必知道安裝圖像的確切內(nèi)容。某些值的指定被推遲,直到德耳塔文件被應(yīng)用。該方法能夠與現(xiàn)有的用于德耳塔生成和德耳塔應(yīng)用的技術(shù)一起使用?,F(xiàn)有技術(shù)被擴(kuò)展,以允許德耳塔文件的某些特性可被參數(shù)化。注意到,上面的實(shí)施例主要是參照閃存來(lái)描述的。然而,了解到,這里所述的方法還可以與其它類型的存儲(chǔ)器相關(guān)地執(zhí)行,包括可以在更小單元,例如按字節(jié)或甚至按位的單元中寫入的存儲(chǔ)器類型。并且,這里所述的方法還與其它存儲(chǔ)介質(zhì)相關(guān)地使用,諸如光盤、硬盤、軟盤、磁帶和/或其它類型的磁和/或光的存儲(chǔ)介質(zhì)。例如,這里所述的方法還可被應(yīng)用到諸如臺(tái)式計(jì)算機(jī)的計(jì)算機(jī)的更新,其在執(zhí)行之前將程序從次要存儲(chǔ)器/存儲(chǔ)介質(zhì)加載到RAM中。本發(fā)明可以通過(guò)包括幾個(gè)不同元件的硬件,并通過(guò)適當(dāng)編程的計(jì)算機(jī)來(lái)執(zhí)行。在列舉幾個(gè)裝置的裝置權(quán)利要求中,這幾個(gè)裝置可由同一個(gè)硬件項(xiàng)來(lái)實(shí)施,例如^皮適當(dāng)編程的微處理器或計(jì)算機(jī),和/或一個(gè)或更多如這里所述的通信接口。在互不相同的從屬權(quán)利要求中引用或在不同實(shí)施例中描述的特定措施的唯一事實(shí)不表示這些措施的組合不能被用于改進(jìn)。應(yīng)當(dāng)強(qiáng)調(diào)的是,當(dāng)在本說(shuō)明書中使用時(shí),術(shù)語(yǔ)"包括/包含"被用于指明存在所聲稱的特征、整體、步驟或部件,但不排除存在或附加一個(gè)或更多其它特征、整體、步驟、部件或它們的組合。權(quán)利要求1、一種生成德耳塔文件的方法,該德耳塔文件包括用于使目標(biāo)處理裝置將當(dāng)前存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊的更新指令;該方法包括-將第一存儲(chǔ)器地址的參數(shù)化表示合并到德耳塔文件中,該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)化的;和-將參數(shù)解析指令合并到德耳塔文件中。2、根據(jù)權(quán)利要求1所述的方法,其中該參數(shù)化表示進(jìn)一步關(guān)于每個(gè)地址值是參數(shù)化的,該每個(gè)地址值在更新的存儲(chǔ)器圖像模塊外部,由更新的存儲(chǔ)器圖像模塊參照。3、根據(jù)權(quán)利要求1或2所述的方法,其中該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的起始地址和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的起始地址來(lái)說(shuō)是參數(shù)化的。4、根據(jù)權(quán)利要求1至3中任一權(quán)利要求所述的方法,包括由包括對(duì)存儲(chǔ)器地址的符號(hào)參照的當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本,和由用于當(dāng)前和更新的存儲(chǔ)器圖像模塊的各個(gè)可重定位版本中所述符號(hào)參照的當(dāng)前和更新的重定位指令而生成德耳塔文件。5、根據(jù)權(quán)利要求4所述的方法,其中生成德耳塔文件進(jìn)一步包括比較當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本,以便識(shí)別至少一個(gè)共同子串;并且其中比較包括,通過(guò)比較所述符號(hào)參照和相應(yīng)的解析指令來(lái)比較符號(hào)參照。6、根據(jù)權(quán)利要求5所述的方法,其中比較符號(hào)參照包括,只有在所述符號(hào)參照在當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本相等,并且相應(yīng)的用于所述符號(hào)參照的當(dāng)前和更新的解析指令相等的情況下,確定符號(hào)參照為相等。7、根據(jù)權(quán)利要求5至6中任一權(quán)利要求所述的方法,進(jìn)一步包括,響應(yīng)于當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本中共同子串的識(shí)別-比較與添加指令和復(fù)制指令相關(guān)聯(lián)的各個(gè)大小,所述添加指令用于使目標(biāo)處理裝置將所識(shí)別的共同子串添加到更新的存儲(chǔ)器圖像模塊,所述復(fù)制指令用于使目標(biāo)處理裝置將所識(shí)別的共同子串從當(dāng)前的存儲(chǔ)器圖像模塊復(fù)制到更新的存儲(chǔ)器圖像模塊,其中比較各個(gè)大小包括,比較各個(gè)添加和復(fù)制指令的各自大小和各個(gè)參數(shù)解析指令的大小,所述各個(gè)參數(shù)解析指令用于被包括在共同子串中的符號(hào)參照,如果有的話,以便確定各個(gè)大小中最小大小的一個(gè);和-響應(yīng)于比較結(jié)果,生成對(duì)應(yīng)于所確定的最小大小的添加指令或復(fù)制指令。8、根據(jù)權(quán)利要求4至7中任一權(quán)利要求所述的方法,其中當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本包括結(jié)果代碼格式的程序代碼。9、根據(jù)權(quán)利要求1至8中任一權(quán)利要求所述的方法,其中該方法包括預(yù)處理步驟、德耳塔文件生成步驟和后處理步驟,其中預(yù)處理步驟包括-生成當(dāng)前和更新的存儲(chǔ)器圖像模塊的各個(gè)可重定位版本的各個(gè)正則表示,其中對(duì)存儲(chǔ)器地址的符號(hào)參照用預(yù)先確定的存儲(chǔ)器內(nèi)容代替;和-將關(guān)于所代替的符號(hào)參照的信息轉(zhuǎn)送到后處理步驟;其中德耳塔文件生成步驟包括由可重定位的當(dāng)前和更新的存儲(chǔ)器圖像模塊的正則表示生成德耳塔文件;和成的德;塔文件生a成參數(shù)解析指令。'''鄉(xiāng)'10、根據(jù)權(quán)利要求1至9中任一權(quán)利要求所述的方法,其中當(dāng)前存儲(chǔ)器圖像模塊被存儲(chǔ)在與目標(biāo)處理裝置相關(guān)聯(lián)的存儲(chǔ)介質(zhì)中。11、根據(jù)權(quán)利要求10所述的方法,其中該存儲(chǔ)介質(zhì)是處理裝置的存儲(chǔ)器。12、根據(jù)權(quán)利要求1至11中任一權(quán)利要求所述的方法,其中參數(shù)解析指令適用于,使得目標(biāo)處理裝置確定至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置,并由參數(shù)化表示和所確定的值來(lái)確定笫一存儲(chǔ)器地址的地址值。13、根據(jù)權(quán)利要求1至12中任一權(quán)利要求所述的方法,進(jìn)一步包括,利用更新的存儲(chǔ)器圖像模塊,執(zhí)行當(dāng)前存儲(chǔ)器圖像模塊的德耳塔更新,當(dāng)前存儲(chǔ)器圖像模塊存儲(chǔ)在與目標(biāo)處理裝置相關(guān)聯(lián)的存儲(chǔ)介質(zhì)中;其中執(zhí)行德耳塔更新包括-將所述生成的德耳塔文件發(fā)送到目標(biāo)處理裝置;-響應(yīng)于接收的更新指令和參數(shù)解析指令,將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊。14、根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括將更新的存儲(chǔ)器圖像模塊存儲(chǔ)在永久性存儲(chǔ)器中。15、根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括二執(zhí)行來(lái)自于永久性存儲(chǔ)器的包括在更新的存儲(chǔ)器圖像中的更新的程序代碼。16、根據(jù)權(quán)利要求13至15中任一權(quán)利要求所述的方法,進(jìn)一步包括獲得當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置。17、根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括獲得全局符號(hào)表,該全局符號(hào)表包括至少一個(gè)可由更新的存儲(chǔ)器圖像模塊尋址的地址值,該地址值在更新的存儲(chǔ)器圖像模塊外部。18、根據(jù)權(quán)利要求17所述的方法,其中全局符號(hào)表包括可由其它存儲(chǔ)器圖像模塊尋址的當(dāng)前存儲(chǔ)器圖像模塊內(nèi)的至少一個(gè)當(dāng)前地址值,并且該方法包括利用更新的存儲(chǔ)器圖像模塊內(nèi)相應(yīng)的更新地址值來(lái)更新當(dāng)前地址值。19、根據(jù)權(quán)利要求18所述的方法,進(jìn)一步包括將其它存儲(chǔ)器圖像模塊中參照當(dāng)前地址值的所有參照由所述當(dāng)前地址值更新為所述更新的地址值。20、根據(jù)權(quán)利要求13至19中任一權(quán)利要求所述的方法,進(jìn)一步包括提供用于每個(gè)存儲(chǔ)器圖像模塊的引出參照的列表,每個(gè)引出參照的列表包括從相應(yīng)存儲(chǔ)器圖像^t塊尋址的全局符號(hào)的列表,該全局符號(hào)在存儲(chǔ)器圖像模塊外部。21、根據(jù)權(quán)利要求13至20中任一權(quán)利要求所述的方法,其中變換包括確定至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置的值,并由參數(shù)化表示和所確定的值來(lái)確定第一存儲(chǔ)器地址的地址值。22、根據(jù)權(quán)利要求1至21中任一權(quán)利要求所述的方法,其中更新的存儲(chǔ)器圖像模塊包括至少一個(gè)對(duì)第一存儲(chǔ)器地址的參照。23、一種將更新的存儲(chǔ)器圖像模塊加載到存儲(chǔ)介質(zhì)中的方法,該存儲(chǔ)介質(zhì)上已經(jīng)存儲(chǔ)有當(dāng)前存儲(chǔ)器圖像模塊;該方法包括-接收包括更新指令的德耳塔文件,其中該更新指令包括至少第一存儲(chǔ)器地址的參數(shù)化表示,該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)化的;并且其中德耳塔文件進(jìn)一步包括參數(shù)解析指令;-響應(yīng)于接收的更新指令和參數(shù)解析指令,將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊。24、根據(jù)權(quán)利要求23所述的方法,其中該參數(shù)化表示進(jìn)一步關(guān)于每個(gè)地址值是參數(shù)化的,該每個(gè)地址值在更新的存儲(chǔ)器圖像模塊外部,由更新的存儲(chǔ)器圖像模塊參照。25、根據(jù)權(quán)利要求23或24所述的方法,其中該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的起始地址和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的起始地址來(lái)說(shuō)是參數(shù)化的。26、根據(jù)權(quán)利要求23至25中任一權(quán)利要求所述的方法,其中更新的存儲(chǔ)器圖像模塊包括至少一個(gè)對(duì)第一存儲(chǔ)器地址的參照。27、根據(jù)權(quán)利要求23至26中任一權(quán)利要求所述的方法,進(jìn)一步包括將更新的存儲(chǔ)器圖像模塊存儲(chǔ)在永久性存儲(chǔ)器中。28、根據(jù)權(quán)利要求27所述的方法,進(jìn)一步包括執(zhí)行來(lái)自永久性存儲(chǔ)器的更新的程序代碼。29、根據(jù)權(quán)利要求23至28中任一權(quán)利要求所述的方法,進(jìn)一步包括獲得當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置。30、根據(jù)權(quán)利要求29所述的方法,進(jìn)一步包括獲得全局符號(hào)表,該全局符號(hào)表包括至少一個(gè)可由更新的存儲(chǔ)器圖像模塊尋址的地址值,該地址值在更新的存儲(chǔ)器圖像模塊外部。31、根據(jù)權(quán)利要求30所述的方法,其中全局符號(hào)表包括可由其它存儲(chǔ)器圖像模塊尋址的當(dāng)前存儲(chǔ)器圖像模塊內(nèi)的至少一個(gè)當(dāng)前地址值,并且其中該方法包括利用更新的存儲(chǔ)器圖像模塊內(nèi)相應(yīng)的更新地址值來(lái)更新當(dāng)前地址值。32、根據(jù)權(quán)利要求31所述的方法,進(jìn)一步包括將其它存儲(chǔ)器圖像模塊中參照當(dāng)前地址值的所有參照由所述當(dāng)前地址值更新為所述更新的地址值。33、根據(jù)權(quán)利要求23至32中任一權(quán)利要求所述的方法,進(jìn)一步包括提供用于每個(gè)存儲(chǔ)器圖像模塊的引出參照的列表,每個(gè)引出參照的列表包括從相應(yīng)存儲(chǔ)器圖像模塊尋址的全局符號(hào)的列表,該全局符號(hào)在存儲(chǔ)器圖像模塊外部。34、根據(jù)權(quán)利要求23至33中任一權(quán)利要求所述的方法,其中當(dāng)前和更新的存儲(chǔ)器圖像模塊的可重定位版本包括結(jié)果代碼格式的程序代碼。35、根據(jù)權(quán)利要求23至34中任一權(quán)利要求所述的方法,其中存儲(chǔ)介質(zhì)是處理裝置的存儲(chǔ)器。36、根據(jù)權(quán)利要求23至35中任一權(quán)利要求所述的方法,其中變換包括確定至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置的值,并由參數(shù)化表示和所確定的值來(lái)確定第一存儲(chǔ)器地址的地址值。37、根據(jù)權(quán)利要求23至36中任一權(quán)利要求所述的方法,其中變換包括-確定當(dāng)前存儲(chǔ)器圖像模塊的第一起始地址和目標(biāo)裝置已經(jīng)決定加載更新的存儲(chǔ)器圖像模塊所處的第二起始地址;-確定存儲(chǔ)在目標(biāo)裝置存儲(chǔ)器中的全局符號(hào)表;-旅據(jù)所確定的參數(shù)例示參數(shù)德耳塔文件;-將例示的德耳塔文件應(yīng)用到當(dāng)前存儲(chǔ)器圖像模塊,從而生成更新的存儲(chǔ)器圖像模塊,該更新的存儲(chǔ)器圖像模塊要被存儲(chǔ)在確定的第二起始地址上。38、一種包括程序代碼裝置的計(jì)算機(jī)程序產(chǎn)品,適用于當(dāng)所述程序代碼裝置在數(shù)據(jù)處理系統(tǒng)上被執(zhí)行時(shí),使數(shù)據(jù)處理系統(tǒng)執(zhí)行根據(jù)權(quán)利要求1至22中任一權(quán)利要求所述的方法。39、豫用根據(jù)權(quán)利要求1至"中任一權(quán)利要求所述的方法,用于對(duì)便攜式無(wú)線電通信設(shè)備進(jìn)行重編程。40、一種處理裝置,包括-存儲(chǔ)介質(zhì)(212),用于存儲(chǔ)當(dāng)前存儲(chǔ)器圖像模塊;-通信接口(210),用于接收德耳塔文件,該德耳塔文件包括更新指令,更新指令包括第一存儲(chǔ)器地址的參數(shù)化表示,該參數(shù)化表示關(guān)于至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置來(lái)說(shuō)是參數(shù)化的;并且其中德耳塔文件進(jìn)一步包括參數(shù)解析指令;-處理裝置(211),適用于響應(yīng)于接收的更新指令和參數(shù)解析指令,將當(dāng)前的存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊。41、根據(jù)權(quán)利要求40所述的處理裝置,其中變換包括確定至少當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置的值,并由參數(shù)化表示和所確定的值來(lái)確定第一存儲(chǔ)器地址的地址值。42、根據(jù)權(quán)利要求40或41所述的處理裝置,其中更新的存儲(chǔ)器圖像模塊包括至少一個(gè)對(duì)第一存儲(chǔ)器地址的參照。43、根據(jù)權(quán)利要求40至42中任一權(quán)利要求所述的處理裝置,其中更新指令進(jìn)一步關(guān)于由更新的存儲(chǔ)器圖像模塊所參照的地址值而被參數(shù)化,該地址值在更新的存儲(chǔ)器圖像模塊外部。44、根據(jù)權(quán)利要求40至43中任一權(quán)利要求所述的處理裝置,其中處理裝置進(jìn)一步適用于將更新的存儲(chǔ)器圖像模塊存儲(chǔ)到永久性存儲(chǔ)器中。45、根據(jù)權(quán)利要求44所述的處理裝置,其中該處理裝置進(jìn)一步適用于執(zhí)行來(lái)自永久性存儲(chǔ)器的更新的程序代碼。46、根據(jù)權(quán)利要求40至45中任一權(quán)利要求所述的處理裝置,其中該處理裝置進(jìn)一步適用于確定/獲得當(dāng)前存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置和更新的存儲(chǔ)器圖像模塊在存儲(chǔ)器空間中的位置。47、根據(jù)權(quán)利要求46所述的處理裝置,其中該處理裝置進(jìn)一步適用于獲得全局符號(hào)表,該全局符號(hào)表包括至少一個(gè)可由更新的存儲(chǔ)器圖像模塊尋址的地址值,該地址值在更新的存儲(chǔ)器圖像模塊外部。48、根據(jù)權(quán)利要求47所述的處理裝置,其中全局符號(hào)表包括可由其它存儲(chǔ)器圖像模塊尋址的當(dāng)前存儲(chǔ)器圖像模塊內(nèi)的至少一個(gè)當(dāng)前地址值,并且其中該處理裝置進(jìn)一步適用于利用更新的存儲(chǔ)器圖像模塊內(nèi)相應(yīng)的更新地址值來(lái)更新當(dāng)前地址值。49、根據(jù)權(quán)利要求48所述的處理裝置,其中該處理裝置進(jìn)一步適用于將存儲(chǔ)在存儲(chǔ)介質(zhì)中的其它存儲(chǔ)器圖像模塊中參照當(dāng)前地址值的所有參照由所述當(dāng)前地址值更新為所述更新的地址值。50、根據(jù)權(quán)利要求40至49中任一權(quán)利要求所述的處理裝置,其中該處理裝置在其中存儲(chǔ)有用于每個(gè)存儲(chǔ)器圖像模塊的引出參照的列表,每個(gè)引出參照的列表包括從相應(yīng)存儲(chǔ)器圖像^t塊尋址的全局符號(hào)的列表,該全局符號(hào)在存儲(chǔ)器圖像才莫塊外部。51、根據(jù)權(quán)利要求40至50中任一權(quán)利要求所述的處理裝置,其中該處理裝置是便攜式無(wú)線電通信設(shè)備。52、一種用于生成德耳塔文件的系統(tǒng),該德耳塔文件包括用于使目標(biāo)處理裝置將當(dāng)前存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊的更新指令;該系統(tǒng)包括-存儲(chǔ)裝置(106),用于存儲(chǔ)對(duì)應(yīng)于當(dāng)前存儲(chǔ)器圖像模塊的當(dāng)前軟件版本的表示;-處理裝置(105),適用于通過(guò)執(zhí)行根據(jù)權(quán)利要求1至22中任一權(quán)利要求所述的方法的步驟來(lái)生成德耳塔文件。53、根據(jù)權(quán)利要求52所述的系統(tǒng),進(jìn)一步包括通信裝置(104),適用于將生成的德耳塔文件發(fā)送到處理裝置。全文摘要生成德耳塔文件的方法,該德耳塔文件包括用于使目標(biāo)處理裝置將當(dāng)前存儲(chǔ)器圖像模塊變換為更新的存儲(chǔ)器圖像模塊的更新指令。該方法包括將第一存儲(chǔ)器地址的參數(shù)化表示合并到德耳塔文件中,該參數(shù)化表示關(guān)于至少一個(gè)參數(shù)是參數(shù)化的;并將參數(shù)解析指令合并到德耳塔文件中,其中該參數(shù)解析指令適用于使得目標(biāo)處理裝置確定所述至少一個(gè)參數(shù)值,并由該參數(shù)化表示和所確定的所述至少一個(gè)參數(shù)的值來(lái)確定第一存儲(chǔ)器地址的地址值。文檔編號(hào)G06F9/44GK101361044SQ200680051361公開日2009年2月4日申請(qǐng)日期2006年12月6日優(yōu)先權(quán)日2005年12月20日發(fā)明者C·馮普拉滕,J·埃克申請(qǐng)人:艾利森電話股份有限公司