量體裁衣—VxWorks 6.2輕松應對設備軟件的特殊挑戰
——
作為業(yè)界著(zhù)名的嵌入式操作系統,VxWorks從一開(kāi)始就具備了可裁剪性的良好“血統”。風(fēng)河(Wind River)系統公司不久前宣布推出VxWorks的模塊化版本——VxWorks 6.2,進(jìn)一步把可裁剪性提升到了新的水平,使這個(gè)在設備軟件領(lǐng)域流傳和應用極為廣泛的實(shí)時(shí)操作系統(RTOS)可以像“樂(lè )高”玩具那樣,按照設備軟件開(kāi)發(fā)者的需要隨意組裝和配置。
“即插即用”才是可裁剪性
可裁剪性是設備軟件與通用計算機軟件的重要區別之一,這是由于設備軟件與通用的PC或服務(wù)器軟件存在以下幾個(gè)方面的區別:
第一,從硬件環(huán)境來(lái)看,桌面操作系統具有標準化的CPU、存儲和I/O架構,而嵌入式環(huán)境中的RTOS硬件環(huán)境只有標準化的CPU,沒(méi)有標準化的存儲、I/O和顯示器架構,因此許多模塊在特定的硬件中并不會(huì )用到。
第二,從應用環(huán)境來(lái)看,桌面操作系統面向復雜多變的應用,而RTOS面向單一設備的單一應用,操作系統中的許多部件因此可以裁剪掉,以便節省內存,在降低成本的同時(shí)提高可靠性。
第三,從開(kāi)發(fā)界面來(lái)看,桌面操作系統試圖給開(kāi)發(fā)人員提供一個(gè)“黑箱”,讓開(kāi)發(fā)人員通過(guò)一系列標準的系統調用來(lái)使用操作系統中的功能,而嵌入式試圖為開(kāi)發(fā)人員提供一個(gè)“白箱”,讓開(kāi)發(fā)人員可以自主控制系統的所有資源,因而應該可以自行對操作系統進(jìn)行裁剪。
總之,桌面操作系統的研究開(kāi)發(fā)指導思想是盡可能在不改變自身的前提下具有廣泛的適應性。也就是說(shuō):不論應用環(huán)境怎么變化,最好都不要對自身內部產(chǎn)生什么影響,也不要求自身做太多的變化。反過(guò)來(lái),應用于嵌入式環(huán)境的設備軟件,在研發(fā)的時(shí)候就必須立足于改變自身、開(kāi)放自身,讓開(kāi)發(fā)人員可以根據硬件環(huán)境和應用環(huán)境的不同而對操作系統進(jìn)行靈活的裁剪和配置,因為對于任何一個(gè)具體的嵌入式設備,它的功能是確定的,因此只要從原有操作系統中把這個(gè)特定應用所需的功能拿進(jìn)來(lái)即可。
有人認為,設備軟件開(kāi)發(fā)者如果擁有了軟件的源代碼,就可以按照自己的需求對其進(jìn)行任意裁剪,就等于擁有了可裁剪性,這是一個(gè)很大的誤解。刪掉部分源代碼之后,將會(huì )給整個(gè)系統帶來(lái)什么影響,這是很難預估的,因而會(huì )給系統的可靠性帶來(lái)極大的隱患。
所以說(shuō),如果一個(gè)軟件平臺只能依靠手工的方式去掉一些源代碼,這根本就不是可裁剪性。所謂可裁剪性是以?xún)?yōu)秀的模塊化設計為基礎,在軟件項目的工程階段,隨時(shí)利用軟件配置方法實(shí)現軟件構件的“即插即用”??梢?jiàn),可裁剪性與開(kāi)放源代碼是兩個(gè)完全不同的概念。
可裁剪性帶給用戶(hù)的一個(gè)最直接的好處是硬件成本降低,這對于成本敏感的應用,如消費電子類(lèi)設備,具有重要的現實(shí)意義。由于設備中只包含應用程序用到的那部分操作系統功能,這就使得系統變得簡(jiǎn)單、易把握,從而提高系統的可靠性。
可裁剪性還與可擴展性和可靠性密切相關(guān),因為軟件規??s減和增加可以采用同樣的軟件配置技術(shù),而可裁剪性如果處理不好就勢必影響到系統的可靠性。
VxWorks迎來(lái)設備軟件的積木時(shí)代
實(shí)際上,VxWorks以前的版本也同樣具有很好的可裁剪性和可擴展性,因為它的設計是以構件和參數的形式進(jìn)行的,只是其中的構件都是以預先編譯庫的形式存在,通過(guò)符號參照表與系統連接起來(lái)。在VxWorks 6.2中,操作系統的配置通過(guò)更巧妙的方式來(lái)實(shí)現,支持更小巧的模塊、更精準的方式來(lái)配置形成特定的操作系統功能,既可以只包含最核心的操作系統內核,也可以是最完整的操作系統。
除了部件和部件捆綁,VxWorks 6.2中還有“Profile”可以用來(lái)對VxWorks進(jìn)行配置,這是一個(gè)新的重要特色?!癙rofile”提供了一種便捷的方式,構成了操作系統的不同配置基礎,以便適應不同的設備軟件產(chǎn)品以及軟件項目開(kāi)發(fā)的不同階段。
VxWorks 6.2之所以具有更好的可裁剪性和可擴展性,是因為采用了精心設計的三層結構:最小內核、基本內核和基本操作系統,以簡(jiǎn)潔的微內核作為最底層,逐層擴展到完整的VxWorks配置(如圖1所示)。隨著(zhù)層次的上升,相應配置所支持的功能逐漸復雜多樣,這些配置工作可以采用風(fēng)河公司W(wǎng)orkbench或者vxpri實(shí)現,以便作為各種設備軟件開(kāi)發(fā)項目的基礎。盡管經(jīng)過(guò)各種不同裁剪配置的VxWorks都短小精悍,但仍然可以形成一個(gè)完整鏈接的操作系統映像,可以引導和運行應用軟件。值得指出的是,為特定項目所裁剪形成的VxWorks映像并不是“鐵板一塊”——從此不可改變,而是可以根據項目后來(lái)的進(jìn)程要求隨時(shí)增加或者減少某些部件,最終得到一個(gè)最精煉的配置。
采用新的VxWorks 6.2,可以大幅度縮減軟件在設備中所占用的空間,并且允許軟件開(kāi)發(fā)人員剔除操作系統中當前應用軟件不會(huì )用到的部分,甚至可以用其他第三方的模塊來(lái)取代操作系統中的某個(gè)模塊?,F在,設備軟件開(kāi)發(fā)人員可以自由地選擇電源管理、文件系統或者調度程序,以便適應自己獨特的芯片、設備類(lèi)型或者運行平臺。而且VxWorks操作系統在設備中所占用的存儲空間比以前的標準版本減少了100KB,大約只剩下35KB左右。
新推出的VxWorks 6.2還帶有一系列面向特定行業(yè)和應用領(lǐng)域的框架,可以幫助開(kāi)發(fā)者確定系統行為、軟件部分存儲器占用量和整體的存儲器需要量。例如,在消費電子領(lǐng)域,手機和數碼相機所采用的電源管理方案就是不同的。再比如,在手機中,當用戶(hù)正在輸入聯(lián)系人信息的時(shí)候,突然有電話(huà)呼入,你應該采取怎樣的設計方案來(lái)處理?而在數碼相機中又會(huì )遇到完全不同的問(wèn)題?,F在,有了模塊化可裁剪的VxWorks 6.2,就可以根據不同的應用需求對操作系統模塊進(jìn)行取舍。
“裁剪”不能沒(méi)有測試
與“可裁剪性”密切相關(guān)的是軟件開(kāi)發(fā)的測試能力,因為如果沒(méi)有高效率的測試工具,“即插即用”的可靠性就會(huì )失去保證。因此,風(fēng)河公司在推出VxWorks 6.2的同時(shí),還在其配套的基于Eclipse的開(kāi)發(fā)工具Workbench加強了單元測試和代碼診斷能力。
升級后的Workbench是一個(gè)功能完善、基于Eclipse開(kāi)發(fā)環(huán)境的設備軟件開(kāi)發(fā)工具,可以與模塊化的VxWolrks很好地配合,靈活地選取系統模塊。而且,風(fēng)河公司還為這個(gè)開(kāi)發(fā)環(huán)境增加了一個(gè)配置和向導工具,幫助設備軟件開(kāi)發(fā)人員對框架部件和模塊進(jìn)行命名和管理,并且把整個(gè)系統快速建構起來(lái)。
采用新的Workbench,設備軟件開(kāi)發(fā)者還可以導入和修改并非出自風(fēng)河的Linux內核。如今Linux在設備軟件中得到大量應用,但是有些Linux的軟件包并不能直接拿來(lái)就用,而是需要重新配置、修改和優(yōu)化。新推出的Workbench 2.4可以幫助設備軟件開(kāi)發(fā)者完成這些工作,而且完全兼容Eclipse 3.1。
風(fēng)河公司通過(guò)收購RTI公司獲得了更好的靜態(tài)分析、代碼測試和診斷能力,已經(jīng)作為Workbench的可選附加軟件提供給設備軟件開(kāi)發(fā)者。新的單元測試軟件可幫助軟件開(kāi)發(fā)者實(shí)施單元測試的自動(dòng)化。目前大多數設備軟件開(kāi)發(fā)環(huán)境中,單元測試仍然是手工逐步完成的,新的測試工具可以幫助軟件工程師自動(dòng)完成測試代碼的生成、編寫(xiě)、報告和分析工作。而且,新的診斷工具還允許開(kāi)發(fā)人員不必對代碼進(jìn)行重新編譯,即可在實(shí)際部署和運行的系統中執行調試操作。開(kāi)發(fā)人員可以動(dòng)態(tài)地放置測試點(diǎn),在代碼中的任何地方收集和跟蹤信息,不論是應用層、中間件層還是內核都不例外。
面對消費電子市場(chǎng)的激烈競爭,設備軟件開(kāi)發(fā)所面臨的最大挑戰是在最短的時(shí)間內開(kāi)發(fā)出功能可靠、節省成本的應用系統。風(fēng)河公司VxWorks 6.2和Workbench 2.4不僅是多年設備軟件開(kāi)發(fā)經(jīng)驗積累的結晶,也是設備軟件開(kāi)發(fā)者應對當今市場(chǎng)挑戰和順應未來(lái)發(fā)展趨勢的得力助手。
評論