DSO讓Linux成為完美的RTOS
回想從前,電子產(chǎn)品的主要市場(chǎng)都是企業(yè)機(jī)構(gòu)用戶,家電產(chǎn)品或者供個(gè)人使用的電子產(chǎn)品屈指可數(shù),算來算去不過是電視機(jī)、電冰箱、收音機(jī)。如今,消費(fèi)電子產(chǎn)品市場(chǎng)的迅猛發(fā)展撼動(dòng)了電子工業(yè)的基本格局,成為舉足輕重的大市場(chǎng)。從電子產(chǎn)業(yè)的角度來看,網(wǎng)絡(luò)和微處理器已經(jīng)為整個(gè)地球披上了一層“電子皮膚”,而每個(gè)微處理器都必須通過操作系統(tǒng)來實(shí)現(xiàn)消費(fèi)電子產(chǎn)品的所有功能。因此,對(duì)于消費(fèi)電子開發(fā)商來說,選用什么樣的實(shí)時(shí)操作系統(tǒng)就成為影響全局的一個(gè)重要問題。
市場(chǎng)新挑戰(zhàn)
伴隨著消費(fèi)電子產(chǎn)品在品種和數(shù)量上的激增,電子產(chǎn)業(yè)遇到兩大挑戰(zhàn):第一,與面向企業(yè)機(jī)構(gòu)的電子產(chǎn)品相比,消費(fèi)電子產(chǎn)品的生產(chǎn)銷售批量都非常大,因而產(chǎn)品成本控制就顯得更為關(guān)鍵。第二,消費(fèi)電子產(chǎn)品推出新款式、新型號(hào)的周期更短,面臨的市場(chǎng)壓力更大,而傳統(tǒng)上那種逐個(gè)產(chǎn)品單獨(dú)開發(fā)的傳統(tǒng)模式已經(jīng)趕不上市場(chǎng)競(jìng)爭(zhēng)的要求。
為了應(yīng)對(duì)上面提到的第一個(gè)挑戰(zhàn),也就是降低操作系統(tǒng)的成本,消費(fèi)電子產(chǎn)品制造商很容易想到Linux。然而,將Linux用于消費(fèi)電子產(chǎn)品,又遇到了兩個(gè)問題:第一,Linux的實(shí)時(shí)性如何保證;第二,Linux作為一種開放源代碼的平臺(tái),其可靠性、應(yīng)用開發(fā)規(guī)范和技術(shù)支持與服務(wù)都缺乏值得信賴的依靠。這些問題如果處理不好,往往會(huì)造成更大的成本和麻煩。
在這種情況下,如果有一家在設(shè)備軟件領(lǐng)域擁有先進(jìn)的專業(yè)技術(shù)和多年經(jīng)驗(yàn)的操作系統(tǒng)及開發(fā)工具提供商來為Linux提供支持,同時(shí)很好地在技術(shù)上解決Linux的實(shí)時(shí)性問題,這顯然是眾多消費(fèi)電子產(chǎn)品制造商的一大福音。美國風(fēng)河系統(tǒng)(Wind River Systems)公司以其VxWorks實(shí)時(shí)操作系統(tǒng)和Workbench集成化開發(fā)平臺(tái)在業(yè)界享有盛譽(yù),最近在Linux領(lǐng)域頻頻出手,頗有作為。他們將自身在VxWorks平臺(tái)的傳統(tǒng)優(yōu)勢(shì)和設(shè)備軟件開發(fā)方面的豐富經(jīng)驗(yàn)升華為DSO(Device Software Optimization,設(shè)備軟件優(yōu)化)方法論并應(yīng)用于Linux,推出了相應(yīng)的開發(fā)平臺(tái)——Platform for Consumer Devices, Linux Edition,而且于不久前從FSMLabs購買了Real-Time Linux技術(shù)及全部相關(guān)的知識(shí)產(chǎn)權(quán),成為業(yè)界唯一能夠支持硬實(shí)時(shí)Linux解決方案的提供商。
消費(fèi)電子的實(shí)時(shí)性需求
與PC基本上都運(yùn)行同一種操作系統(tǒng)不同,消費(fèi)電子產(chǎn)品中的操作系統(tǒng)可算是花樣繁多,這是因?yàn)橄M(fèi)電子產(chǎn)品本身就是五花八門,不像PC那樣具有標(biāo)準(zhǔn)化的硬件結(jié)構(gòu)。大致上看,目前消費(fèi)電子產(chǎn)品在結(jié)構(gòu)上可以分為三類:
低端產(chǎn)品通常以ASIC或者SoC為基礎(chǔ),采用廉價(jià)的處理器,配備的程序存儲(chǔ)器容量通常在256K到1M字節(jié)的范圍內(nèi),軟件開發(fā)工作基本上都是由單一開發(fā)團(tuán)隊(duì)完成的。例如入門級(jí)的數(shù)碼相機(jī)和噴墨打印機(jī)就是典型的低端產(chǎn)品。
中端產(chǎn)品的特征是程序存儲(chǔ)器容量在1M-2M字節(jié)的范圍內(nèi),常常需要多個(gè)軟件開發(fā)團(tuán)隊(duì)協(xié)同工作。數(shù)碼攝像機(jī)就屬于這類產(chǎn)品。
高端產(chǎn)品的程序存儲(chǔ)器容量可能達(dá)到32M字節(jié)以上,也會(huì)采用性能更高的處理器,有較大規(guī)模的軟件開發(fā)團(tuán)隊(duì)協(xié)作完成。智能手機(jī)和機(jī)頂盒顯然都屬于高端產(chǎn)品。
不同的產(chǎn)品類型對(duì)操作系統(tǒng)的要求也有所不同。低端產(chǎn)品在人機(jī)交互方面比較簡(jiǎn)單,通常只是通過幾個(gè)按鍵來實(shí)現(xiàn)。當(dāng)使用者按下這些按鍵后,一定會(huì)跟隨著一系列的反應(yīng)和處理動(dòng)作,這些處理動(dòng)作在發(fā)生的時(shí)間和順序都有非常嚴(yán)格的要求。例如,在數(shù)碼相機(jī)上按下快門鍵,就會(huì)啟動(dòng)測(cè)光、聚焦、感光成像和圖像存儲(chǔ)等一系列動(dòng)作,每個(gè)動(dòng)作所用的時(shí)間都必須嚴(yán)格控制。再比如在噴墨打印機(jī)中,必須把圖像數(shù)據(jù)轉(zhuǎn)換成噴墨命令傳遞給控制馬達(dá),移動(dòng)到指定的位置并精確地噴出墨水。噴墨打印機(jī)的打印速度是其市場(chǎng)競(jìng)爭(zhēng)力的重要指標(biāo),這就給時(shí)序控制提出了更高的要求。而且,低端產(chǎn)品由于銷售批量很大,需要嚴(yán)格控制成本,所以一般都采用性能不高的處理器,因而給軟件的實(shí)時(shí)性提出了更高的要求。{{分頁}}
高端產(chǎn)品通常采用價(jià)格和性能都比較高的處理器,而且經(jīng)常配有協(xié)處理器。另外,像智能手機(jī)、機(jī)頂盒之類的設(shè)備,人機(jī)互動(dòng)非常多。一般認(rèn)為,電子器件的反應(yīng)速度比人的動(dòng)作快得多。高性能的處理器,加上動(dòng)作較慢的人為操作,使有些人認(rèn)為在高端消費(fèi)電子產(chǎn)品對(duì)實(shí)時(shí)性的要求沒有那么高,但事實(shí)并非如此。因?yàn)楦叨讼M(fèi)電子產(chǎn)品在功能上常常覆蓋了低端產(chǎn)品。例如:智能手機(jī)幾乎都配有照相功能,而且還要通過無線網(wǎng)絡(luò)來傳送照片;機(jī)頂盒之中會(huì)包括DSP部件,用來進(jìn)行IP路由和視頻解碼。
一般來說,高端消費(fèi)電子產(chǎn)品都需要與比較多樣化的外圍設(shè)備配合使用,無論從功能的多樣性和實(shí)時(shí)性哪方面看,都對(duì)操作系統(tǒng)的實(shí)時(shí)性提出了非常嚴(yán)苛的要求,同時(shí)也需要更多的中間件和服務(wù)支持。
圖1: 從低端到高端,消費(fèi)電子產(chǎn)品對(duì)操作系統(tǒng)提出不同的要求。
讓Linux的實(shí)時(shí)性由軟變硬
由于采用不同的技術(shù),各種操作系統(tǒng)的實(shí)時(shí)性也有所不同。操作系統(tǒng)可大致劃分為實(shí)時(shí)操作系統(tǒng) (Real-time OS) 和分時(shí)操作系統(tǒng) (Time-Sharing OS)兩類。在一個(gè)分時(shí)操作系統(tǒng)中,計(jì)算機(jī)資源會(huì)被平均地分配給系統(tǒng)內(nèi)所有的工作。分時(shí)系統(tǒng)的設(shè)計(jì)原則是最大限度地利用處理器資源,盡量不讓處理器處于空閑狀態(tài),而各項(xiàng)任務(wù)需要花多長時(shí)間來完成,這一點(diǎn)并不重要;而在一個(gè)實(shí)時(shí)操作系統(tǒng)之中,最關(guān)注的是確保在規(guī)定的時(shí)間內(nèi)完成確定的任務(wù)。在許多應(yīng)用系統(tǒng)中,在確定的時(shí)間內(nèi)完成任務(wù)是至關(guān)重要的,一個(gè)小小的誤差就會(huì)造成很大的損失。數(shù)碼相機(jī)的曝光時(shí)間誤差只是影響到照片的質(zhì)量,而民航科技控制系統(tǒng)的時(shí)間誤差甚至關(guān)系到生命安全。
可見,在實(shí)時(shí)操作系統(tǒng)中,系統(tǒng)必須在特定的時(shí)間內(nèi)完成指定的應(yīng)用,具有較強(qiáng)的“剛性”,而分時(shí)操作系統(tǒng)則注重將系統(tǒng)資源平均地分配給各個(gè)應(yīng)用,不太在意各個(gè)應(yīng)用的進(jìn)度如何,什么時(shí)間能夠完成。不過,就算是實(shí)時(shí)操作系統(tǒng),其“剛性”和“柔性”的程度也有所不同,就好像是系統(tǒng)的“硬度”有所不同,因而有了所謂的“硬實(shí)時(shí)(hard real-time)”和“軟實(shí)時(shí) ( soft real-time)”。硬實(shí)時(shí)系統(tǒng)有一個(gè)剛性的、不可改變的時(shí)間限制,它不允許任何超出時(shí)限的錯(cuò)誤。超時(shí)錯(cuò)誤會(huì)帶來損害甚至導(dǎo)致系統(tǒng)失敗、或者導(dǎo)致系統(tǒng)不能實(shí)現(xiàn)它的預(yù)期目標(biāo)。軟實(shí)時(shí)系統(tǒng)的時(shí)限是一個(gè)柔性靈活的,它可以容忍偶然的超時(shí)錯(cuò)誤。失敗造成的后果并不嚴(yán)重,例如在網(wǎng)絡(luò)中僅僅是輕微地降低了系統(tǒng)的吞吐量。
Linux本身原來并不是為了實(shí)時(shí)性而設(shè)計(jì)的操作系統(tǒng)。為了在Linux系統(tǒng)中增加實(shí)時(shí)性,典型的方法是采用“架空”Linux kernel,使得real-time進(jìn)程得以盡快的被執(zhí)行。所以,這種系統(tǒng)中的實(shí)時(shí)任務(wù)(real-time task) 其實(shí)并不是一個(gè) Linux的進(jìn)程,而是一個(gè)Linux的可加載的Kernel模塊( loadable kernel module),或者是一個(gè)實(shí)時(shí)驅(qū)動(dòng)程序的架構(gòu),算不上是真正的real-time Linux。但由于它出現(xiàn)的早,且其架構(gòu)很符合自動(dòng)控制的需求,因此使用者非常多。
風(fēng)河系統(tǒng)公司最近從FSMLabs購買的硬實(shí)時(shí)Linux技術(shù)——RTLinux,是一個(gè)完整的發(fā)布版本,把Linux kernel、文件系統(tǒng)和工具鏈(toolchain)與RTCore硬實(shí)時(shí)執(zhí)行技術(shù)結(jié)合起來,形成了一個(gè)基于Linux的完整硬實(shí)時(shí)解決方案。風(fēng)河公司經(jīng)過測(cè)試驗(yàn)證發(fā)現(xiàn),針對(duì)不同的測(cè)試基準(zhǔn),其性能可以達(dá)到軟實(shí)時(shí)Linux系統(tǒng)的2-5倍。
簡(jiǎn)單地說,RTCore是一個(gè)為了達(dá)到實(shí)時(shí)性而進(jìn)行的“中斷抽象”。這種實(shí)時(shí)執(zhí)行技術(shù)提供了一個(gè)硬件抽象層,可以管理系統(tǒng)中所有的硬件中斷,處理所有的實(shí)時(shí)響應(yīng)。當(dāng)所有的實(shí)時(shí)請(qǐng)求都處理完后,才把非實(shí)時(shí)性的工作交給標(biāo)準(zhǔn)的Linux kernel。這種做法可以獲得雙重好處——一方面為應(yīng)用提供了必須的硬實(shí)時(shí)能力,另一方面又不需要對(duì)標(biāo)準(zhǔn)Linux進(jìn)行任何修改,從而可以保證對(duì)于第三方應(yīng)用以及其他Linux進(jìn)程的完全兼容性。{{分頁}}
以DSO方法實(shí)現(xiàn)全面提升
電子產(chǎn)品的發(fā)展普遍存在“繼承性”。也就是說,大多數(shù)新產(chǎn)品都是在上一代產(chǎn)品的基礎(chǔ)上升級(jí)更新,增加新的功能特性,丟棄舊的功能。與傳統(tǒng)市場(chǎng)相比,消費(fèi)電子產(chǎn)品具有更強(qiáng)的時(shí)尚性。傳統(tǒng)電子產(chǎn)品曾經(jīng)是以年為周期,而當(dāng)今消費(fèi)電子產(chǎn)品跟時(shí)裝差不多,以季節(jié)為周期來更新?lián)Q代了。相應(yīng)地,消費(fèi)電子產(chǎn)品開發(fā)的模式必須緊跟市場(chǎng)變化的節(jié)奏。傳統(tǒng)上那種每個(gè)產(chǎn)品都從頭開始開發(fā)以及單個(gè)產(chǎn)品的開發(fā)團(tuán)隊(duì)獨(dú)自工作的模式已經(jīng)跟不上形勢(shì),只有在整個(gè)企業(yè)范圍內(nèi)實(shí)行標(biāo)準(zhǔn)化、系列化、組合式和迭代式的開發(fā)模式,盡可能增加軟件模塊的重復(fù)使用,才能降低開發(fā)成本、縮短產(chǎn)品上市時(shí)間,在市場(chǎng)上占據(jù)有利地位。這種新的開發(fā)模式,就是如今設(shè)備軟件開發(fā)領(lǐng)域常常提到的DSO(Device Software Optimization,設(shè)備軟件優(yōu)化)方法論。
圖2 DSO方法論在設(shè)備軟件開發(fā)中的應(yīng)用
DSO方法論是總結(jié)過去25年來企業(yè)網(wǎng)絡(luò)化和分布式計(jì)算領(lǐng)域逐漸積累起來的策略、方法和最佳實(shí)踐,致力于優(yōu)化設(shè)備軟件的開發(fā)流程。歸納起來看,DSO把過去多年的經(jīng)驗(yàn)歸納為以下幾個(gè)方面,并以此作為自己的支柱。第一,在整個(gè)產(chǎn)品開發(fā)項(xiàng)目生命周期中實(shí)現(xiàn)工具和流程的標(biāo)準(zhǔn)化;第二,采用集成化的開發(fā)和運(yùn)行時(shí)環(huán)境,包括支持商業(yè)化的硬件、中間件、操作系統(tǒng)和開發(fā)框架;第三,吸收和利用由開放源代碼社區(qū)產(chǎn)生的代碼、工具和協(xié)議;第四,減少對(duì)私有技術(shù)的依賴,盡量采用符合業(yè)界標(biāo)準(zhǔn)的參考解決方案;第五,以工程項(xiàng)目和市場(chǎng)需求為依據(jù),對(duì)開發(fā)人員進(jìn)行靈活有效的管理,擺脫私有技術(shù)的鎖定。
Yankee Group分析師指出,設(shè)備軟件生命周期的發(fā)展趨勢(shì)正在走向集成化、構(gòu)件化、可重用、標(biāo)準(zhǔn)化、開源以及開發(fā)技能的歸一化。電子產(chǎn)品制造商和軟件工具提供商必須尋求開放、集成化并且基于行業(yè)標(biāo)準(zhǔn)的方法,才能符合DSO的要求。由于廣泛而深入地吸收了過去20多年整個(gè)軟件產(chǎn)業(yè)的經(jīng)驗(yàn),DSO可以更好地保證設(shè)備軟件的質(zhì)量和開發(fā)效率。
全球領(lǐng)先的設(shè)備軟件優(yōu)化解決方案提供商風(fēng)河系統(tǒng)公司是最早宣布全面提供DSO平臺(tái)支持的廠商,目前在全球DSO營收和市場(chǎng)份額均居首位,為全球范圍的設(shè)備軟件開發(fā)人員提供每周7天、全天24小時(shí)的技術(shù)支持,其軟件產(chǎn)品則已經(jīng)運(yùn)行在全球數(shù)以億計(jì)的電子產(chǎn)品之中。
有了DSO方法論和硬實(shí)時(shí)技術(shù)的加持,消費(fèi)電子開發(fā)商已經(jīng)可以放心地采用Linux作為其產(chǎn)品的操作系統(tǒng)平臺(tái)。相信業(yè)界已經(jīng)注意到,就在不久前,風(fēng)河系統(tǒng)公司與全球領(lǐng)先的無線半導(dǎo)體供應(yīng)商德州儀器(Texas Instruments Incorporated,TI)宣布合作開發(fā)支持德州儀器OMAP2430手持設(shè)備與個(gè)人數(shù)字助理(PDA)應(yīng)用處理器的風(fēng)河Linux設(shè)備軟件平臺(tái),以及風(fēng)河Workbench開發(fā)工具套件(包含Workbench 片上調(diào)試工具等),由風(fēng)河Linux平臺(tái)支持OMAP2430處理器的高級(jí)多媒體功能,幫助移動(dòng)手持設(shè)備制造商能夠更快速、更經(jīng)濟(jì)地開發(fā)、測(cè)試和部署各種下一代贏利型多媒體應(yīng)用,如視頻會(huì)議、數(shù)字應(yīng)約、移動(dòng)終端互聯(lián)游戲(mobile-to-mobile gaming)和移動(dòng)電視(mobile TV)等。這件事情足以說明,風(fēng)河公司的商用級(jí)Linux和OMAP處理器的高級(jí)多媒體功能特性可以為電子設(shè)備制造商提供支持豐富多媒體應(yīng)用和移動(dòng)應(yīng)用的Linux平臺(tái)系統(tǒng),進(jìn)一步降低這些應(yīng)用從開發(fā)到上市的時(shí)間和成本。
linux相關(guān)文章:linux教程
評(píng)論