“硬實(shí)時(shí)”為L(zhǎng)inux注入新活力
摘要: 本文從Linux在設(shè)備軟件領(lǐng)域應(yīng)用的日益廣泛引出Linux在實(shí)時(shí)性方面值得關(guān)注的問題,簡(jiǎn)要介紹了“硬實(shí)時(shí)”與“軟實(shí)時(shí)”的差異,以及哪些應(yīng)用場(chǎng)合必須要求“硬實(shí)時(shí)”的設(shè)備軟件平臺(tái),最后指出了獲得真正硬實(shí)時(shí)Linux解決方案的途徑。
關(guān)鍵詞: 嵌入式;設(shè)備軟件;實(shí)時(shí)性;Linux;硬實(shí)時(shí)
將Linux作為電子設(shè)備的軟件開發(fā)和運(yùn)行平臺(tái),這早已成為設(shè)備軟件領(lǐng)域的熱門話題,這的確可以為電子產(chǎn)品制造企業(yè)帶來不少好處。然而,由于Linux一直都只能提供軟實(shí)時(shí)(soft real-time)性能,而在汽車控制、工業(yè)控制、電信基礎(chǔ)建設(shè)等諸多需要硬實(shí)時(shí)性能的應(yīng)用中,都無法采用只有“軟實(shí)時(shí)”能力的Linux,這就使得許多對(duì)時(shí)間較為敏感的應(yīng)用都成為L(zhǎng)inux難以涉入的禁地。
最近,美國(guó)風(fēng)河系統(tǒng)公司從FSMLabs購(gòu)買了硬實(shí)時(shí)Linux技術(shù)—RTLinux,并將其與風(fēng)河全球領(lǐng)先的Linux設(shè)備軟件平臺(tái)的結(jié)合,為電子設(shè)備制造商提供一套成熟、可靠的全新技術(shù),用于開發(fā)和部署各種基于Linux的下一代應(yīng)用,滿足電子設(shè)備制造商們對(duì)“硬實(shí)時(shí)(hard real-time)”特性的需求,例如功能型手機(jī)、需要高容量流媒體的數(shù)字圖像應(yīng)用以及包括車輛避撞系統(tǒng)在內(nèi)的各類車載應(yīng)用等。其中,集成RTLinux技術(shù)的Wind River Platform for Consumer Devices, Linux Edition可以把各種基于Linux的高速包交換設(shè)備軟件應(yīng)用提升到一個(gè)全新的高性能級(jí)別。
那么,就讓我們一起來了解一下,“硬實(shí)時(shí)”和“軟實(shí)時(shí)”有什么樣的區(qū)別,哪些場(chǎng)合必須有“硬實(shí)時(shí)”的軟件系統(tǒng)來實(shí)現(xiàn),以及怎樣才能獲得真正具有“硬實(shí)時(shí)”特性的Linux平臺(tái)。
實(shí)時(shí)性的“軟”和“硬”
實(shí)時(shí)操作系統(tǒng) (Real-time OS) 是相對(duì)于分時(shí)操作系統(tǒng) (Time-Sharing OS) 的一個(gè)概念。在一個(gè)分時(shí)操作系統(tǒng)中,計(jì)算機(jī)資源會(huì)被平均地分配給系統(tǒng)內(nèi)所有的工作。在分時(shí)系統(tǒng)中,各項(xiàng)任務(wù)需要花多長(zhǎng)時(shí)間來完成,這一點(diǎn)并不重要;而在一個(gè)實(shí)時(shí)操作系統(tǒng)之中,最關(guān)注的是每個(gè)任務(wù)在多長(zhǎng)時(shí)間內(nèi)可以完成。簡(jiǎn)單地說,實(shí)時(shí)和分時(shí)操作系統(tǒng)最大的不同在于 “時(shí)限(deadline)”這個(gè)概念。
從上述區(qū)別中可以看出,在實(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ì)帶來?yè)p害甚至導(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)的吞吐量。
當(dāng)你從事設(shè)備軟件開發(fā)時(shí),首先需要知道該系統(tǒng)究竟屬于硬實(shí)時(shí)、軟實(shí)時(shí)還是非實(shí)時(shí)系統(tǒng),這一點(diǎn)很重要。這三種系統(tǒng)所要求的編程技術(shù)和規(guī)范存在很大差別。
風(fēng)河公司認(rèn)為,硬實(shí)時(shí)與軟實(shí)時(shí)之間最關(guān)鍵的差別在于,軟實(shí)時(shí)只能提供統(tǒng)計(jì)意義上的實(shí)時(shí)。例如,有的應(yīng)用要求系統(tǒng)在95%的情況下都會(huì)確保在規(guī)定的時(shí)間內(nèi)完成某個(gè)動(dòng)作,而不一定要求100%。在許多情況下,這樣的“軟性”正確率已經(jīng)可以達(dá)到用戶期望的水平。比如,用戶在操作DVD播放機(jī)時(shí),只要98%的情況都能正常播放,用戶可能就滿意了;而發(fā)射衛(wèi)星、控制核反應(yīng)堆的應(yīng)用系統(tǒng),這些系統(tǒng)的實(shí)時(shí)性必須達(dá)到100%,是絕對(duì)不允許出現(xiàn)意外的。
何時(shí)需要“硬實(shí)時(shí)”?
幾乎在每個(gè)行業(yè)垂直市場(chǎng)都有大量的應(yīng)用系統(tǒng)要求必須采用硬實(shí)時(shí)才能達(dá)到。例如,在網(wǎng)絡(luò)基礎(chǔ)設(shè)施市場(chǎng),電信應(yīng)用的關(guān)鍵業(yè)務(wù)常常就對(duì)硬實(shí)時(shí)、軟實(shí)時(shí)和超高速包傳輸提出了綜合性的要求。在許多對(duì)服務(wù)水平有特定要求的話音和其它媒體流傳輸應(yīng)用中,對(duì)硬實(shí)時(shí)的要求顯然超出了市場(chǎng)上現(xiàn)有通用操作系統(tǒng)所能提供的水平。高吞吐量以及高密度數(shù)據(jù)交換網(wǎng)絡(luò)也會(huì)令簡(jiǎn)單的網(wǎng)絡(luò)堆棧和傳統(tǒng)In-House的嵌入式操作系統(tǒng)陷入性能拙劣的泥潭。
即使在當(dāng)今的消費(fèi)電子市場(chǎng),移動(dòng)電話中的調(diào)制解調(diào)器控制和應(yīng)用處理都離不開硬實(shí)時(shí)技術(shù),以便減少芯片組的數(shù)量,降低硬件成本。特別是手機(jī)設(shè)計(jì)者希望采用單核處理器來實(shí)現(xiàn)這些功能的時(shí)候就更是如此。在數(shù)字音響和視頻設(shè)備中,更是不乏硬實(shí)時(shí)技術(shù)的大量應(yīng)用。數(shù)碼相機(jī)的快門只要被按下,就必須跟隨一連串確定的動(dòng)作,否則就無法拍出高質(zhì)量的照片。
更嚴(yán)重的情況是,在有些領(lǐng)域系統(tǒng)出錯(cuò)可能導(dǎo)致重大的損失,甚至是人命關(guān)天的。例如航空與國(guó)防應(yīng)用中的指令控制、導(dǎo)航、安全、武器控制等,還有飛機(jī)駕駛模擬系統(tǒng)等應(yīng)用,都需要將復(fù)雜的計(jì)算、存儲(chǔ)、顯示和機(jī)電控制系統(tǒng)有條不紊地協(xié)調(diào)起來。工業(yè)生產(chǎn)流水線,特別是在化工、電力、交通等行業(yè),都有許多精確度極高的機(jī)電控制系統(tǒng)。所有這些應(yīng)用,毫無疑問都必須建立在硬實(shí)時(shí)技術(shù)的基礎(chǔ)之上。
怎樣獲得真正的硬實(shí)時(shí)Linux?
如果我們?cè)谡麄€(gè)業(yè)界尋找最具有硬實(shí)時(shí)性的操作系統(tǒng),大家公認(rèn)的一定是風(fēng)河系統(tǒng)公司的VxWorks。以此為參照,可以讓我們對(duì)市場(chǎng)上可供選擇的實(shí)時(shí)性Linux操作系統(tǒng)有一個(gè)更為清晰的認(rèn)識(shí)。
首先,VxWorks與Linux相比,實(shí)現(xiàn)硬實(shí)時(shí)性的方式是完全不同的。VxWorks從最基礎(chǔ)的架構(gòu)開始就是按照硬實(shí)時(shí)性的標(biāo)準(zhǔn)來設(shè)計(jì)的,因此從操作系統(tǒng)整體架構(gòu),到其中的每一個(gè)組成部分,都具有無可挑剔的硬實(shí)時(shí)性。
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購(gòu)買的硬實(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)程的完全兼容性。
也許有人會(huì)問,現(xiàn)在已經(jīng)有開放源代碼的硬實(shí)時(shí)Linux,為什么風(fēng)河公司還有花錢去買過來,再補(bǔ)充到自己原有的Linux平臺(tái)之中呢?風(fēng)河公司認(rèn)為,購(gòu)買RTCore技術(shù)可以讓W(xué)ind River Linux平臺(tái)擁有成熟并且經(jīng)過實(shí)用測(cè)試硬實(shí)時(shí)能力,立刻向電子設(shè)備廠商提供相應(yīng)的解決方案。盡管在開放源碼社區(qū)可以獲得實(shí)時(shí)Linux技術(shù),但是RTLinux是唯一提供商業(yè)化支持與服務(wù)的硬實(shí)時(shí)Linux解決方案。還有些宣稱具有實(shí)時(shí)性的Linux解決方案,并不一定具有硬實(shí)時(shí)能力,而且更重要的是,在這種平臺(tái)上所開發(fā)的應(yīng)用軟件很難在多種架構(gòu)平臺(tái)之間移植。
結(jié)語
風(fēng)河公司購(gòu)買并融合RTCore技術(shù),將會(huì)使Wind River Linux平臺(tái)的客戶在獲得硬實(shí)時(shí)特性的同時(shí)免于受到GPL的限制。因?yàn)轱L(fēng)河公司所購(gòu)買的TRLinux包括專利、版權(quán)、商標(biāo)和相關(guān)的產(chǎn)品權(quán)利,從而可以不受限制地服務(wù)于新型的Linux設(shè)備軟件市場(chǎng)。由此獲得的知識(shí)產(chǎn)權(quán)將會(huì)為致力于基于Linux的實(shí)時(shí)應(yīng)用解決方案開發(fā)人員提供有力的支持。
評(píng)論