亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VXWORKS系統(tǒng)的熱補(bǔ)丁技術(shù)研究

        2017-03-29 04:52:46劉立康
        關(guān)鍵詞:補(bǔ)丁代碼軟件

        姜 文,劉立康

        (西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)

        基于VXWORKS系統(tǒng)的熱補(bǔ)丁技術(shù)研究

        姜 文,劉立康

        (西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)

        軟件產(chǎn)品交付用戶使用后,需要解決軟件產(chǎn)品在使用過(guò)程中的各類問(wèn)題與缺陷。對(duì)于VXWORKS操作系統(tǒng)開(kāi)發(fā)的軟件產(chǎn)品,通常采用熱補(bǔ)丁技術(shù),可以在不影響系統(tǒng)正常運(yùn)行的情況下完成對(duì)軟件產(chǎn)品錯(cuò)誤的修復(fù)。為了解決軟件在使用過(guò)程中的各類問(wèn)題與缺陷,需要深入研究熱補(bǔ)丁技術(shù)。結(jié)合工作實(shí)踐,敘述了VXWORKS操作系統(tǒng)的特點(diǎn)和熱補(bǔ)丁制作過(guò)程中的各種相關(guān)技術(shù)。以ClearCase作為配置管理工具,ICP-CI作為持續(xù)集成工具,進(jìn)行熱補(bǔ)丁包制作;詳細(xì)敘述了基于VXWORKS系統(tǒng)的軟件熱補(bǔ)丁包制作過(guò)程,包括熱補(bǔ)丁代碼的編寫和靜態(tài)檢查、模塊熱補(bǔ)丁文件的制作、熱補(bǔ)丁包打包、熱補(bǔ)丁版本包的測(cè)試與發(fā)布。最后介紹了一個(gè)典型工作案例。工作實(shí)踐表明,熱補(bǔ)丁技術(shù)具有實(shí)時(shí)修復(fù),且不影響嵌入式系統(tǒng)正常運(yùn)行的優(yōu)點(diǎn),提高了系統(tǒng)可靠性,降低了軟件開(kāi)發(fā)成本。

        嵌入式操作系統(tǒng);熱補(bǔ)??;持續(xù)集成;靜態(tài)檢查

        0 引 言

        VXWORKS是實(shí)時(shí)嵌入式操作系統(tǒng)軟件,可以為開(kāi)發(fā)人員提供高效實(shí)時(shí)的任務(wù)調(diào)度、中斷管理、系統(tǒng)資源管理和任務(wù)間通信。VXWORKS經(jīng)過(guò)廣泛驗(yàn)證,已成功應(yīng)用在航天、航空、艦船、通信、醫(yī)療等關(guān)鍵領(lǐng)域。

        軟件產(chǎn)品交付用戶使用后,需要解決軟件產(chǎn)品在使用過(guò)程中的各類問(wèn)題與缺陷[1]。對(duì)于VXWORKS平臺(tái)開(kāi)發(fā)的軟件產(chǎn)品,采用熱補(bǔ)丁技術(shù),可以在不影響系統(tǒng)正常運(yùn)行的情況下完成對(duì)系統(tǒng)錯(cuò)誤的修復(fù),從而提高了軟件的安全性和可靠性,高質(zhì)量完成軟件維護(hù)工作,延續(xù)軟件的使用壽命,降低軟件開(kāi)發(fā)成本。

        文中采用軟件配置管理工具ClearCase和持續(xù)集成工具ICP-CI進(jìn)行熱補(bǔ)丁包制作。詳細(xì)敘述了熱補(bǔ)丁代碼的編寫和靜態(tài)檢查、模塊熱補(bǔ)丁文件的制作、熱補(bǔ)丁包打包、熱補(bǔ)丁版本包的測(cè)試與發(fā)布。最后介紹了一個(gè)典型工作案例。工作實(shí)踐表明,采用持續(xù)集成技術(shù)有利于提高軟件熱補(bǔ)丁制作的效率與質(zhì)量。

        1 熱補(bǔ)丁相關(guān)技術(shù)

        軟件產(chǎn)品交付用戶使用過(guò)程中會(huì)出現(xiàn)的各種問(wèn)題或缺陷,導(dǎo)致軟件產(chǎn)品部分功能不可用,或者影響軟件產(chǎn)品的性能,有時(shí)軟件可能會(huì)出現(xiàn)安全問(wèn)題。需要在原有的軟件系統(tǒng)上實(shí)施補(bǔ)丁來(lái)修復(fù)這些問(wèn)題。

        1.1 補(bǔ)丁分類

        軟件補(bǔ)丁的分類有多種,根據(jù)待實(shí)施的軟件可以分為操作系統(tǒng)補(bǔ)丁、應(yīng)用軟件補(bǔ)??;根據(jù)修復(fù)的軟件缺陷的危害程度可以分為高危補(bǔ)丁、普通補(bǔ)?。桓鶕?jù)實(shí)施補(bǔ)丁的方式可以分為冷補(bǔ)丁、熱補(bǔ)丁。

        1.1.1 冷補(bǔ)丁

        冷補(bǔ)丁[2-3],是修改軟件模塊的源代碼之后,對(duì)該模塊對(duì)應(yīng)的整個(gè)工程文件進(jìn)行重新編譯,將編譯之后的所有可執(zhí)行文件重新加載到設(shè)備上執(zhí)行,在這個(gè)過(guò)程中需要在設(shè)備上停掉原有的軟件產(chǎn)品,再重新安裝一遍軟件產(chǎn)品。

        1.1.2 熱補(bǔ)丁

        熱補(bǔ)丁[4-6],是在軟件系統(tǒng)正常運(yùn)行的過(guò)程中進(jìn)行熱補(bǔ)丁安裝,熱補(bǔ)丁的實(shí)質(zhì)就是替換原有軟件系統(tǒng)中的一個(gè)或多個(gè)函數(shù)。執(zhí)行熱補(bǔ)丁安裝的過(guò)程中,并不需要停止軟件系統(tǒng),而且執(zhí)行熱補(bǔ)丁安裝的過(guò)程操作起來(lái)也很快。通常,熱補(bǔ)丁適用的軟件系統(tǒng)是一個(gè)內(nèi)核非搶占式的實(shí)時(shí)操作系統(tǒng),它具有可伸縮、可裁剪和高可靠性等特點(diǎn),是一個(gè)可以同時(shí)適用于主流 CPU(如MIPS、PPC、X86和ARM等)目標(biāo)平臺(tái)的實(shí)時(shí)操作系統(tǒng)。

        1.2 VXWORKS系統(tǒng)的特點(diǎn)

        VXWORKS系統(tǒng)[4,7-8]提供了以下功能:

        (1)任務(wù)管理。

        操作系統(tǒng)執(zhí)行的每個(gè)程序都被稱之為任務(wù),VXWORKS系統(tǒng)模塊的運(yùn)行一般是以任務(wù)的形式進(jìn)行調(diào)度和運(yùn)行;操作系統(tǒng)可以動(dòng)態(tài)啟動(dòng)或停止某一指定任務(wù)。

        (2)符號(hào)表管理。

        VXWORKS系統(tǒng)在軟件編譯時(shí)可以將所有的全局變量和外部函數(shù)都編譯到一個(gè)全局符號(hào)表中,軟件系統(tǒng)啟動(dòng)后,該符號(hào)表可以通過(guò)操作系統(tǒng)提供的相關(guān)函數(shù)通過(guò)變量或函數(shù)名查找變量存儲(chǔ)地址或函數(shù)的入口地址。

        (3)模塊動(dòng)態(tài)加載。

        操作系統(tǒng)支持將模塊軟件編譯成ELF格式的可執(zhí)行文件,在系統(tǒng)運(yùn)行過(guò)程中動(dòng)態(tài)加載該文件。

        由于VXWORKS系統(tǒng)具有上述三種功能,有利于采用熱補(bǔ)丁的方式修復(fù)軟件模塊存在的各種缺陷?;赩XWORKS操作系統(tǒng)的軟件產(chǎn)品熱補(bǔ)丁具有繼承性,即后一個(gè)版本的熱補(bǔ)丁需要將前一個(gè)版本的熱補(bǔ)丁所修改的缺陷收編進(jìn)來(lái),在熱補(bǔ)丁的制作過(guò)程中需要注意這一點(diǎn)。

        1.3 熱補(bǔ)丁制作過(guò)程中的文件類型

        Tornado是VXWORKS應(yīng)用系統(tǒng)的集成開(kāi)發(fā)環(huán)境。Tornado IDE采用C/C++語(yǔ)言編程,支持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)文件包括文件頭、代碼段、符號(hào)段、重定位段和段表。其中,代碼段存放二進(jìn)制代碼指令;數(shù)據(jù)段中分類存儲(chǔ)數(shù)據(jù);符號(hào)段中存放該文件中定義的各個(gè)全局函數(shù)和全局變量的名字以及它們加載后在內(nèi)存中的地址;在重定位段中存放引用外部符號(hào)“名字”以及“在何處引用”等信息。文件頭對(duì)段表進(jìn)行索引,段表中包括代碼段的段頭、數(shù)據(jù)段的段頭、重定義段的段頭,這些段頭包含對(duì)應(yīng)段的相關(guān)信息。

        1.3.2 熱補(bǔ)丁文件*.pat的文件格式

        熱補(bǔ)丁文件*.pat的文件格式[5-6]如圖2所示。

        在補(bǔ)丁文件中每個(gè)補(bǔ)丁單元對(duì)應(yīng)一個(gè)補(bǔ)丁函數(shù)。每個(gè)補(bǔ)丁單元包括代碼段、數(shù)據(jù)段和函數(shù)替換表三部分。其中,代碼段和數(shù)據(jù)段存放的是補(bǔ)丁函數(shù)的實(shí)際指令;函數(shù)替換表中包括被補(bǔ)丁函數(shù)的地址和補(bǔ)丁函數(shù)地址。每個(gè)補(bǔ)丁單元對(duì)應(yīng)相應(yīng)的補(bǔ)丁單元頭,補(bǔ)丁單元頭中包含補(bǔ)丁函數(shù)名稱、函數(shù)尺寸和函數(shù)地址。

        1.3.3 文件類型

        熱補(bǔ)丁制作過(guò)程中涉及以下文件類型。

        (1)*.c或*.cpp文件,采用C/C++語(yǔ)言編寫的熱補(bǔ)丁源程序。

        圖2 熱補(bǔ)丁*.pat的文件格式

        (2)目標(biāo)文件*.obj,采用gcc或g++將*.c或*.cpp文件編譯生成的目標(biāo)文件,具有ELF格式的二進(jìn)制文件。

        (3)模塊目標(biāo)文件*.elf,將軟件模塊中的所有目標(biāo)文件*.obj連接在一起生成模塊的目標(biāo)文件(模塊名.elf),通常稱為模塊基線文件。

        (4)熱補(bǔ)丁文件*.pat,由熱補(bǔ)丁函數(shù)組成的文件,可以加載到系統(tǒng)中應(yīng)用。

        (5)符號(hào)表信息文件*.SYM,在目標(biāo)文件中刪除符號(hào)信息以外的所有內(nèi)容得到的文件。文件中以符號(hào)為單位存放各個(gè)全局函數(shù)和全局變量的名字和它們加載后在內(nèi)存中的地址。

        1.4 熱補(bǔ)丁包制作流程圖

        采用持續(xù)集成技術(shù)制作熱補(bǔ)丁,可以高效率和高質(zhì)量完成熱補(bǔ)丁包的制作[4-6,9-12]。文中采用的軟件配置管理工具是ClearCase,持續(xù)集成工具是ICP-CI,進(jìn)行熱補(bǔ)丁包制作。熱補(bǔ)丁的制作流程如圖3所示。

        2 熱補(bǔ)丁代碼的編寫和靜態(tài)檢查

        2.1 熱補(bǔ)丁代碼編寫

        制作熱補(bǔ)丁之前,開(kāi)發(fā)工程師需要通過(guò)軟件產(chǎn)品的配置管理工程師(CMO)確認(rèn)需要制作熱補(bǔ)丁的軟件代碼基線。同時(shí)確認(rèn)目前加載在軟件基線上的熱補(bǔ)丁包版本。開(kāi)發(fā)人員從版本庫(kù)下載相關(guān)的軟件基線代碼文件和補(bǔ)丁包代碼文件,編寫新的熱補(bǔ)丁代碼。

        對(duì)于補(bǔ)丁開(kāi)發(fā)首先需要定位存在源代碼缺陷函數(shù)(因?yàn)闊嵫a(bǔ)丁的原理就是函數(shù)替換),定位之后修改相關(guān)的函數(shù)源代碼,修改函數(shù)相應(yīng)的功能代碼。

        開(kāi)發(fā)工程師進(jìn)行補(bǔ)丁開(kāi)發(fā)與通常的軟件開(kāi)發(fā)有區(qū)別,需要注意如下事項(xiàng):

        (1)對(duì)*.h文件的處理。

        對(duì)補(bǔ)丁開(kāi)發(fā)過(guò)程中涉及的代碼缺陷,定位到需要修改的函數(shù)源代碼后,修改相應(yīng)的功能代碼時(shí),不能修改對(duì)應(yīng)的*.h文件中的內(nèi)容。

        圖3 熱補(bǔ)丁的制作流程圖

        (2)對(duì)函數(shù)的處理。

        修改缺陷對(duì)應(yīng)的*.c文件的源代碼時(shí),只保留需要修改的函數(shù)。去掉所有無(wú)關(guān)的函數(shù),可以直接刪掉或者用#if 0 #endif注釋掉。

        (3)對(duì)全局變量的處理。

        修改缺陷對(duì)應(yīng)的*.c文件時(shí),需要將所有的全局變量都改用extern聲明,并把在定義全局變量時(shí)的賦值都去掉;對(duì)于用const聲明的全局常變量(常變量,只允許讀不允許寫),如果開(kāi)發(fā)工程師所修改的函數(shù)中未用到該全局變量則在該全局變量前加extern聲明,還要將其后面的賦值去掉;若所修改的函數(shù)中用到了該全局變量,就需要將該全局變量改成別的變量名,并重新定義,其初始化與原全局變量一致,同時(shí)在要修改的函數(shù)中用新的變量名替換老的變量名;若該全局變量是static聲明的,如果需要修改的函數(shù)中未用到該變量,可直接加extern聲明。

        (4)對(duì)靜態(tài)函數(shù)的處理。

        若修改的函數(shù)是靜態(tài)函數(shù),可通過(guò)修改該函數(shù)的上層函數(shù),即修改完缺陷對(duì)應(yīng)的函數(shù)之后,不能注釋掉調(diào)用該函數(shù)的上層函數(shù),另外,所有的上層函數(shù)要調(diào)用的靜態(tài)函數(shù)都不能注釋掉。

        (5)加入返回補(bǔ)丁版本號(hào)的函數(shù)。

        修改的*.c文件中加入一個(gè)返回補(bǔ)丁版本號(hào)的函數(shù),其返回值為補(bǔ)丁版本號(hào)。

        開(kāi)發(fā)工程師完成補(bǔ)丁代碼編寫后,對(duì)代碼進(jìn)行單元測(cè)試,靜態(tài)走碼檢查,最后將評(píng)審過(guò)的代碼合入版本庫(kù)。開(kāi)發(fā)工程師向版本庫(kù)提交代碼時(shí),要添加注釋、說(shuō)明、CR單號(hào)、修改原因等,以保證可追溯。

        2.2 ClearCase版本庫(kù)的代碼更新

        持續(xù)集成工具ICP-CI需要在版本庫(kù)鎖庫(kù)之后完成源代碼更新。ICP-CI工具執(zhí)行代碼更新時(shí),需要編寫代碼更新的批處理腳本code_update.bat,把代碼更新的腳本配置在任務(wù)中。

        2.3 代碼靜態(tài)檢查

        為了確保熱補(bǔ)丁文件的源代碼質(zhì)量,需要對(duì)開(kāi)發(fā)工程師修改的源代碼進(jìn)行靜態(tài)檢查。采用持續(xù)集成工具ICP-CI調(diào)用靜態(tài)檢查工具PC-Lint和Coverity Prevent[13]對(duì)補(bǔ)丁代碼進(jìn)行靜態(tài)檢查。PC-Lint通常用于C、C++源代碼的靜態(tài)檢查,是最常用的靜態(tài)檢查工具。重量級(jí)靜態(tài)檢查工具Coverity Prevent是檢測(cè)和解決C、C++、Java和C#源代碼中嚴(yán)重缺陷的領(lǐng)先自動(dòng)化方法。另外,為了提高熱補(bǔ)丁的安全性,還需要對(duì)補(bǔ)丁源代碼進(jìn)行危險(xiǎn)函數(shù)檢查,避免出現(xiàn)諸如strcpy等函數(shù)。發(fā)現(xiàn)代碼問(wèn)題反饋給開(kāi)發(fā)工程師,其對(duì)代碼進(jìn)行修改,直到存在的問(wèn)題全部解決。

        3 熱補(bǔ)丁的制作過(guò)程

        熱補(bǔ)丁分為三個(gè)層級(jí):函數(shù)熱補(bǔ)丁,模塊熱補(bǔ)丁(由多個(gè)函數(shù)熱補(bǔ)丁組成),熱補(bǔ)丁包(包含多個(gè)模塊熱補(bǔ)丁)?;诔掷m(xù)集成[7]的熱補(bǔ)丁開(kāi)發(fā)通常是制作熱補(bǔ)丁包。

        3.1 模塊熱補(bǔ)丁目錄結(jié)構(gòu)

        制作模塊熱補(bǔ)丁時(shí),需要?jiǎng)?chuàng)建“產(chǎn)品名_版本號(hào)_BASEVXWORKS模塊名”文件夾,用于存放相關(guān)文件與熱補(bǔ)丁文件。以UPE模塊為例,文件夾目錄結(jié)構(gòu)如表1所示。

        表1 UPE模塊熱補(bǔ)丁文件夾目錄結(jié)構(gòu)

        3.2 模塊熱補(bǔ)丁文件制作過(guò)程

        以UPE模塊為例,敘述模塊熱補(bǔ)丁文件制作過(guò)程。

        3.2.1 集成到ICP-CI工具進(jìn)行熱補(bǔ)丁文件編譯

        首先創(chuàng)建一個(gè)構(gòu)建工程:“產(chǎn)品名_版本號(hào)_PatchBuild”。在ICP-CI的任務(wù)管理頁(yè)面上配置編譯任務(wù)完成熱補(bǔ)丁源程序代碼編譯。配置任務(wù)以模塊為單位,在任務(wù)欄上選擇“compile”任務(wù)。具體配置如表2所示。

        表2 UPE模塊在ICP-CI頁(yè)面上配置“compile”任務(wù)

        持續(xù)集成工程師編寫相關(guān)的*.ini配置文件、Makefile文件、補(bǔ)丁編譯腳本和ANT腳本,啟動(dòng)相關(guān)程序完成補(bǔ)丁源程序代碼的編譯工作。將編譯生成的*.obj文件歸檔到UPEobj目錄下。

        3.2.2 模塊熱補(bǔ)丁文件的制作

        編譯工作完成之后,制作補(bǔ)丁中間文件和模塊UPE熱補(bǔ)丁文件。

        (1)根據(jù)*.obj文件的個(gè)數(shù),在UPEobj文件夾中生成從HP0001到HP000X的子目錄。熱補(bǔ)丁中間文件制作工具makepatch.exe通過(guò)補(bǔ)丁目標(biāo)文件*.obj生成與其對(duì)應(yīng)的熱補(bǔ)丁文件、符號(hào)表信息文件和制作熱補(bǔ)丁文件的過(guò)程日志文件。*.obj文件和生成的熱補(bǔ)丁中間文件存放在對(duì)應(yīng)的文件夾中。以HP 0001文件夾為例,文件夾中存放的文件如表3所示。

        表3 補(bǔ)丁中間文件的文件目錄

        (2)編寫批處理腳本,通過(guò)熱補(bǔ)丁中間文件生成模塊熱補(bǔ)丁文件。由于模塊熱補(bǔ)丁文件具有繼承性,即包含上一個(gè)版本熱補(bǔ)丁修復(fù)的產(chǎn)品缺陷,因此對(duì)非首次編譯的熱補(bǔ)丁文件而言,需要將前一個(gè)熱補(bǔ)丁版本的熱補(bǔ)丁中間文件與本次編譯生成的熱補(bǔ)丁中間文件合并起來(lái)生成目前版本的模塊熱補(bǔ)丁文件。模塊UPE的熱補(bǔ)丁文件是upe_patch.pat。該補(bǔ)丁文件歸檔到UPE elease文件夾中。

        3.3 熱補(bǔ)丁包打包

        軟件的所有模塊熱補(bǔ)丁文件制作完成后,將這些模塊熱補(bǔ)丁文件打包。由于熱補(bǔ)丁版本包也具有繼承性,即后一個(gè)版本的熱補(bǔ)丁版本包收編包含前一個(gè)版本包編譯生成的熱補(bǔ)丁文件。同時(shí)要更新熱補(bǔ)丁包版本號(hào)。

        (1)創(chuàng)建熱補(bǔ)丁包文件夾。

        熱補(bǔ)丁文件制作完成后,需要?jiǎng)?chuàng)建熱補(bǔ)丁包的文件夾。將各模塊熱補(bǔ)丁文件*.pat拷貝到熱補(bǔ)丁包文件夾的bin/new目錄下。若模塊補(bǔ)丁文件已經(jīng)更新,拷貝更新后模塊熱補(bǔ)丁文件;若沒(méi)有更新,拷貝原來(lái)的模塊熱補(bǔ)丁文件。將其他相關(guān)的文件拷貝到相應(yīng)的目錄下。

        (2)熱補(bǔ)丁包打包。

        修改打包配置文件autorun.ini:填寫本次版本號(hào)、基線版本號(hào)、源文件目錄和目的文件目錄。運(yùn)行打包工具packer.exe完成熱補(bǔ)丁版本包打包。熱補(bǔ)丁包制作完成后,補(bǔ)丁版本包的文件名為:產(chǎn)品名 版本號(hào) loadfiles.rar。

        4 熱補(bǔ)丁版本包的測(cè)試和發(fā)布

        熱補(bǔ)丁版本包制作完成后由產(chǎn)品經(jīng)理提交轉(zhuǎn)測(cè)試流程。測(cè)試經(jīng)理安排測(cè)試工程師與測(cè)試環(huán)境對(duì)補(bǔ)丁版本包進(jìn)行測(cè)試[14-16]。

        測(cè)試工程師根據(jù)該補(bǔ)丁版本需要修復(fù)的缺陷列表,設(shè)計(jì)相應(yīng)的測(cè)試用例,測(cè)試新增與待改進(jìn)的特性是否符合設(shè)計(jì)規(guī)格;還要根據(jù)基本測(cè)試用例完成補(bǔ)丁的基本功能測(cè)試,測(cè)試工作完成后,測(cè)試工程師提供測(cè)試報(bào)告。

        熱補(bǔ)丁測(cè)試分為三個(gè)層次:補(bǔ)丁函數(shù)測(cè)試、補(bǔ)丁模塊測(cè)試和補(bǔ)丁包測(cè)試。

        (1)補(bǔ)丁函數(shù)測(cè)試是最基礎(chǔ)的測(cè)試,補(bǔ)丁函數(shù)測(cè)試是函數(shù)缺陷修復(fù)、新增與待改進(jìn)的特性的測(cè)試。對(duì)于UPE模塊,通過(guò)基線文件upe.elf和四類中間文件(熱補(bǔ)丁文件patchHP000X.pat,符號(hào)表信息patchHP000X.SYM,日志文件patchHP000X.txt和編譯目標(biāo)文件*.obj)測(cè)試補(bǔ)丁函數(shù)。通過(guò)這四類文件可以方便測(cè)試補(bǔ)丁函數(shù),將測(cè)試結(jié)果及時(shí)反饋給補(bǔ)丁源程序代碼的開(kāi)發(fā)人員,修改代碼存在的各種問(wèn)題。這四類文件也有利于補(bǔ)丁包測(cè)試和補(bǔ)丁模塊測(cè)試中各種缺陷問(wèn)題的定位。

        (2)補(bǔ)丁模塊測(cè)試,對(duì)于UPE模塊,通過(guò)基線文件upe.elf和upe_patch.pat,對(duì)補(bǔ)丁模塊進(jìn)行功能、性能和兼容性的綜合測(cè)試。

        (3)補(bǔ)丁包測(cè)試,熱補(bǔ)丁包的測(cè)試是補(bǔ)丁包加載后綜合技術(shù)指標(biāo)的全面測(cè)試。

        完成熱補(bǔ)丁測(cè)試工作后,將相關(guān)文件和熱補(bǔ)丁版本包歸檔。產(chǎn)品經(jīng)理發(fā)布熱補(bǔ)丁包。

        5 熱補(bǔ)丁版本包的安裝和管理

        熱補(bǔ)丁通常有4個(gè)基本狀態(tài):加載,激活,去激活和卸載?;赩XWORKS系統(tǒng)的熱補(bǔ)丁包可以采用LMT(Local Maintenance Terminal)客戶端工具安裝和管理。LMT工具是指安裝了“本地維護(hù)終端”的軟件組,通過(guò)LMT工具的MML(Man-Machine Language)命令,可以對(duì)網(wǎng)元進(jìn)行相應(yīng)操作和維護(hù)。

        將熱補(bǔ)丁版本包解壓之后,使用FTP工具,打開(kāi)客戶端工具連接到主版本的單板,執(zhí)行MML命令進(jìn)行補(bǔ)丁熱的安裝和管理。執(zhí)行LOD TOBAM將熱補(bǔ)丁版本加載到硬盤,執(zhí)行LOD TOBP將熱補(bǔ)丁版本加載到FLASH。加載完成之后激活補(bǔ)丁,執(zhí)行CHK VERSION與DSP PATCH查看補(bǔ)丁版本號(hào),表示加載相應(yīng)的熱補(bǔ)丁版本成功。

        常用的補(bǔ)丁管理MML命令如下:

        DSP PATCH顯示補(bǔ)丁

        ACT PATCH 激活補(bǔ)丁

        DEA PATCH 去激活補(bǔ)丁

        CON PATCH 確認(rèn)補(bǔ)丁

        RVW PATCH 刪除補(bǔ)丁

        6 典型案例

        某公司采用軟件配置管理工具ClearCase和持續(xù)集成工具ICP-CI進(jìn)行基于VXWORKS系統(tǒng)的軟件熱補(bǔ)丁的制作。

        補(bǔ)丁包版本編號(hào)為V2.11.0_SPC101,共制作了10個(gè)模塊的熱補(bǔ)丁文件,收編了若干個(gè)來(lái)自各局點(diǎn)和內(nèi)部測(cè)試發(fā)現(xiàn)的軟件產(chǎn)品缺陷,并完成了熱補(bǔ)丁包打包以及所有的結(jié)果文件歸檔任務(wù)。補(bǔ)丁包發(fā)布后在各局點(diǎn)安裝使用,解決了存在的問(wèn)題。

        7 結(jié)束語(yǔ)

        熱補(bǔ)丁技術(shù)為嵌入式系統(tǒng)升級(jí)軟件和嵌入式系統(tǒng)進(jìn)行錯(cuò)誤動(dòng)態(tài)修復(fù)提供了一種技術(shù)方法。工作實(shí)踐表明,熱補(bǔ)丁技術(shù)具有實(shí)時(shí)修復(fù),且不影響嵌入式系統(tǒng)正常運(yùn)行的優(yōu)點(diǎn),對(duì)于VXWORKS系統(tǒng)的軟件采用熱補(bǔ)丁技術(shù),可以提高軟件的安全性和可靠性,同時(shí)降低軟件開(kāi)發(fā)成本。文中采用持續(xù)集成技術(shù)開(kāi)發(fā)熱補(bǔ)丁包,可以提高軟件熱補(bǔ)丁的質(zhì)量和開(kāi)發(fā)效率,可以快速向開(kāi)發(fā)工程師反饋軟件源代碼的缺陷,便于開(kāi)發(fā)工程師及時(shí)修復(fù)源代碼的缺陷,同時(shí)也給項(xiàng)目的管理提供了很好的保證。

        [1] Grubb P,Takang A A.軟件維護(hù):概念與實(shí)踐[M].韓 柯,孟海軍,譯.第2版.北京:電子工業(yè)出版社,2004.

        [2] 姜 文,劉立康.現(xiàn)代應(yīng)用軟件的維護(hù)與技術(shù)支持[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(4):116-120.

        [3] 姜 文,劉立康.應(yīng)用軟件維護(hù)中的補(bǔ)丁開(kāi)發(fā)與管理[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(11):11-16.

        [4] 程友清.嵌入式網(wǎng)絡(luò)設(shè)備軟件熱補(bǔ)丁技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2013,30(1):28-31.

        [5] 常莉莉.分布式系統(tǒng)熱補(bǔ)丁技術(shù)的研究與實(shí)現(xiàn)[D].廣州:中山大學(xué),2006.

        [6] 雷震宇.嵌入式網(wǎng)絡(luò)設(shè)備在線熱升級(jí)的研究及實(shí)現(xiàn)[D].武漢:武漢郵電科學(xué)研究院,2012.

        [7]RiverW.Vxworks程序員指南[M].北京:清華大學(xué)出版社,2003.

        [8] 陳智育,溫彥軍,陳 琪.Vxworks程序開(kāi)發(fā)實(shí)踐[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ù)庫(kù)補(bǔ)丁問(wèn)題研究[J].電子設(shè)計(jì)工程,2014,22(20):10-13.

        [12]ShahR.Oracleondemandbestpractices:criticalpatchupdate[R].[s.l.]:OracleCorporation,2008.

        [13] 姜 文,劉立康.基于VxWorks平臺(tái)的軟件重量級(jí)靜態(tài)檢查[J].微型機(jī)與應(yīng)用,2016,35(6):79-81.

        [14] 蔡建平.嵌入式軟件測(cè)試實(shí)用技術(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

        時(shí)間:2017-02-17

        國(guó)家部委基礎(chǔ)科研計(jì)劃:國(guó)防預(yù)研基金項(xiàng)目(A1120110007)

        姜 文(1986-),女,碩士研究生,工程師,CCF會(huì)員,研究方向?yàn)閳D像處理、數(shù)據(jù)庫(kù)應(yīng)用和軟件工程等;劉立康,副教授,研究方向?yàn)閿?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

        猜你喜歡
        補(bǔ)丁代碼軟件
        禪宗軟件
        軟件對(duì)對(duì)碰
        健胃補(bǔ)丁
        學(xué)與玩(2018年5期)2019-01-21 02:13:06
        繡朵花兒當(dāng)補(bǔ)丁
        文苑(2018年18期)2018-11-08 11:12:30
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        補(bǔ)丁奶奶
        幼兒畫刊(2018年7期)2018-07-24 08:25:56
        談軟件的破解與保護(hù)
        精品(2015年9期)2015-01-23 01:36:01
        少妇bbwbbw高潮| 国产 精品 自在 线免费| 亚洲av无码一区东京热| 狠狠色噜噜狠狠狠狠7777米奇| 婷婷丁香社区| 欧美亚洲日韩国产人成在线播放| 亚洲天堂线上免费av| 蜜桃tv在线免费观看| 国内精品久久久久伊人av| 精品国产av最大网站| 国产精品天天看大片特色视频 | 国产福利一区二区三区在线观看 | 五月激情综合婷婷六月久久| 精品久久久久久无码人妻蜜桃| 97精品国产手机| 亚洲不卡电影| 中文字幕 在线一区二区| 亚洲中文字幕人成乱码在线| 亚洲av日韩精品久久久久久a| 六月婷婷久香在线视频| 久久精品国产免费观看99| 国产女主播在线免费观看| 亚洲国产中文字幕精品| 亚洲乱亚洲乱妇无码麻豆| 欧美熟妇色ⅹxxx欧美妇 | 99久久国产综合精品五月天| jlzzjlzz全部女高潮| 日韩精品成人一区二区在线观看| 精品久久综合日本久久综合网| 欧美成人www在线观看| 国产午夜精品一区二区三区不卡| 久久与欧美视频| 一区二区日本免费观看| 337p日本欧洲亚洲大胆色噜噜 | 久久久久国产精品熟女影院| 无码高潮久久一级一级喷水| 亚洲狠狠久久五月婷婷| 豆国产96在线 | 亚洲| 男女啪啪永久免费观看网站| 97久久久久国产精品嫩草影院 | 亚洲av无码专区国产不卡顿|