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