白 亮,邱 源,韋 杰,孫逸帆,高 潔
(1.上海航天智能計算技術(shù)重點實驗室,上海 201109;2.上海航天電子技術(shù)研究所,上海 201109)
星載嵌入式操作系統(tǒng)處于遠(yuǎn)程遙控的環(huán)境中,其軟件的維護(hù)與修復(fù)相較于本地系統(tǒng)故障恢復(fù)要困難許多,無法進(jìn)行手工維護(hù),只能依靠操作系統(tǒng)的自我維護(hù)功能,以及接受地面上傳的有限維護(hù)指令進(jìn)行運行過程中的動態(tài)自我修復(fù)和更新。
針對星載嵌入式操作系統(tǒng)上運行的軟件在長時間的運行過程中不可避免出現(xiàn)“軟件衰老”現(xiàn)象[1],即伴隨著軟件的運行,系統(tǒng)資源逐漸耗盡或運行錯誤逐漸積累所導(dǎo)致的系統(tǒng)性能持續(xù)下降甚至停機(jī)的現(xiàn)象,采取在軌可重構(gòu)措施來恢復(fù)軟件性能。
星載嵌入式操作系統(tǒng)工作于惡劣環(huán)境中,星上的設(shè)備暴露于外太空,易受到外部環(huán)境的影響,從而對系統(tǒng)產(chǎn)生影響。而操作系統(tǒng)負(fù)責(zé)管理平臺所有外部設(shè)備,系統(tǒng)的可靠性和安全性對操作系統(tǒng)的管理具有依賴性[2]。而且,操作系統(tǒng)在運行過程中,也會暴露出一定的設(shè)計缺陷[3],或是測試過程中沒有發(fā)現(xiàn)和排除潛在設(shè)計缺陷。但是可以通過在軌可重構(gòu)技術(shù)對軟件進(jìn)行修正與完善,進(jìn)一步提高星載系統(tǒng)的安全性和可靠性。同時,還可以針對在軌運行衛(wèi)星,通過可重構(gòu)的方式,基于現(xiàn)有功能基礎(chǔ),實現(xiàn)衛(wèi)星功能的升級和擴(kuò)展,實現(xiàn)衛(wèi)星的“App”(應(yīng)用程序)式的快速開發(fā)和快速集成。
隨著計算機(jī)技術(shù)的發(fā)展,基于動態(tài)庫的可重構(gòu)技術(shù)被廣泛應(yīng)用于商業(yè)等各個領(lǐng)域,主要由于動態(tài)鏈接庫與主程序之間通過接口調(diào)用產(chǎn)生依賴關(guān)系,只要保證動態(tài)鏈接庫輸出接口不變,更換動態(tài)庫不會對主程序造成任何影響,可以提高程序的可維護(hù)性和可擴(kuò)展性;而且不同編程語言編寫的程序,只要遵守相同的應(yīng)用程序調(diào)用約定(Application Binary Interface,ABI),就可以調(diào)用同一個動態(tài)鏈接庫;使用動態(tài)鏈接庫,適用于大規(guī)模的軟件開發(fā),使得開發(fā)過程獨立、耦合度小,便于多人團(tuán)隊間進(jìn)行協(xié)同開發(fā)和測試;同時,多個應(yīng)用程序使用相同的動態(tài)鏈接庫時,在磁盤中可以只存在一份動態(tài)鏈接庫文件,相比其他技術(shù),可以節(jié)約磁盤空間?;谏鲜鰞?yōu)點,在現(xiàn)代化大型軟件開發(fā)中,大量應(yīng)用動態(tài)鏈接庫技術(shù)。而且利用動態(tài)鏈接庫技術(shù)的一個最大優(yōu)點在于,針對動態(tài)鏈接庫更新升級后不用重新啟動主程序,只需將更新的動態(tài)鏈接庫重新載入程序的內(nèi)存空間即可。基于該特點,將動態(tài)鏈接庫技術(shù)應(yīng)用于星載嵌入式軟件的在軌重構(gòu)實現(xiàn)中,既可以達(dá)到上述所有優(yōu)勢,又不需要星載系統(tǒng)軟件重新啟動,即在軌重構(gòu)的實現(xiàn)不會對既定星載任務(wù)(如程控、數(shù)傳、熱控等任務(wù))運行產(chǎn)生影響。基于動態(tài)鏈接庫技術(shù),在軌重構(gòu)包是以文件的形式存在,即使衛(wèi)星發(fā)生異常重啟后,前一次在軌重構(gòu)生成的補(bǔ)丁包仍然在,且重啟運行后,直接使用重構(gòu)后的程序,使得在軌重構(gòu)技術(shù)對衛(wèi)星可靠安全在軌運行提供支撐。
隨著星載系統(tǒng)的發(fā)展,星載嵌入式軟件在軌可重構(gòu)技術(shù)也在持續(xù)不斷發(fā)展。目前常用的在軌可重構(gòu)技術(shù)有基于RAM 型和微重啟等。隨著高性能處理器的發(fā)展,傳統(tǒng)在軌可重構(gòu)方式能否在高性能處理器平臺上繼續(xù)適用,需要作全面評估和驗證測試。本文所提出的方案,以高性能處理器平臺為出發(fā)點,進(jìn)行設(shè)計、實現(xiàn)和驗證。針對在軌衛(wèi)星通過實際在軌可重構(gòu)操作后,進(jìn)一步驗證本方案的有效性、安全性和可靠性。
本文中設(shè)計了一種基于星載嵌入式操作系統(tǒng)的可重構(gòu)軟件框架,嵌入式操作系統(tǒng)的層次如圖1所示。本軟件框架實現(xiàn)的硬件平臺基于國產(chǎn)化處理器國微SM750,操作系統(tǒng)為風(fēng)云翼輝(AIC-OS)嵌入式操作系統(tǒng)1.11.0,開發(fā)環(huán)境為RealEvo-IDE 3.9.10。整個系統(tǒng)可分為4 個層次:處理器層、操作系統(tǒng)內(nèi)核服務(wù)及BSP 層、中間件層和應(yīng)用層。其中,在本系統(tǒng)中中間件層由動態(tài)鏈接庫的形式來實現(xiàn)。應(yīng)用層由嵌入式軟件框架和各個應(yīng)用組件構(gòu)成,在不同時刻加載不同應(yīng)用組件時,應(yīng)用層功能將可以隨之發(fā)生變化而無需重新加電或復(fù)位操作系統(tǒng),從而實現(xiàn)了嵌入式軟件的功能可重構(gòu)。而可重構(gòu)軟件框架作為一個中間層的形式運行在操作系統(tǒng)與應(yīng)用組件之間。一方面通過對應(yīng)用組件的動態(tài)加卸載、系統(tǒng)資源管理、多組件管理等功能實現(xiàn)了嵌入式軟件功能的可重構(gòu);另一方面它為應(yīng)用組件屏蔽了底層細(xì)節(jié),使之與硬件和操作系統(tǒng)隔離,從而可以實現(xiàn)組件的二進(jìn)制級復(fù)用。針對通用功能組件,無需重新修改和編譯,直接通過多組件動態(tài)重構(gòu)即可完成應(yīng)用軟件功能的重新定義,降低開發(fā)成本,同時縮短軟件開發(fā)周期。
圖1 星載軟件可重構(gòu)框架層次圖Fig.1 Hierarchical diagram of reconfigurable framework for on-board software
嵌入式操作系統(tǒng)微重啟的可重構(gòu)方案采取可遞歸恢復(fù)框架實現(xiàn),具體由故障檢測代理、恢復(fù)管理器和恢復(fù)代理3 個模塊組成,如圖2 所示。故障監(jiān)測代理負(fù)責(zé)實時監(jiān)測系統(tǒng)的運行狀態(tài),查找系統(tǒng)故障并將相關(guān)信息傳送給恢復(fù)管理器,故障監(jiān)測代理將所有系統(tǒng)運行狀態(tài)的變化信息遞交給恢復(fù)管理器[4]?;謴?fù)管理器動態(tài)地保存系統(tǒng)的故障傳播信息,當(dāng)它接收到從檢測代理發(fā)送過來的故障信息時,采用自動故障路徑推斷(Automatic Failure-Path Inference,AFPI)恢復(fù)策略,針對給定的遞歸重啟樹,計算最優(yōu)的遞歸恢復(fù)路徑[5],并觸發(fā)恢復(fù)代理,實現(xiàn)組件或者嵌入式操作系統(tǒng)的微重啟操作。通過裁剪嵌入式操作系統(tǒng)內(nèi)核,將嵌入式操作系統(tǒng)原有功能模塊上移至用戶態(tài)組件層,同時確保裁剪后的嵌入式操作系統(tǒng)內(nèi)核能夠穩(wěn)定運行。將微重啟功能組件置于內(nèi)核內(nèi),使微重啟功能組件的權(quán)限高于功能性組件,從而有效地控制功能性組件的微重啟動作。
圖2 嵌入式操作系統(tǒng)微重啟的可重構(gòu)實現(xiàn)方案Fig.2 Reconfigurable scheme for embedded operating system micro-restart
基于RAM 型的軟件動態(tài)升級主要過程如下:在軌運行系統(tǒng)中發(fā)現(xiàn)軟件故障或軟件缺陷后,由開發(fā)人員在軟件開發(fā)機(jī)中修改軟件,將修改信息形成軟件補(bǔ)丁,通過在地面目標(biāo)機(jī)中進(jìn)行模擬運行測試,驗證本次形成的軟件補(bǔ)丁的有效性和正確性;然后提交到地面監(jiān)控系統(tǒng),由地面監(jiān)控系統(tǒng)發(fā)送至在軌設(shè)備上;接著在軌設(shè)備對在軌系統(tǒng)進(jìn)行動態(tài)修改,通過反饋至地面監(jiān)控系統(tǒng)在軌可重構(gòu)的信息。
為了滿足上述需求,設(shè)計了在軌軟件維護(hù)系統(tǒng),其功能分解如圖3 所示,3 個功能模塊分別為:1)補(bǔ)丁生成模塊,包括補(bǔ)丁信息獲取、補(bǔ)丁創(chuàng)建和補(bǔ)丁發(fā)送等;2)在軌修改模塊,包括補(bǔ)丁接收、變量修改、代碼修改、任務(wù)處理等;3)維護(hù)監(jiān)控模塊,包括維護(hù)信息反饋、反饋信息接收與處理等。
圖3 基于RAM 型軟件動態(tài)升級的可重構(gòu)方案Fig.3 Reconfigurable scheme based on the dynamic upgrade of RAM-type software
在圖3 中,基于RAM 型的軟件動態(tài)升級實現(xiàn)可重構(gòu)方案由軟件開發(fā)機(jī)和地面目標(biāo)機(jī)兩個子系統(tǒng)組成,整個系統(tǒng)各功能模塊分布于各個子系統(tǒng)之上,開發(fā)機(jī)和地面目標(biāo)機(jī)之間通過以太網(wǎng)或者串口進(jìn)行通信。兩個子系統(tǒng)協(xié)同工作,共同完成基于RAM 型的軟件動態(tài)升級可重構(gòu)驗證[6]。
星載軟件在軌可重構(gòu)是通過遙控注數(shù)的方式,將軟件的可執(zhí)行代碼注入到星載計算機(jī)中,替換原有模塊實現(xiàn)。風(fēng)云翼輝嵌入式操作系統(tǒng)在SM750平臺實現(xiàn)了虛擬內(nèi)存管理技術(shù),支持應(yīng)用軟件以動態(tài)加載的方式設(shè)計實現(xiàn)和運行。
動態(tài)加載意味著編譯生成的可執(zhí)行目標(biāo)文件與地址無關(guān),則可以利用動態(tài)鏈接庫實現(xiàn)對星載應(yīng)用軟件中特定功能的封裝[7]。將具有相對獨立功能的模塊編寫為動態(tài)鏈接庫,應(yīng)用軟件在實現(xiàn)需求中定義的功能時,為滿足特定的功能,可將具有該功能的動態(tài)庫鏈接進(jìn)來,從而星載軟件最后的形態(tài)是以主程序加若干動態(tài)鏈接庫呈現(xiàn)。
動態(tài)庫中只實現(xiàn)特定功能,其規(guī)??梢宰龅幂^小,從而減輕每次在軌上注時信道的壓力。而且在功能升級或者缺陷修復(fù)實現(xiàn)可重構(gòu)時,可以只針對單一模塊進(jìn)行,從而提高星載軟件在軌可重構(gòu)方案的安全性和可靠性。
基于動態(tài)庫實現(xiàn)星載軟件可重構(gòu)流程主要包括重構(gòu)軟件準(zhǔn)備、重構(gòu)軟件分發(fā)、重構(gòu)軟件加載和重構(gòu)結(jié)果反饋4個步驟。軟件重構(gòu)流程如圖4所示。
圖4 基于動態(tài)庫實現(xiàn)可重構(gòu)方案Fig.4 Reconfigurable scheme based on the dynamic library
相對于重啟整個系統(tǒng)而言,微重啟花費的代價較小。同時,重啟單個服務(wù)的速度遠(yuǎn)比重啟整個系統(tǒng)快得多,并且微重啟僅對重啟的服務(wù)和服務(wù)的進(jìn)程造成影響,而不會影響到系統(tǒng)中其他服務(wù)的正常運行。但是該種方案僅適用于部分?jǐn)?shù)據(jù)不正常,重啟后修復(fù)原來錯誤的數(shù)據(jù),而針對軟件缺陷或者軟件錯誤,該方案無法徹底修復(fù)。
基于RAM 型的軟件動態(tài)升級實現(xiàn)可重構(gòu)過程的可靠性和安全性要求極高,一旦出現(xiàn)失誤有可能導(dǎo)致整個系統(tǒng)軟件的失效。
與地面系統(tǒng)不同,受天地通信速率、入站頻率及過站時間等多方面因素的限制,星載軟件的在軌升級很難達(dá)到與地面軟件升級相同的實時性。而且,上注的星載軟件可重構(gòu)的內(nèi)容存儲于內(nèi)存中,軟件復(fù)位后,可重構(gòu)的內(nèi)容不復(fù)存在,還需要重新上傳。
基于動態(tài)庫實現(xiàn)的可重構(gòu)方案,將已存在于在軌設(shè)備上的不同模塊進(jìn)行動態(tài)的裝載與卸載,以提供不同功能,或提高系統(tǒng)運行速度。借助文件系統(tǒng)隨時停止、加載、運行某個或某幾個特定模塊,而不會影響系統(tǒng)當(dāng)前運行的其他功能,且單個模塊編譯生成的目標(biāo)文件都比較小,狀態(tài)控制和維護(hù)相對比較容易。
通過上述分析可知:使用動態(tài)庫中間件的形式應(yīng)用于目前星載系統(tǒng)中,具有較高的可靠性和安全性。而且采用此方法實現(xiàn)星載軟件可重構(gòu),具有較強(qiáng)的軟件可擴(kuò)展性,易于實現(xiàn)在軌星載軟件功能的全部替換和特定功能的可重構(gòu)。
3.1.1 方案設(shè)計
本設(shè)計中,采用基于動態(tài)庫的形式實現(xiàn)星載軟件的可重構(gòu),利用嵌入式操作系統(tǒng)提供的動態(tài)加載功能,對在軌星載軟件的特定功能實現(xiàn)可重構(gòu),修復(fù)已有的軟件缺陷或者漏洞。
星載軟件在設(shè)計初時,已經(jīng)將部分功能相對獨立的部分編寫成可鏈接的動態(tài)庫,后續(xù)在軌可重構(gòu)既可以針對每個獨立的動態(tài)庫,也可以針對主模塊進(jìn)行重構(gòu),設(shè)計方案如圖5 所示。
圖5 在軌可重構(gòu)設(shè)計方案Fig.5 On-orbit reconfigurable design scheme
3.1.2 數(shù)據(jù)包格式設(shè)計
根據(jù)3.1.1 節(jié)方案所述,針對需要實施在軌可重構(gòu)的模塊,編譯生成可執(zhí)行目標(biāo)文件后,需要將該文件中的二進(jìn)制數(shù)據(jù)按著標(biāo)準(zhǔn)國際空間數(shù)據(jù)系統(tǒng)咨詢委員會(Consultative Committee for Space Data Systems,CCSDS)協(xié)議封裝為遙控包。為可重構(gòu)設(shè)計了對應(yīng)的上注重構(gòu)數(shù)據(jù)包格式如圖6 所示。
圖6 可重構(gòu)上注數(shù)據(jù)包格式Fig.6 Reconfigurable upload packet format
在圖6 中,首包格式同后續(xù)包差異較大,將地面生成的可執(zhí)行目標(biāo)文件所屬的進(jìn)程編號、文件索引,以及文件的消息摘要算法(Message Digest Algorithm MD5,MD5)值打入首包。將這些信息上注給星載計算機(jī),作為后續(xù)文件完整性校驗的依據(jù)。
引用該算法,是因為MD5 算法可以將任意長度的輸入串經(jīng)過計算得到固定長度的輸出,而且只有在明文相同的情況下,才能等到相同的密文,并且這個算法是不可逆的,即便得到了加密以后的密文,也不可能通過解密算法反算出明文。針對文件完整性和安全性時,具有突出的優(yōu)點。
在上注的每一個數(shù)據(jù)包中都有包序號,作為后續(xù)文件完整性校驗和接收結(jié)束的依據(jù)。當(dāng)接收結(jié)束后,通過逐一判斷接收到包序號,當(dāng)發(fā)現(xiàn)有缺包的情況時,會將缺少的包序號打入遙測量下傳,地面可以通過該遙測量確定補(bǔ)發(fā)動作。
3.1.3 實施流程
可重構(gòu)數(shù)據(jù)包生成后,將這些數(shù)據(jù)包當(dāng)作正常的遙控注數(shù)包,當(dāng)衛(wèi)星在測控弧段內(nèi)時,上注給需要重構(gòu)的在軌衛(wèi)星,具體的實施流程如圖7 所示。
圖7 可重構(gòu)實施流程Fig.7 Reconfigurable implementation flow chart
3.1.4 可靠性和安全性保證
衛(wèi)星在軌自主運行時,無法像地面測試階段實時監(jiān)視其運行狀態(tài),只能通過有限的下行遙測量監(jiān)控其運行狀態(tài)[8]。本方案設(shè)計中,設(shè)計了相應(yīng)的可重構(gòu)模塊的遙測量,包括正確包計數(shù)、錯誤包計數(shù)、錯誤包編號、可重構(gòu)的模塊編號等遙測量。在遙控上注過程中,可以通過實時遙測查看當(dāng)前在軌可重構(gòu)情況。當(dāng)有數(shù)據(jù)包校驗錯誤,會將錯誤包的包號下傳,此時,地面只需要補(bǔ)發(fā)錯誤的單個數(shù)據(jù)包,即可修復(fù)上注錯誤。
在上注的每包遙控包末尾都有相應(yīng)的CRC 值校驗,可以完成本包數(shù)據(jù)的正確性校驗。上注的數(shù)據(jù)并不是立即寫入文件系統(tǒng),而是暫存在內(nèi)存空間,當(dāng)接收完全部的數(shù)據(jù)包后,通過對整個文件的完整性校驗通過后,再將全部數(shù)據(jù)寫入文件系統(tǒng),形成對應(yīng)的文件,保證生成的文件的完整性。
每次實施在軌重構(gòu)時,都會將之前的文件存儲為備份版本,并不會自主刪除。當(dāng)啟動重構(gòu)后的模塊運行后,通過下行遙測發(fā)現(xiàn)其功能不符合預(yù)期時,可以進(jìn)行版本回退,保證星載系統(tǒng)軟件的安全。
在文件系統(tǒng)中,針對每一份可執(zhí)行目標(biāo)文件,都有相應(yīng)的出廠版本,當(dāng)某次可重構(gòu)實施過程中出現(xiàn)失誤,造成星載系統(tǒng)軟件損壞[9]。此時,將整星進(jìn)行瞬時斷電一次,全部可執(zhí)行目標(biāo)文件回到出廠版本,保證整星的安全。運行正常后,可以通過遙測上注,指定單個的應(yīng)用或者某個動態(tài)庫使用最后可重構(gòu)后的版本,啟動最新功能。
初始化時,針對需要在重構(gòu)的模塊函數(shù)進(jìn)行注冊,形成函數(shù)表[8]。在某一時刻,需要針對某一函數(shù)進(jìn)行重構(gòu)時,通過遙控命令的方式,完成新的模塊函數(shù)編成動態(tài)鏈接庫上載,星上系統(tǒng)根據(jù)相關(guān)信息打開動態(tài)鏈接庫,映射對應(yīng)函數(shù),替換已經(jīng)創(chuàng)建函數(shù)表中對應(yīng)函數(shù)指針,完成可重構(gòu)。
為實現(xiàn)在AIC-OS 操作系統(tǒng)下的在軌可重構(gòu),需要把即將重構(gòu)的模塊編寫到動態(tài)鏈接庫中[10],生成一個動態(tài)鏈接庫文件,通過上行通道,將生成的動態(tài)鏈接庫文件上傳到星載計算機(jī)的文件系統(tǒng)中。當(dāng)計算機(jī)收到重構(gòu)遙控命令時,將接收文件存儲到文件系統(tǒng)中,并根據(jù)遙控命令類型,分別通知相應(yīng)進(jìn)程,同時分別打開動態(tài)鏈接庫,實現(xiàn)對應(yīng)函數(shù)的映射。
為實現(xiàn)將目前定義的確定函數(shù)調(diào)用同重構(gòu)后對應(yīng)的函數(shù)調(diào)用間的無縫銜接,特定義如圖8 所示的結(jié)構(gòu)體。其中,name 成員為該確定函數(shù)的名稱,名稱是實現(xiàn)正確映射的關(guān)鍵,所以名稱一定要保證正確;ready 標(biāo)志只是用來表示是否映射成功,可以忽略不用;com_ptr 為函數(shù)指針,用于表示在沒有可重構(gòu)之前的函數(shù)指針,類型為void*(*)(void*),即輸入?yún)?shù)為void*類型,返回類型為void*類型的函數(shù)指針,將輸入?yún)?shù)定義為void*類型的原因是為兼容不同函數(shù)對輸入?yún)?shù)類型的限定。當(dāng)有多個參數(shù)時,可以定義為結(jié)構(gòu)體,調(diào)用函數(shù)時,只需要將該結(jié)構(gòu)體傳入即可。new_ptr 類型同com_ptr,用于表示當(dāng)發(fā)生重構(gòu)時新映射的函數(shù)指針。
圖8 實現(xiàn)可重構(gòu)的結(jié)構(gòu)體Fig.8 Reconfigurable structure
這樣的結(jié)構(gòu)定義可以實現(xiàn)對多個模塊進(jìn)行重構(gòu)[11],將多個可重構(gòu)對象組成一個數(shù)組,根據(jù)索引進(jìn)行相應(yīng)的替換,如 onboard_func_obj_t onboard_func_obj[12]。當(dāng)然,這個索引和對應(yīng)的函數(shù)之前的關(guān)系需要自己定好??芍貥?gòu)模塊調(diào)用示例如圖9 所示。
圖9 實現(xiàn)可重構(gòu)的函數(shù)調(diào)用示例Fig.9 Example of implementing a reconfigurable function call
可重構(gòu)驗證過程中,分別給對應(yīng)進(jìn)程使用了不同的動態(tài)鏈接庫,即各自使用一個動態(tài)鏈接庫文件。其中,一個進(jìn)程中將要實現(xiàn)可重構(gòu)的函數(shù)定義如圖10 所示。
圖10 需要重構(gòu)進(jìn)程的原函數(shù)Fig.10 Original function of the reconstruction process
當(dāng)上位機(jī)發(fā)送完遙控數(shù)據(jù)包后,嵌入式操作系統(tǒng)負(fù)責(zé)監(jiān)視遙控信息的線程將動態(tài)鏈接庫文件寫入文件系統(tǒng)中,主動通知需要重構(gòu)的進(jìn)程,當(dāng)需要重構(gòu)的進(jìn)程收到該信號后,調(diào)用dlopen()打開動態(tài)鏈接庫文件[12],對相應(yīng)的函數(shù)進(jìn)行映射,運行結(jié)果如圖11 所示。
圖11 實現(xiàn)可重構(gòu)后的運行結(jié)果Fig.11 Results after reconfiguration
運行結(jié)果顯示,利用動態(tài)庫形式,能夠較便捷地實現(xiàn)星載軟件的可重構(gòu)。
星載軟件的可重構(gòu)機(jī)制對提高整星系統(tǒng)安全性和可靠性有著舉足輕重的作用,并為衛(wèi)星長期在軌穩(wěn)定運行和在軌任務(wù)的擴(kuò)展提供保障。本文對3種實現(xiàn)星載軟件可重構(gòu)方案的進(jìn)行優(yōu)缺點比較,選擇利用動態(tài)庫形式實現(xiàn)。詳細(xì)闡述了基于動態(tài)庫形式的星載軟件可重構(gòu)實現(xiàn)方案、數(shù)據(jù)包格式、實施流程及實施過程中可靠性和安全性的保證。通過具體的實例,完成基于動態(tài)庫的星載軟件可重構(gòu)驗證。結(jié)果表明:基于動態(tài)庫形式的可重構(gòu)機(jī)制的運用,可以有效豐富和擴(kuò)展星載軟件開發(fā)模式和架構(gòu)設(shè)計,為未來實現(xiàn)“App”式的星載軟件開發(fā)奠定基礎(chǔ)。本重構(gòu)實現(xiàn)方案可以有效提升在軌衛(wèi)星實現(xiàn)星載軟件可重構(gòu)過程中的安全性和可靠性。