專利名稱:用于航天計算機的VxWorks操作系統(tǒng)裁剪定制方法
技術領域:
本發(fā)明涉及實時操作系統(tǒng)的剪裁定制技術,具體涉及一種用于航天計算機的 Vxfforks操作系統(tǒng)裁剪定制方法。
背景技術:
近來,隨著衛(wèi)星應用的日益廣泛,衛(wèi)星的生產周期日益縮短,星載計算機軟件的功能日趨復雜,亟需采用基于實時操作系統(tǒng)尤其是VxWorks操作系統(tǒng)的應用軟件開發(fā)平臺進行軟件開發(fā),并需要對實 時操作系統(tǒng)進行有針對性的配置剪裁?,F(xiàn)有操作系統(tǒng)的配置剪裁方式,一般采用操作系統(tǒng)的開發(fā)工具進行模塊級裁剪, 即將不需要的模塊刪除,但是該刪除是在開發(fā)工具中執(zhí)行的,因此裁剪只是形式上的剪除, 在操作系統(tǒng)內核庫中該模塊仍然存在,只是不被調用。因此采用開發(fā)工具進行配置剪裁的缺陷是(1)被剪裁掉的模塊未從操作系統(tǒng)內核庫中刪除,作為冗余代碼存在。冗余代碼較多,在生成的操作系統(tǒng)中將包含很多不需要的功能,占用很大一部分程序存儲器空間。而在航天應用中,程序存儲器和數(shù)據(jù)存儲器資源受限,需要操作系統(tǒng)軟件具備精簡的內核和組件,具備高實時性,所以有必要對使用的操作系統(tǒng)進行實質上而非形式上的精簡、裁剪以及相應配置。(2)因為冗余代碼的存在,在應用軟件發(fā)生異常時,可能進入冗余代碼區(qū)域,引起系統(tǒng)異常。例如如果被剪裁掉的模塊中的代碼違犯了航天編程規(guī)范,當軟件執(zhí)行異常后,可能調用被剪裁掉的模塊中的非法代碼,從而引起系統(tǒng)的異常。因此,為適用于航天應用,還需要對操作系統(tǒng)進行改進,使得軟件執(zhí)行異常后,也不會執(zhí)行到違犯了航天編程規(guī)范的代碼,提高操作系統(tǒng)的可靠性、安全性。
發(fā)明內容
有鑒于此,本發(fā)明提供了一種用于航天計算機的VxWorks操作系統(tǒng)裁剪定制方法,能夠解決星載計算機操作系統(tǒng)軟件占用存儲空間過大、冗余模塊過多的問題,以及解決代碼不符合航天器軟件編程規(guī)范等問題,而且作為精簡的操作系統(tǒng)內核,裁剪方案還能夠保證軟件的可靠性、實時性和安全性,從而實現(xiàn)滿足航天應用的高可靠、高安全、精簡定制的VxWorks操作系統(tǒng)。該方案是這樣實現(xiàn)的一種用于航天計算機的VxWorks操作系統(tǒng)裁剪定制方法,包括步驟一對原始的VxWorks操作系統(tǒng)進行源碼模塊級剪裁;1)在開發(fā)環(huán)境提供的源碼目錄src下,將與星載計算機所采用的處理器的體系結構無關的內核源碼目錄以及與應用不相關的操作系統(tǒng)組件對應的內核源碼目錄裁剪掉;2)在開發(fā)環(huán)境提供的源碼目錄src下,將與星載計算機所需應用不相關的操作系統(tǒng)組件對應的源碼文件裁剪掉;
3)根據(jù)Makefile中記載的源碼編譯規(guī)則,將Makefile指定的不被編譯的源碼文件裁剪掉; 步驟二 進行源碼函數(shù)級剪裁;1)通過系統(tǒng)軟件和應用軟件的分析,將內核源碼中不會被系統(tǒng)軟件和應用軟件調用的函數(shù)刪除;2)根據(jù)被裁剪的操作系統(tǒng)組件,將開發(fā)環(huán)境配置目錄srcAconfig下與被裁剪的操作系統(tǒng)組件對應的組件配置源文件刪除;3)在頭文件目錄\h下,對于被裁剪的操作系統(tǒng)組件,將被裁剪的操作系統(tǒng)組件的頭文件刪除;對于被裁剪的函數(shù),在頭文件中將被裁剪的函數(shù)及其相應的變量聲明刪除;4)將保留的頭文件和源文件中與處理器體系結構不相關的條件編譯刪除;5)根據(jù)被裁剪的操作系統(tǒng)組件,將板級支持包BSP中與被裁剪的操作系統(tǒng)組件對應的宏定義和組件初始化代碼刪除;步驟三進行源碼可靠性優(yōu)化;根據(jù)航天器軟件編程規(guī)范,對裁剪后操作系統(tǒng)源碼進行檢查,將違犯航天器軟件編程規(guī)范的源碼進行修正;步驟四對裁剪后的操作系統(tǒng)源碼進行完整編譯,生成操作系統(tǒng)內核庫。較佳地,該方法進一步包括步驟五使用testbed工具對操作系統(tǒng)源碼進行單元測試,由航天指定軟件評測單位進行軟件第三方評測;使用裁剪后的操作系統(tǒng)內核庫與應用軟件聯(lián)合編譯,生成可執(zhí)行文件,燒入星載計算機的程序存儲器芯片,然后進行測試,驗證裁剪后的操作系統(tǒng)軟件功能、性能是否正常。較佳地,在步驟一中,將與串行通信相關的源文件進行了剪裁;同時對操作系統(tǒng)軟件進行更改,使得串行通信中斷處理由操作系統(tǒng)軟件接管,使用消息隊列在任務之間進行數(shù)據(jù)交換,使用輔助時鐘進行超時計時。有益效果本發(fā)明通過對VxWorks操作系統(tǒng)實現(xiàn)原理及模塊組成進行分析,根據(jù)星載計算機的應用對VxWorks操作系統(tǒng)進行源碼級的裁剪和定制,保留星載計算機系統(tǒng)應用所需的功能模塊,將冗余功能模塊與代碼徹底裁剪掉,并且根據(jù)航天器軟件編程規(guī)范對代碼進行優(yōu)化,提高可靠性,滿足星載計算機的應用需求。
具體實施例方式下面舉實施例,對本發(fā)明進行詳細描述。根據(jù)本發(fā)明VxWorks操作系統(tǒng)的裁剪方案,本發(fā)明主要包含源碼模塊級剪裁、源碼函數(shù)級裁剪及可靠性優(yōu)化三個部分,具體如下一、對原始的VxWorks操作系統(tǒng)進行源碼的模塊級剪裁(1)根據(jù)星載計算機所采用處理器的體系結構和應用需求,確定操作系統(tǒng)模型 (系統(tǒng)軟件和應用軟件需求),該操作系統(tǒng)模型由多個操作系統(tǒng)組件組成,這些操作系統(tǒng)組件應該被保留;通過分析各操作系統(tǒng)組件和操作系統(tǒng)內核源碼之間的對應關系,將確定被保留操作系統(tǒng)組件對應的內核源碼。在開發(fā)環(huán)境提供的源碼目錄src下,操作系統(tǒng)組件對應的內核源碼是以獨立文件夾或者單獨文件存在的。
(2)開始裁剪后,包括Α)內核源碼文件夾即內核源碼目錄的剪裁,以及B)源碼文件的剪裁。A、首先進行內核源碼文件夾裁剪,即在開發(fā)環(huán)境提供的源碼目錄下,裁剪掉與星載計算機所采用的處理器的體系結構(例如SPARC)無關的內核源碼目錄以及與應用不相關的內核源碼目 錄,如網絡、C++組件等,這些內容以獨立的文件夾存儲。例如,對于處理器采用SPARC體系結構的星載計算機來說,首先,將體系結構目錄srcAarch下的SPARC文件夾保留,其他文件夾全部刪除,如 ARM、x86、ppc、mips、i960等與SPARC體系結構無關的文件夾全部刪除。然后,根據(jù)操作系統(tǒng)的應用將不相關的文件夾裁剪裁剪掉了 Cplus組件、驅動程序drv組件、遠程調用rpc組件、操作系統(tǒng)調試組件ostools、POSIX操作系統(tǒng)接口組件、程序調試wdb及調試協(xié)議wtx組件、網絡netinet、netwrs、路由rip、事件記錄event組件及 DHCP組件。因為上述這些組件和源文件在最終的操作系統(tǒng)映像中不會用到,所以進行了完全裁剪。B、在開發(fā)環(huán)境提供的源碼目錄src下,將與星載計算機所需應用不相關的操作系統(tǒng)組件對應的源碼文件裁剪掉。例如,對于處理器采用SPARC體系結構的星載計算機來說,裁剪掉了 ioLib.c、 iosLib. c> iosShow. c>IogLib. c> selectLib. c> sigLib. c、wdLib. c>wdShow. c、taskShow. c、 msgQShow. c、msgQSmLib. c、msgQSmShow. c>semOLib. c>semShow. c>semSmLib. c>semSmShow. c、taskShow. c、clockLib. c、cacheLib. c、dosFsLib. c、f ioLib. c 等 269 個源文件。此外,因為系統(tǒng)軟件使用的10系統(tǒng)、格式化10、Select機制以及時間機制等,均為進行串行接口的數(shù)據(jù)通信。操作系統(tǒng)最小內核提供的消息隊列、輔助時鐘計時等功能替代原先的10系統(tǒng)操作和Select機制操作,而且通信處理過程更加明晰,不會引入過多的操作系統(tǒng)組件使用等情況。因此本步驟中還對串行通信相關的機制進行了裁剪。與此同時, 對系統(tǒng)軟件進行更改,使得串行通信中斷處理由系統(tǒng)軟件接管,使用消息隊列和任務之間進行數(shù)據(jù)交換,使用輔助時鐘進行超時計時。因此,雖然裁剪掉了操作系統(tǒng)源碼中的10組件、stdio、格式化10、Select機制、時間機制對應的源文件,但是仍然可以通過修改系統(tǒng)軟件實現(xiàn)串行通信。(3)根據(jù)Makefile中記載的源碼編譯規(guī)則,將Makefile指定的不會被編譯的源碼文件裁剪掉。操作系統(tǒng)源碼中通過Makefile定義編譯規(guī)則,MakefiIe指定哪些源文件被編譯, 哪些不被編譯,在針對SPARC體系結構進行操作系統(tǒng)內核編譯時,某些文件將不被編譯,因此需要將此類不被編譯文件進行裁剪,進一步精簡操作系統(tǒng)源碼。較佳地,本發(fā)明在該步驟中同時準備了硬件測試平臺用于測試操作系統(tǒng)的功能和性能。二、源碼的函數(shù)級裁剪1)通過系統(tǒng)軟件和應用軟件的分析,刪除內核源碼中不會被系統(tǒng)軟件和應用軟件調用的函數(shù);本步驟為組件內部的裁剪,例如數(shù)學函數(shù)組件中包括54個函數(shù),其中在一種情況下,應用軟件只使用了其中的3種sqrt、eXp、abs,則只保留這3個數(shù)學函數(shù),其他數(shù)學函數(shù)被刪除。 2)根據(jù)被裁剪掉的操作系統(tǒng)組件,將開發(fā)環(huán)境的配置目錄srcAconfig下與被剪裁的操作系統(tǒng)組件對應的組件配置源文件刪除。配置目錄是針對組件的配置目錄,每個操作系統(tǒng)組件對應一個組件配置源文件, 被裁剪掉的操作系統(tǒng)組件所對應的組件配置源文件也需要被刪除。例如程序調試wdb組件對應的組件配置源文件usrWdb. c將被刪除。3)在頭文件目錄\h下,對于被裁剪的操作系統(tǒng)組件,將被裁剪的操作系統(tǒng)組件頭文件刪除,只保留與裁剪后內核源碼相對應的頭文件。對于被裁剪的函數(shù),在頭文件中將被裁剪的函數(shù)及其相應的變量聲明刪除,只保留內核中包含的函數(shù)和變量聲明。4)條件編譯更改將保留的頭文件和源文件中與處理器體系結構不相關的條件編譯進行刪除。頭文件和源文件中具有關于各種體系結構的條件編譯,針對當前使用的處理器體系結構SPARC,只保留與SPARC體系結構相關的條件編譯的代碼,其他剪裁掉。5)根據(jù)被裁剪的操作系統(tǒng)組件,對板級支持包(BSP)中與被剪裁的操作系統(tǒng)組件對應的宏定義和組件初始化代碼刪除,使其滿足該類型星載計算機的板級支持要求。例如,程序調試wdb組件被裁剪,則對應的BSP包中的宏定義INCLUDE WDB和 usrConfig. c中WDB相關的組件初始化代碼的將被刪除。三、源碼可靠性優(yōu)化根據(jù)《航天器軟件編程規(guī)范(C語言部分)》,對裁剪后操作系統(tǒng)源碼進行檢查,將違犯航天器軟件編程規(guī)范的源碼進行修正。例如航天器軟件編程規(guī)范規(guī)定,航天軟件編程中不允許使用goto語句,將違犯此規(guī)范的操作系統(tǒng)源碼使用while循環(huán)或者return語句進行替換。四、對裁剪后的操作系統(tǒng)源碼進行完整編譯,生成操作系統(tǒng)內核庫。對于處理器采用SPARC體系結構的星載計算機來說,裁剪后的操作系統(tǒng)內核包含60個源文件,編譯后的操作系統(tǒng)內核庫為46Kbyte ;未經裁剪的操作系統(tǒng)內核庫文件為 3. 74Mbyte??梢?,剪裁后的操作系統(tǒng)經編譯后形成的內核庫大大縮小。五、較佳地,進一步進行操作系統(tǒng)源碼的單元測試、第三方評測、配置項測試,驗證操作系統(tǒng)的功能和性能。本步驟中,使用testbed工具對操作系統(tǒng)源碼進行單元測試,由航天指定軟件評測單位進行軟件第三方評測;使用裁剪后的操作系統(tǒng)內核庫與應用軟件聯(lián)合編譯,生成可執(zhí)行文件,燒入星載計算機的程序存儲器芯片,然后進行測試,驗證裁剪后的操作系統(tǒng)軟件功能、性能是否正常。在衛(wèi)星應用中,精簡化的實時操作系統(tǒng)不僅能夠滿足航天計算機復雜的管理要求,而且能夠適應航天計算機的存儲資源缺乏、異常管理等特殊需求。操作系統(tǒng)裁剪和定制技術主要應用在航天用計算機的操作系統(tǒng)軟件平臺,為航天型號應用軟件提供精簡化、可配置、強實時、強容錯的軟件開發(fā)平臺。綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、 改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種用于航天計算機的VxWorks操作系統(tǒng)裁剪定制方法,其特征在于,包括步驟一對原始的VxWorks操作系統(tǒng)進行源碼模塊級剪裁;1)在開發(fā)環(huán)境提供的源碼目錄src下,將與星載計算機所采用的處理器的體系結構無關的內核源碼目錄以及與應用不相關的操作系統(tǒng)組件對應的內核源碼目錄裁剪掉;2)在開發(fā)環(huán)境提供的源碼目錄src下,將與星載計算機所需應用不相關的操作系統(tǒng)組件對應的源碼文件裁剪掉;3)根據(jù)Makefile中記載的源碼編譯規(guī)則,將Makefile指定的不被編譯的源碼文件裁剪掉;步驟二 進行源碼函數(shù)級剪裁; 1)通過系統(tǒng)軟件和應用軟件的分析,將內核源碼中不會被系統(tǒng)軟件和應用軟件調用的函數(shù)刪除;2)根據(jù)被裁剪的操作系統(tǒng)組件,將開發(fā)環(huán)境配置目錄srcAconfig下與被裁剪的操作系統(tǒng)組件對應的組件配置源文件刪除;3)在頭文件目錄\h下,對于被裁剪的操作系統(tǒng)組件,將被裁剪的操作系統(tǒng)組件的頭文件刪除;對于被裁剪的函數(shù),在頭文件中將被裁剪的函數(shù)及其相應的變量聲明刪除;4)將保留的頭文件和源文件中與處理器體系結構不相關的條件編譯刪除;5)根據(jù)被裁剪的操作系統(tǒng)組件,將板級支持包BSP中與被裁剪的操作系統(tǒng)組件對應的宏定義和組件初始化代碼刪除;步驟三進行源碼可靠性優(yōu)化;根據(jù)航天器軟件編程規(guī)范,對裁剪后操作系統(tǒng)源碼進行檢查,將違犯航天器軟件編程規(guī)范的源碼進行修正;步驟四對裁剪后的操作系統(tǒng)源碼進行完整編譯,生成操作系統(tǒng)內核庫。
2.如權利要求1所述的方法,其特征在于,該方法進一步包括步驟五使用testbed工具對操作系統(tǒng)源碼進行單元測試,由航天指定軟件評測單位進行軟件第三方評測;使用裁剪后的操作系統(tǒng)內核庫與應用軟件聯(lián)合編譯,生成可執(zhí)行文件,燒入星載計算機的程序存儲器芯片,然后進行測試,驗證裁剪后的操作系統(tǒng)軟件功能、性能是否正常。
3.如權利要求1所述的方法,其特征在于,在步驟一中,將與串行通信相關的源文件進行了剪裁;同時對操作系統(tǒng)軟件進行更改,使得串行通信中斷處理由操作系統(tǒng)軟件接管,使用消息隊列在任務之間進行數(shù)據(jù)交換,使用輔助時鐘進行超時計時。
全文摘要
本發(fā)明公開了一種用于航天計算機的VxWorks操作系統(tǒng)裁剪定制方法,包括一對原始的VxWorks操作系統(tǒng)進行源碼的模塊級剪裁,包括將與星載計算機所采用的處理器的體系結構無關的內核源碼目錄以及與應用不相關的操作系統(tǒng)組件對應的內核源碼目錄和源碼文件裁剪掉;二源碼函數(shù)級剪裁,包括將內核源碼中不會被系統(tǒng)軟件和應用軟件調用的函數(shù)刪除,對組件配置源文件、頭文件、條件編譯、板級支持包的修改;三根據(jù)航天器軟件編程規(guī)范,對裁剪后操作系統(tǒng)源碼進行修正。最終對裁剪后的操作系統(tǒng)源碼進行完整編譯,生成操作系統(tǒng)內核庫。本發(fā)明能夠解決星載計算機操作系統(tǒng)占用存儲空間過大、冗余模塊過多、代碼不符合航天器軟件編程規(guī)范等問題。
文檔編號G06F9/45GK102360305SQ20111029948
公開日2012年2月22日 申請日期2011年10月9日 優(yōu)先權日2011年10月9日
發(fā)明者譚沛, 高蘭志 申請人:中國航天科技集團公司第五研究院第五一三研究所