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