姜 文,劉立康
(西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)
基于VXWORKS系統(tǒng)的熱補丁技術(shù)研究
姜 文,劉立康
(西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)
軟件產(chǎn)品交付用戶使用后,需要解決軟件產(chǎn)品在使用過程中的各類問題與缺陷。對于VXWORKS操作系統(tǒng)開發(fā)的軟件產(chǎn)品,通常采用熱補丁技術(shù),可以在不影響系統(tǒng)正常運行的情況下完成對軟件產(chǎn)品錯誤的修復(fù)。為了解決軟件在使用過程中的各類問題與缺陷,需要深入研究熱補丁技術(shù)。結(jié)合工作實踐,敘述了VXWORKS操作系統(tǒng)的特點和熱補丁制作過程中的各種相關(guān)技術(shù)。以ClearCase作為配置管理工具,ICP-CI作為持續(xù)集成工具,進行熱補丁包制作;詳細敘述了基于VXWORKS系統(tǒng)的軟件熱補丁包制作過程,包括熱補丁代碼的編寫和靜態(tài)檢查、模塊熱補丁文件的制作、熱補丁包打包、熱補丁版本包的測試與發(fā)布。最后介紹了一個典型工作案例。工作實踐表明,熱補丁技術(shù)具有實時修復(fù),且不影響嵌入式系統(tǒng)正常運行的優(yōu)點,提高了系統(tǒng)可靠性,降低了軟件開發(fā)成本。
嵌入式操作系統(tǒng);熱補?。怀掷m(xù)集成;靜態(tài)檢查
VXWORKS是實時嵌入式操作系統(tǒng)軟件,可以為開發(fā)人員提供高效實時的任務(wù)調(diào)度、中斷管理、系統(tǒng)資源管理和任務(wù)間通信。VXWORKS經(jīng)過廣泛驗證,已成功應(yīng)用在航天、航空、艦船、通信、醫(yī)療等關(guān)鍵領(lǐng)域。
軟件產(chǎn)品交付用戶使用后,需要解決軟件產(chǎn)品在使用過程中的各類問題與缺陷[1]。對于VXWORKS平臺開發(fā)的軟件產(chǎn)品,采用熱補丁技術(shù),可以在不影響系統(tǒng)正常運行的情況下完成對系統(tǒng)錯誤的修復(fù),從而提高了軟件的安全性和可靠性,高質(zhì)量完成軟件維護工作,延續(xù)軟件的使用壽命,降低軟件開發(fā)成本。
文中采用軟件配置管理工具ClearCase和持續(xù)集成工具ICP-CI進行熱補丁包制作。詳細敘述了熱補丁代碼的編寫和靜態(tài)檢查、模塊熱補丁文件的制作、熱補丁包打包、熱補丁版本包的測試與發(fā)布。最后介紹了一個典型工作案例。工作實踐表明,采用持續(xù)集成技術(shù)有利于提高軟件熱補丁制作的效率與質(zhì)量。
軟件產(chǎn)品交付用戶使用過程中會出現(xiàn)的各種問題或缺陷,導(dǎo)致軟件產(chǎn)品部分功能不可用,或者影響軟件產(chǎn)品的性能,有時軟件可能會出現(xiàn)安全問題。需要在原有的軟件系統(tǒng)上實施補丁來修復(fù)這些問題。
1.1 補丁分類
軟件補丁的分類有多種,根據(jù)待實施的軟件可以分為操作系統(tǒng)補丁、應(yīng)用軟件補?。桓鶕?jù)修復(fù)的軟件缺陷的危害程度可以分為高危補丁、普通補??;根據(jù)實施補丁的方式可以分為冷補丁、熱補丁。
1.1.1 冷補丁
冷補丁[2-3],是修改軟件模塊的源代碼之后,對該模塊對應(yīng)的整個工程文件進行重新編譯,將編譯之后的所有可執(zhí)行文件重新加載到設(shè)備上執(zhí)行,在這個過程中需要在設(shè)備上停掉原有的軟件產(chǎn)品,再重新安裝一遍軟件產(chǎn)品。
1.1.2 熱補丁
熱補丁[4-6],是在軟件系統(tǒng)正常運行的過程中進行熱補丁安裝,熱補丁的實質(zhì)就是替換原有軟件系統(tǒng)中的一個或多個函數(shù)。執(zhí)行熱補丁安裝的過程中,并不需要停止軟件系統(tǒng),而且執(zhí)行熱補丁安裝的過程操作起來也很快。通常,熱補丁適用的軟件系統(tǒng)是一個內(nèi)核非搶占式的實時操作系統(tǒng),它具有可伸縮、可裁剪和高可靠性等特點,是一個可以同時適用于主流 CPU(如MIPS、PPC、X86和ARM等)目標(biāo)平臺的實時操作系統(tǒng)。
1.2 VXWORKS系統(tǒng)的特點
VXWORKS系統(tǒng)[4,7-8]提供了以下功能:
(1)任務(wù)管理。
操作系統(tǒng)執(zhí)行的每個程序都被稱之為任務(wù),VXWORKS系統(tǒng)模塊的運行一般是以任務(wù)的形式進行調(diào)度和運行;操作系統(tǒng)可以動態(tài)啟動或停止某一指定任務(wù)。
(2)符號表管理。
VXWORKS系統(tǒng)在軟件編譯時可以將所有的全局變量和外部函數(shù)都編譯到一個全局符號表中,軟件系統(tǒng)啟動后,該符號表可以通過操作系統(tǒng)提供的相關(guān)函數(shù)通過變量或函數(shù)名查找變量存儲地址或函數(shù)的入口地址。
(3)模塊動態(tài)加載。
操作系統(tǒng)支持將模塊軟件編譯成ELF格式的可執(zhí)行文件,在系統(tǒng)運行過程中動態(tài)加載該文件。
由于VXWORKS系統(tǒng)具有上述三種功能,有利于采用熱補丁的方式修復(fù)軟件模塊存在的各種缺陷。基于VXWORKS操作系統(tǒng)的軟件產(chǎn)品熱補丁具有繼承性,即后一個版本的熱補丁需要將前一個版本的熱補丁所修改的缺陷收編進來,在熱補丁的制作過程中需要注意這一點。
1.3 熱補丁制作過程中的文件類型
Tornado是VXWORKS應(yīng)用系統(tǒng)的集成開發(fā)環(huán)境。Tornado IDE采用C/C++語言編程,支持GNU的C/C++編譯器。GNU編譯器生成的目標(biāo)文件缺省為ELF(Executable and Linking Format)格式[4-5]。
1.3.1 目標(biāo)文件*.obj的文件格式
目標(biāo)文件*.obj為ELF格式[5-6],文件格式如圖1所示。
圖1 目標(biāo)文件*.obj的文件格式
目標(biāo)文件包括文件頭、代碼段、符號段、重定位段和段表。其中,代碼段存放二進制代碼指令;數(shù)據(jù)段中分類存儲數(shù)據(jù);符號段中存放該文件中定義的各個全局函數(shù)和全局變量的名字以及它們加載后在內(nèi)存中的地址;在重定位段中存放引用外部符號“名字”以及“在何處引用”等信息。文件頭對段表進行索引,段表中包括代碼段的段頭、數(shù)據(jù)段的段頭、重定義段的段頭,這些段頭包含對應(yīng)段的相關(guān)信息。
1.3.2 熱補丁文件*.pat的文件格式
熱補丁文件*.pat的文件格式[5-6]如圖2所示。
在補丁文件中每個補丁單元對應(yīng)一個補丁函數(shù)。每個補丁單元包括代碼段、數(shù)據(jù)段和函數(shù)替換表三部分。其中,代碼段和數(shù)據(jù)段存放的是補丁函數(shù)的實際指令;函數(shù)替換表中包括被補丁函數(shù)的地址和補丁函數(shù)地址。每個補丁單元對應(yīng)相應(yīng)的補丁單元頭,補丁單元頭中包含補丁函數(shù)名稱、函數(shù)尺寸和函數(shù)地址。
1.3.3 文件類型
熱補丁制作過程中涉及以下文件類型。
(1)*.c或*.cpp文件,采用C/C++語言編寫的熱補丁源程序。
圖2 熱補丁*.pat的文件格式
(2)目標(biāo)文件*.obj,采用gcc或g++將*.c或*.cpp文件編譯生成的目標(biāo)文件,具有ELF格式的二進制文件。
(3)模塊目標(biāo)文件*.elf,將軟件模塊中的所有目標(biāo)文件*.obj連接在一起生成模塊的目標(biāo)文件(模塊名.elf),通常稱為模塊基線文件。
(4)熱補丁文件*.pat,由熱補丁函數(shù)組成的文件,可以加載到系統(tǒng)中應(yīng)用。
(5)符號表信息文件*.SYM,在目標(biāo)文件中刪除符號信息以外的所有內(nèi)容得到的文件。文件中以符號為單位存放各個全局函數(shù)和全局變量的名字和它們加載后在內(nèi)存中的地址。
1.4 熱補丁包制作流程圖
采用持續(xù)集成技術(shù)制作熱補丁,可以高效率和高質(zhì)量完成熱補丁包的制作[4-6,9-12]。文中采用的軟件配置管理工具是ClearCase,持續(xù)集成工具是ICP-CI,進行熱補丁包制作。熱補丁的制作流程如圖3所示。
2.1 熱補丁代碼編寫
制作熱補丁之前,開發(fā)工程師需要通過軟件產(chǎn)品的配置管理工程師(CMO)確認(rèn)需要制作熱補丁的軟件代碼基線。同時確認(rèn)目前加載在軟件基線上的熱補丁包版本。開發(fā)人員從版本庫下載相關(guān)的軟件基線代碼文件和補丁包代碼文件,編寫新的熱補丁代碼。
對于補丁開發(fā)首先需要定位存在源代碼缺陷函數(shù)(因為熱補丁的原理就是函數(shù)替換),定位之后修改相關(guān)的函數(shù)源代碼,修改函數(shù)相應(yīng)的功能代碼。
開發(fā)工程師進行補丁開發(fā)與通常的軟件開發(fā)有區(qū)別,需要注意如下事項:
(1)對*.h文件的處理。
對補丁開發(fā)過程中涉及的代碼缺陷,定位到需要修改的函數(shù)源代碼后,修改相應(yīng)的功能代碼時,不能修改對應(yīng)的*.h文件中的內(nèi)容。
圖3 熱補丁的制作流程圖
(2)對函數(shù)的處理。
修改缺陷對應(yīng)的*.c文件的源代碼時,只保留需要修改的函數(shù)。去掉所有無關(guān)的函數(shù),可以直接刪掉或者用#if 0 #endif注釋掉。
(3)對全局變量的處理。
修改缺陷對應(yīng)的*.c文件時,需要將所有的全局變量都改用extern聲明,并把在定義全局變量時的賦值都去掉;對于用const聲明的全局常變量(常變量,只允許讀不允許寫),如果開發(fā)工程師所修改的函數(shù)中未用到該全局變量則在該全局變量前加extern聲明,還要將其后面的賦值去掉;若所修改的函數(shù)中用到了該全局變量,就需要將該全局變量改成別的變量名,并重新定義,其初始化與原全局變量一致,同時在要修改的函數(shù)中用新的變量名替換老的變量名;若該全局變量是static聲明的,如果需要修改的函數(shù)中未用到該變量,可直接加extern聲明。
(4)對靜態(tài)函數(shù)的處理。
若修改的函數(shù)是靜態(tài)函數(shù),可通過修改該函數(shù)的上層函數(shù),即修改完缺陷對應(yīng)的函數(shù)之后,不能注釋掉調(diào)用該函數(shù)的上層函數(shù),另外,所有的上層函數(shù)要調(diào)用的靜態(tài)函數(shù)都不能注釋掉。
(5)加入返回補丁版本號的函數(shù)。
修改的*.c文件中加入一個返回補丁版本號的函數(shù),其返回值為補丁版本號。
開發(fā)工程師完成補丁代碼編寫后,對代碼進行單元測試,靜態(tài)走碼檢查,最后將評審過的代碼合入版本庫。開發(fā)工程師向版本庫提交代碼時,要添加注釋、說明、CR單號、修改原因等,以保證可追溯。
2.2 ClearCase版本庫的代碼更新
持續(xù)集成工具ICP-CI需要在版本庫鎖庫之后完成源代碼更新。ICP-CI工具執(zhí)行代碼更新時,需要編寫代碼更新的批處理腳本code_update.bat,把代碼更新的腳本配置在任務(wù)中。
2.3 代碼靜態(tài)檢查
為了確保熱補丁文件的源代碼質(zhì)量,需要對開發(fā)工程師修改的源代碼進行靜態(tài)檢查。采用持續(xù)集成工具ICP-CI調(diào)用靜態(tài)檢查工具PC-Lint和Coverity Prevent[13]對補丁代碼進行靜態(tài)檢查。PC-Lint通常用于C、C++源代碼的靜態(tài)檢查,是最常用的靜態(tài)檢查工具。重量級靜態(tài)檢查工具Coverity Prevent是檢測和解決C、C++、Java和C#源代碼中嚴(yán)重缺陷的領(lǐng)先自動化方法。另外,為了提高熱補丁的安全性,還需要對補丁源代碼進行危險函數(shù)檢查,避免出現(xiàn)諸如strcpy等函數(shù)。發(fā)現(xiàn)代碼問題反饋給開發(fā)工程師,其對代碼進行修改,直到存在的問題全部解決。
熱補丁分為三個層級:函數(shù)熱補丁,模塊熱補丁(由多個函數(shù)熱補丁組成),熱補丁包(包含多個模塊熱補丁)?;诔掷m(xù)集成[7]的熱補丁開發(fā)通常是制作熱補丁包。
3.1 模塊熱補丁目錄結(jié)構(gòu)
制作模塊熱補丁時,需要創(chuàng)建“產(chǎn)品名_版本號_BASEVXWORKS模塊名”文件夾,用于存放相關(guān)文件與熱補丁文件。以UPE模塊為例,文件夾目錄結(jié)構(gòu)如表1所示。
表1 UPE模塊熱補丁文件夾目錄結(jié)構(gòu)
3.2 模塊熱補丁文件制作過程
以UPE模塊為例,敘述模塊熱補丁文件制作過程。
3.2.1 集成到ICP-CI工具進行熱補丁文件編譯
首先創(chuàng)建一個構(gòu)建工程:“產(chǎn)品名_版本號_PatchBuild”。在ICP-CI的任務(wù)管理頁面上配置編譯任務(wù)完成熱補丁源程序代碼編譯。配置任務(wù)以模塊為單位,在任務(wù)欄上選擇“compile”任務(wù)。具體配置如表2所示。
表2 UPE模塊在ICP-CI頁面上配置“compile”任務(wù)
持續(xù)集成工程師編寫相關(guān)的*.ini配置文件、Makefile文件、補丁編譯腳本和ANT腳本,啟動相關(guān)程序完成補丁源程序代碼的編譯工作。將編譯生成的*.obj文件歸檔到UPEobj目錄下。
3.2.2 模塊熱補丁文件的制作
編譯工作完成之后,制作補丁中間文件和模塊UPE熱補丁文件。
(1)根據(jù)*.obj文件的個數(shù),在UPEobj文件夾中生成從HP0001到HP000X的子目錄。熱補丁中間文件制作工具makepatch.exe通過補丁目標(biāo)文件*.obj生成與其對應(yīng)的熱補丁文件、符號表信息文件和制作熱補丁文件的過程日志文件。*.obj文件和生成的熱補丁中間文件存放在對應(yīng)的文件夾中。以HP 0001文件夾為例,文件夾中存放的文件如表3所示。
表3 補丁中間文件的文件目錄
(2)編寫批處理腳本,通過熱補丁中間文件生成模塊熱補丁文件。由于模塊熱補丁文件具有繼承性,即包含上一個版本熱補丁修復(fù)的產(chǎn)品缺陷,因此對非首次編譯的熱補丁文件而言,需要將前一個熱補丁版本的熱補丁中間文件與本次編譯生成的熱補丁中間文件合并起來生成目前版本的模塊熱補丁文件。模塊UPE的熱補丁文件是upe_patch.pat。該補丁文件歸檔到UPE elease文件夾中。
3.3 熱補丁包打包
軟件的所有模塊熱補丁文件制作完成后,將這些模塊熱補丁文件打包。由于熱補丁版本包也具有繼承性,即后一個版本的熱補丁版本包收編包含前一個版本包編譯生成的熱補丁文件。同時要更新熱補丁包版本號。
(1)創(chuàng)建熱補丁包文件夾。
熱補丁文件制作完成后,需要創(chuàng)建熱補丁包的文件夾。將各模塊熱補丁文件*.pat拷貝到熱補丁包文件夾的bin/new目錄下。若模塊補丁文件已經(jīng)更新,拷貝更新后模塊熱補丁文件;若沒有更新,拷貝原來的模塊熱補丁文件。將其他相關(guān)的文件拷貝到相應(yīng)的目錄下。
(2)熱補丁包打包。
修改打包配置文件autorun.ini:填寫本次版本號、基線版本號、源文件目錄和目的文件目錄。運行打包工具packer.exe完成熱補丁版本包打包。熱補丁包制作完成后,補丁版本包的文件名為:產(chǎn)品名 版本號 loadfiles.rar。
熱補丁版本包制作完成后由產(chǎn)品經(jīng)理提交轉(zhuǎn)測試流程。測試經(jīng)理安排測試工程師與測試環(huán)境對補丁版本包進行測試[14-16]。
測試工程師根據(jù)該補丁版本需要修復(fù)的缺陷列表,設(shè)計相應(yīng)的測試用例,測試新增與待改進的特性是否符合設(shè)計規(guī)格;還要根據(jù)基本測試用例完成補丁的基本功能測試,測試工作完成后,測試工程師提供測試報告。
熱補丁測試分為三個層次:補丁函數(shù)測試、補丁模塊測試和補丁包測試。
(1)補丁函數(shù)測試是最基礎(chǔ)的測試,補丁函數(shù)測試是函數(shù)缺陷修復(fù)、新增與待改進的特性的測試。對于UPE模塊,通過基線文件upe.elf和四類中間文件(熱補丁文件patchHP000X.pat,符號表信息patchHP000X.SYM,日志文件patchHP000X.txt和編譯目標(biāo)文件*.obj)測試補丁函數(shù)。通過這四類文件可以方便測試補丁函數(shù),將測試結(jié)果及時反饋給補丁源程序代碼的開發(fā)人員,修改代碼存在的各種問題。這四類文件也有利于補丁包測試和補丁模塊測試中各種缺陷問題的定位。
(2)補丁模塊測試,對于UPE模塊,通過基線文件upe.elf和upe_patch.pat,對補丁模塊進行功能、性能和兼容性的綜合測試。
(3)補丁包測試,熱補丁包的測試是補丁包加載后綜合技術(shù)指標(biāo)的全面測試。
完成熱補丁測試工作后,將相關(guān)文件和熱補丁版本包歸檔。產(chǎn)品經(jīng)理發(fā)布熱補丁包。
熱補丁通常有4個基本狀態(tài):加載,激活,去激活和卸載?;赩XWORKS系統(tǒng)的熱補丁包可以采用LMT(Local Maintenance Terminal)客戶端工具安裝和管理。LMT工具是指安裝了“本地維護終端”的軟件組,通過LMT工具的MML(Man-Machine Language)命令,可以對網(wǎng)元進行相應(yīng)操作和維護。
將熱補丁版本包解壓之后,使用FTP工具,打開客戶端工具連接到主版本的單板,執(zhí)行MML命令進行補丁熱的安裝和管理。執(zhí)行LOD TOBAM將熱補丁版本加載到硬盤,執(zhí)行LOD TOBP將熱補丁版本加載到FLASH。加載完成之后激活補丁,執(zhí)行CHK VERSION與DSP PATCH查看補丁版本號,表示加載相應(yīng)的熱補丁版本成功。
常用的補丁管理MML命令如下:
DSP PATCH顯示補丁
ACT PATCH 激活補丁
DEA PATCH 去激活補丁
CON PATCH 確認(rèn)補丁
RVW PATCH 刪除補丁
某公司采用軟件配置管理工具ClearCase和持續(xù)集成工具ICP-CI進行基于VXWORKS系統(tǒng)的軟件熱補丁的制作。
補丁包版本編號為V2.11.0_SPC101,共制作了10個模塊的熱補丁文件,收編了若干個來自各局點和內(nèi)部測試發(fā)現(xiàn)的軟件產(chǎn)品缺陷,并完成了熱補丁包打包以及所有的結(jié)果文件歸檔任務(wù)。補丁包發(fā)布后在各局點安裝使用,解決了存在的問題。
熱補丁技術(shù)為嵌入式系統(tǒng)升級軟件和嵌入式系統(tǒng)進行錯誤動態(tài)修復(fù)提供了一種技術(shù)方法。工作實踐表明,熱補丁技術(shù)具有實時修復(fù),且不影響嵌入式系統(tǒng)正常運行的優(yōu)點,對于VXWORKS系統(tǒng)的軟件采用熱補丁技術(shù),可以提高軟件的安全性和可靠性,同時降低軟件開發(fā)成本。文中采用持續(xù)集成技術(shù)開發(fā)熱補丁包,可以提高軟件熱補丁的質(zhì)量和開發(fā)效率,可以快速向開發(fā)工程師反饋軟件源代碼的缺陷,便于開發(fā)工程師及時修復(fù)源代碼的缺陷,同時也給項目的管理提供了很好的保證。
[1] Grubb P,Takang A A.軟件維護:概念與實踐[M].韓 柯,孟海軍,譯.第2版.北京:電子工業(yè)出版社,2004.
[2] 姜 文,劉立康.現(xiàn)代應(yīng)用軟件的維護與技術(shù)支持[J].計算機技術(shù)與發(fā)展,2015,25(4):116-120.
[3] 姜 文,劉立康.應(yīng)用軟件維護中的補丁開發(fā)與管理[J].計算機技術(shù)與發(fā)展,2015,25(11):11-16.
[4] 程友清.嵌入式網(wǎng)絡(luò)設(shè)備軟件熱補丁技術(shù)研究[J].微電子學(xué)與計算機,2013,30(1):28-31.
[5] 常莉莉.分布式系統(tǒng)熱補丁技術(shù)的研究與實現(xiàn)[D].廣州:中山大學(xué),2006.
[6] 雷震宇.嵌入式網(wǎng)絡(luò)設(shè)備在線熱升級的研究及實現(xiàn)[D].武漢:武漢郵電科學(xué)研究院,2012.
[7]RiverW.Vxworks程序員指南[M].北京:清華大學(xué)出版社,2003.
[8] 陳智育,溫彥軍,陳 琪.Vxworks程序開發(fā)實踐[M].北京:人民郵電出版社,2004.
[9]MehdiG.Contributorstoqualityduringsoftwaremaintenance[J].DecisionSupportSystems,1998,23(4):361-369.
[10]HauptmannS,WaselJ.On-linemaintenancewithon-the-flysoftwarereplacement[C]//Internationalconferenceonconfigurabledistributedsystems.[s.l.]:IEEEComputerSociety,1996:70-80.
[11] 姜 文,劉立康.Oracle數(shù)據(jù)庫補丁問題研究[J].電子設(shè)計工程,2014,22(20):10-13.
[12]ShahR.Oracleondemandbestpractices:criticalpatchupdate[R].[s.l.]:OracleCorporation,2008.
[13] 姜 文,劉立康.基于VxWorks平臺的軟件重量級靜態(tài)檢查[J].微型機與應(yīng)用,2016,35(6):79-81.
[14] 蔡建平.嵌入式軟件測試實用技術(shù)[M].北京:清華大學(xué)出版社,2010.
[15]MichalikB,WeynsD,BouckeN,etal.Supportingonlineupdatesofsoftwareproductlines:acontrolledexperiment[C]//2011internationalsymposiumonempiricalsoftwareengineeringandmeasurement.WashingtonDC:IEEEComputerSociety,2011:187-196.
[16]ChenXuhui,ZhangDengyi,YangHongyun.Researchonkeytechnologiesofon-lineprogramminginembeddedsystem[C]//2009thirdinternationalsymposiumonintelligentinformationtechnologyapplication.WashingtonDC:IEEEComputerSociety,2009:45-47.
Research on Hot Patch Technology Based on VXWORKS
JIANG Wen,LIU Li-kang
(School of Telecommunication Engineering,Xidian University,Xi’an 710071,China)
After the software is delivered to customers,all kinds of problems and defects are needed to be solved during the use of software.The software developed by the VXWORKS operating system is usually used the hot-patch technology,which can solve the software errors with the system operated normally.In order to solve kinds of questions and defects,the technique of hot patch is needed to be researched deeply.With the practice of the work,the characteristics of VXWORKS operating system and the types of files during the process of hot patch making are described.With ClearCase as the configuration management tool and ICP-CI as the continuous integration tool to produce hot patches,the process of software hot patches based on the VXWORKS operating system is described in detail,including writing and static checking the code of hot patch,making the hot patch files for modules,packing the hot patches,and testing and releasing the version package of hot patches.Finally,a typical work case is introduced.Practice shows that the technique of hot patch has the advantages of real-time repair,and will not affect the normal operation of the embedded system,improving system reliability,reducing the cost of software development.
embedded operating system;hot patch;continuous integration;static check
2016-04-17
2016-08-11
時間:2017-02-17
國家部委基礎(chǔ)科研計劃:國防預(yù)研基金項目(A1120110007)
姜 文(1986-),女,碩士研究生,工程師,CCF會員,研究方向為圖像處理、數(shù)據(jù)庫應(yīng)用和軟件工程等;劉立康,副教授,研究方向為數(shù)字通信、圖像處理、嵌入式應(yīng)用技術(shù)等。
http://www.cnki.net/kcms/detail/61.1450.TP.20170217.1628.022.html
TP311.53
A
1673-629X(2017)03-0018-05
10.3969/j.issn.1673-629X.2017.03.004