雷鵬,生盛義
(1.中國電子科技集團公司第七研究所,廣東 廣州 510310;2.中國人民解放軍第二炮兵駐廣州軍事代表室,廣東 廣州 510310)
基于P2010的ReWorks操作系統應用及分析
雷鵬1,生盛義2
(1.中國電子科技集團公司第七研究所,廣東 廣州 510310;2.中國人民解放軍第二炮兵駐廣州軍事代表室,廣東 廣州 510310)
隨著國家信息安全意識的提高和嵌入式操作系統國產化平臺在多種行業的推進,針對某核心網交換設備及使用的FreeScale P2010處理器的特性,深入分析ReWorks操作系統的BSP開發、圖形支持、VxWorks兼容層設計及應用移植的方法和步驟,并對ReWorks和VxWorks操作系統進行對比分析,得出ReWorks操作系統不僅基本實現了核心網交換設備的功能,還大大提升了軟件的安全性和自主可控能力。
ReWorks 嵌入式操作系統 FreeScale P2010 板級支持包
現代化的戰爭已經從機械化軍事形態轉變為信息化軍事形態,信息已經成為現代戰爭的制高點,誰掌握了信息,誰就有了現代戰爭的發言權。而信息安全更是提升為信息化軍事的重中之重,只有發揮國產化軟硬件的“安全、可靠、可控”特點,使其在信息安全的源頭上發揮頂梁柱作用,才能在核心操作系統和芯片上擺脫西方發達國家的控制,提高設備的安全性和保密性,最終主宰自己在現代軍事的主動權。
目前主流的嵌入式操作系統為Wind River System公司開發的VxWorks。但是,正如Microsoft控制的Windows XP操作系統一樣,面臨著可能“被終止”、“被滲入”和“被后門”的信息安全危險。因此,嵌入式操作系統的國產化及應用研究也被提升到關系國家安全的地位。
隨著核心網的快速發展,其安全性和重要性逐步提高,其中交換設備的自主可控也顯得尤為重要。通過對現役的某核心網的交換設備進行嵌入式操作系統的國產化的探索性研究和應用驗證,積累對主流硬件平臺的適應性開發經驗,最終提升自主可控平臺的裝備適應性和應用水平,滿足國產關鍵軟硬件對新一代裝備發展的需求。
2.1 產品應用分析
核心網交換設備采用飛思卡爾(FreeScale)的P2010處理器和VxWorks6.8操作系統,主要功能需求如下:
(1)支持全中文人機界面;
(2)主要實現多網系混合組網功能;
(3)支持多類終端設備的隨遇接入;
(4)支持系統動態路由和基于全IP的數據、話音業務交換;
(5)支持二層VLAN(Virtual Local Area Network,虛擬局域網)管理和網管代理;
(6)支持文件系統和豐富的網絡協議棧,其中具體使用的網絡協議棧如下:
◆支持TCP(Transmission Control Protocol,傳輸控制協議)/IP協議棧(IPv4、ICMP、ARP、IGMP、TCP/UDP);
◆支持BSD、MUX接口;
◆支持Socket;
◆支持DHCP(Dynamic Host Configuratio n Protocol,動態主機配置協議)、Ping;
◆支持Router Stack;
◆支持Telnet;
◆支持FTP(File Transfer Protocol,文件傳輸協議)/TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議);
◆支持按照路由表實現IP轉發;
◆支持END(Enhanced Network Driver,增強型網絡驅動)網絡驅動;
◆支持MIB(Management Information Base,管理信息庫);
◆支持SNMP(Simple Network Management Protocol,簡單網絡管理協議);
◆支持二層VLAN的配置。
2.2 軟件開發環境分析
華東計算技術研究所開發的ReWorks/ReDe嵌入式實時操作系統及開發環境提供符合IEEE POSIX 1003.13-2003/POSIX 1003.1-2001實時規范的接口和VxWorks5.5兼容接口,可以以極小的代碼修改完成操作系統的軟件移植,是使用VxWorks操作系統的核心網交換設備進行操作系統國產化的最好選擇。
ReWorks實時嵌入式操作系統采用先進的面向對象和微內核技術開發,具有強實時性、可裁剪性和可伸縮性,并特別提供了VxWorks兼容層,方便應用軟件的移植和二次開發。
ReDe:與ReWorks相配套的、繼承嵌入式軟件設計、開發、調試、仿真、測試和集成部署為一體的嵌入式軟件開發環境[1]。
2.3 硬件開發環境分析
交換設備的P2010處理器使用高性能的e500 Power Architecture內核,并對外圍電路進行了網口和串口的擴展。交換設備的硬件資源如表1所示:

表1 交換設備硬件資源
3.1 BSP軟件的開發
在ReWorks系統中,將BSP(Board Support Package,板級支持包)定義為底層硬件環境和ReWorks之間的接口,它的主要功能是系統加電后初始化目標機硬件、初始化操作系統及提供部分硬件的驅動程序,其中最基本的BSP僅需實現處理器復位、初始化、驅動串口和必要的時鐘處理功能[3-4]。基于ReWorks操作系統4.7版本的BSP,P2010處理器的開發流程如圖1所示:

圖1 BSP開發流程
在ReWorks操作系統中,提供了標準的預內核初始化代碼,串口輪詢驅動程序及中斷、時鐘掛接程序,僅需要針對P2010進行的是BSP啟動模塊的修改和相關硬件驅動的開發。
(1)BSP模塊啟動
在ReWorks操作系統中,BSP模塊啟動是在bsp_ module_init函數中完成。該函數在ReWorks核心啟動函數c_main中調用,主要完成系統時鐘頻率的賦值、關鍵硬件初始化、cache初始化、printk實現模塊注冊、中斷控制器初始化、PCI(Peripheral Component I nterconnect,外設部件互連標準)總線初始化等,流程如圖2所示:

圖2 BSP初始化流程
針對P2010硬件特性,主要完成了中斷控制器初始化、PCI總線初始化的修改。
(2)硬件驅動開發
針對P2010處理器的硬件環境,需要開發的驅動如下:
1)網卡驅動
面對核心網交換機的多樣的網絡協議棧需求,對網卡驅動和網絡協議棧的關系進行梳理,具體如圖3所示。網絡協議棧一般通過網卡驅動提供的接口完成數據交互和控制管理。網卡驅動向網絡協議棧提供的接口均封裝在網絡接口結構struct ifnet中,網絡接口結構的初始化在網卡驅動模塊初始化接口中完成。
由圖3可見,一般通過網絡協議棧提供的TCP/IP接口執行對網絡設備的訪問,而不直接訪問網絡設備。因此,對于網卡驅動而言,僅需提供模塊初始化接口、網絡協議棧接口[5-6]、中斷服務接口[7]3類外部接口。具體步驟如下:
◆利用ReWorks4.7原有的“網卡驅動模板”搭建驅動框架;
◆實現“網卡驅動模塊初始化接口”;
◆依次實現初始化接口、中斷服務程序、啟動傳輸接口和控制接口。
2)Flash驅動
Flash文件系統實現了對Flash設備的管理和訪問,其架構如圖4所示。
Flash文件系統主要由文件系統層、Flash協議層和Flash設備驅動層3部分組成。其中,Flash協議層和Flash設備驅動層是核心部分。
Flash協議層:該層是Flash文件系統的核心。其實現了Flash設備的管理,對Flash設備進行封裝,使其作為1個普通的塊設備使用。Flash協議層實現的Flash設備管理功能包括Flash的讀寫管理、壞塊管理、冗余管理、損耗均衡、垃圾回收等。Flash協議層是以庫的形式提供的,驅動開發人員只需要調用相關的接口即可。
Flash設備驅動層:該層主要包括Flash設備的底層驅動以及相關的配置文件,由驅動開發人員完成。主要包括Flash設備的配置、Flash設備的初始化、Flash的讀/寫/擦除等操作。
針對P2010,首先確定P2010所要實現的文件系統是NAND Flash文件系統。然后在BSP工程下面建立1個flash目錄,建立相關文件,通過重載ReWorks操作系統中的flash_config_init()函數實現底層驅動,并將底層驅動接口注冊到Flash協議層,完成Flash協議層配置、Flash屬性配置、Flash底層驅動接口注冊、Flash設備注冊等。具體實現如下:
◆初始化Flash設備,包括Flash控制器初始化、相關結構體的分配、數據緩沖的分配等;
◆從Flash設備讀取一頁數據,根據相關參數的判定來讀取Flash設備的一整頁數據、單頁、spare區;
◆向Flash設備寫入一頁數據,根據相關參數的判定來讀取Flash設備的一整頁數據、單頁、spare區;
◆擦除Flash設備的一塊數據。
3)顯示設備驅動
核心網交換設備使用的是Planar公司的顯示屏,其LCD控制器由FPGA(Field-Programmable Gate Array,現場可編程門陣列)實現,支持單色TFT顯示[8], FPGA通過UPM接口掛在P2010上。根據對交換設備正常工作的VxWorks的二進制代碼進行研究比較,獲取了UPM初始化FPGA時的時延參數,初始化順序,重新寫入訪問LCD控制器的FrameBuffer,即可完成顯示設備驅動的開發。
4)PS/2鍵盤驅動
由于ReWorks4.7原有的多路I/O選擇模塊所使用的緩沖區管理方式與PS/2鍵盤驅動調用的請求緩沖區的方式不匹配,因此參照VxWorks6.8修改鍵盤驅動中鍵盤設備管理函數csps2_ioctl即可。這樣ReWorks完成了對標準的PS/2鍵盤的支持。
5)擴展串口驅動
針對交換設備中P2010處理器的擴展串口,通過對比VxWorks6.8操作系統下應用軟件的實現,明確擴展串口接在PCI總線上,寄存器基地址,中斷號和片選信號后,即可完成對擴展串口的BSP開發。
3.2 圖形支持
核心網交換設備在開發圖形界面上使用的是基于VxWorks6.8的圖形界面開發組件UGL和ZINC,這2部分組件是以庫的形式集成到應用軟件中的。為了減少應用適配過程中的工作量,人機界面BSP開發將同樣把UGL和ZINC組件集成到ReWorks上。
將UGL和ZINC組件集成到ReWorks上有2種方案,分別是二進制庫適配和源碼適配。對這2種適配方案進行了專題設計和對比分析,得出結論如下:
一方面,由于UGL和ZINC庫所使用的g++編譯器同ReDe開發環境使用的g++編譯器的版本不同,在應用軟件的編譯過程中問題較多;另一方面,采用二進制庫適配會增加調試的難度,如VxWorks6.8有自己的一套設備打開和查找方式,但是ReWorks4.7版本的VxWorks兼容層并未提供相關接口。因此,最終采用源碼適配的方式將UGL和ZINC組件集成到ReWorks上。
(1)UGL適配
在ReDe的資源配置界面中增加顯示設備和輸入/輸出設備的配置;直接修改UGLDepend.h、UGLConfi g.h、UGLConfig.c這3個跟配置相關的文件,完成對顯示設備驅動、鍵盤設備驅動的掛接。
UGL源碼中并未直接提供漢字顯示方案,故需要結合UGL字體驅動結構研究漢字顯示的實現方式。ReWorks操作系統原本支持中文點陣字庫是宋16×16點陣字庫。由于宋16×16點陣字庫可以通過字符的機器內碼的低位來區分中文字符和英文字符,因此針對宋16×16點陣字庫的特點,對位圖字體引擎的文本顯示函數UGLBMFTextDraw()進行修改,使得該接口能夠支持中英文混合顯示。
(2)ZINC適配
ZINC構件庫的實現跟底層驅動的關聯性不大[9],該組件主要依賴于UGL組件庫和VxWorks兼容層。在ZINC源碼適配的過程中遇到的主要問題是中文顯示問題。
UGL層提供對宋16×16點陣字體的支持,ZINC層掛接UGL層的代碼是ZINCgenerici_UGLdsp.cpp文件中,通過對該文件的修改實現ZINC層對中文顯示的支持。在ZafScreenDisplay類的構造函數中將對應的屬性改成宋16×16點陣字體的屬性即可。
3.3 VxWorks兼容層改進
ReWorks通過對VxWorks的任務調度、任務通訊、中斷、定時器、動態加卸載等系統調用接口及相關宏定義的封裝,在應用層上實現了VxWorks源碼級兼容。同時參照VxWorks驅動框架,實現了基于tyLib的字符設備、基于DOSFS文件系統的塊設備驅動兼容[10],減少了應用軟件的移植工作量。
但是,原ReWorks操作系統僅完成了對VxWorks5.5的兼容設計,而目前核心網交換設備普遍使用的是VxWorks6.8操作系統,針對交換設備的功能需求,在應用上的主要區別是增加了對二層VLAN的支持。因此,在VxWorks5.5的兼容層上添加VLAN組件,并完成接口適配。
3.4 應用移植
通過VxWorks兼容層的設計,在應用層實現源代碼級兼容,在驅動層實現目標代碼級兼容,便于現有應用系統的移植和二次開發,并可充分利用原有的應用系統,減少用戶系統移植的工作量。結合交換設備的功能需求,應用軟件在ReWorks下應配置如下組件:
(1)網口組件:勾選CP2010 BSP目錄下的網卡驅動,然后勾選eTESEC1網口配置;
(2)Flash配置:交換設備支持文件掉電保存,勾選CP2010 BSP目錄下的Flash支持;
(3)內存配置:對比VxWorks6.8下的內存使用情況,在ReWorks操作系統中將SYS_KERNEL_ MEM_SIZE配置成合理值;
(4)其他配置:勾選圖形支持,使能提供對UGL、ZINC以及顯示設備、鍵盤設備的支持;
(5)兼容層配置:為了兼容出現的大部分VxWorks中的函數接口,勾選VxWorks兼容模塊下的所有子項。
由于ReWorks4.7和VxWorks6.8編譯規則不同,ReWorks4.7使用的新版編譯器在語法檢查方面更加嚴格,通過這些語法規定的檢查可進一步保證軟件的穩定可靠,因此需要針對應用軟件源代碼進行小范圍的移植修改。
完成核心網交換設備應用軟件ReWorks4.7操作系統的移植后,對交換設備的功能、性能進行了測試,滿足核心網交換設備功能需求。隨后對ReWorks4.7和VxWorks6.8操作系統的人機操作界面、系統響應時間進行了對比測試[11],具體情況如表2和表3所示:
由表2可以看出,對照VxWorks6.8下的圖形界面,在ReWorks4.7下的各類控件顯示效果、對事件的響應均保持和VxWorks6.8一致。
由表3可以看出,多個事件中的系統響應時間的指標差值不超過0.2μs,對于使用1ms為刻度的核心網交換設備來說,這個細微的差別是可以接受的。

表3 系統響應對比情況
通過對P2010處理器的ReWorks操作系統的研究分析及應用,可以逐漸了解從單核處理器到雙核處理器基于ReWorks操作系統的BSP開發、驅動開發以及應用移植和開發的技術框架及處理流程,將對后續其他應用軟件的移植提供較好的借鑒性。
此外,經過多年的研究,國產化的嵌入式操作系統也日益成熟。通過測試分析,驗證了國產化操作系統的實時性和穩定性,能滿足現階段核心網交換設備以及其他方向的軍事應用需求,可廣泛地應用于核心網、接入網的各類交換設備和傳輸設備中。同樣應緊跟硬件技術的發展,盡快實現更加完善的高端硬件的嵌入式系統。
嵌入式操作系統的國產化只是信息安全的一小部分,只有操作系統和核心芯片真正結合起來全部國產化,并廣泛應用于我軍型號產品,才能為我國的信息安全及國防事業做出巨大貢獻。
[1] 謝彬. ReWorks/ReDe嵌入式實時操作系統及開發環境產品白皮書[R]. 中國電子科技集團公司第三十二研究所, 2013.
[2] Freescale Semiconductor, Inc. P2010 QorIQ Integrated Processor Hardware Specifi cations[R]. 2013.
[3] Wind River. VxWorks BSP Developer’s Guide 6.8[R]. 2010.
[4] Wind River. VxWorks Device Driver Developer’s Guide[R]. 2010.
[5] Wind River. Wind River Network Stack Programmer’s Guide[R]. 2010.
[6] Wind River. Wind River SNMP Programmer’s Guide[R]. 2009.
[7] 趙立業. 基于PowerPC的ReWorks系統移植及網絡模塊的設計與實現[D]. 長沙: 國防科學技術大學, 2007.
[8] Planar Systems, Inc. EL320.256-F6 and FD6[R]. 1998.
[9] Zinc Software Incorporated. Zinc Programmer’s Reference[R]. 1998.
[10] 董巍,馬云. 基于ReWorks操作系統的實時多任務程序設計[J]. 中國新技術新產品, 2013(9): 53.
[11] Wind River. VxWorks BSP Validation Test Suite User’s Guide[R]. 2010.★

雷鵬:學士畢業于湖南大學計算機與通信工程學院,現任中國電子科技集團公司第七研究所項目總師,主要研究方向為軍用交換設備軟件框架設計和國產化操作系統在軍工領域的應用。

生盛義:學士畢業于哈爾濱工業大學,現任中國人民解放軍第二炮兵駐廣州軍事代表室軍代表,主要研究方向為軍用通信領域。
Application and Analysis of ReWorks Operating System Based on P2010
LEI Peng1, SHENG Sheng-yi2(1. China Electronics Technology Group Corporation No.7 Research Institute, Guangzhou 510310, China;2. The Second Artillery Force of the PLA in Guangzhou Factory Military Representative Room, Guangzhou 510310, China)
With both the improvement of national information security awareness and the promotion of domestic platform based on embedded operating system across sectors, according to core network switching equipment and the features of its FreeScale P2010 CPU, the method and its steps of ReWorks operating system (OS) in BSP development, graphics support, VxWorks compatibility layer design and application transplantation were analyzed in depth. By comparing ReWorks and VxWorks Oss, it demonstrated that the latter not only basically implements the functions of core network switching equipment, but also highly enhances security and independent control capability.
ReWorks embedded operating system FreeScale P2010 board support package (BSP)
10.3969/j.issn.1006-1010.2015.12.010
TP316.2
A
1006-1010(2015)12-0048-06
雷鵬,生盛義. 基于P2010的ReWorks操作系統應用及分析[J]. 移動通信, 2015,39(12): 48-53.
2015-04-13
責任編輯:袁婷 yuanting@mbcom.cn