如何讓汽車(chē)設計更加安全
針對嵌入式軟件應用,風(fēng)河(Wind River)系統公司Mobile Linux產(chǎn)品資深總監Chris Buerger指出,很多大公司雖然面向不同的市場(chǎng)(比如網(wǎng)絡(luò )設備商華為和汽車(chē)廠(chǎng)商BMW),但是它們都投入了很多資源去支持開(kāi)放源代碼。這其中最大的挑戰是安全性問(wèn)題,特別是Android,基本所有的開(kāi)放源碼都存在這方面的隱患。在開(kāi)源方面,風(fēng)河主要面向三個(gè)與Linux相關(guān)的操作系統:Android、基于Yocto的Linux和Genivi Linux。
Android的優(yōu)勢在智能手機等移動(dòng)領(lǐng)域,而Linux本身的起源則是服務(wù)器的操作系統。Linux早在十年前就在服務(wù)器中興起,現在才逐漸延伸到設備領(lǐng)域?,F在有個(gè)很新的趨勢是,Android原來(lái)只是應用在手機和平板領(lǐng)域,現在正逐漸走向其他領(lǐng)域,比如血液透析儀、停車(chē)咪表和ATM機等。將Android應用到與人類(lèi)自身安全相關(guān)的領(lǐng)域時(shí),就需要特別小心!
Genivi是一個(gè)面向車(chē)載的協(xié)會(huì ),從操作系統來(lái)看包括兩個(gè)部分,一個(gè)已經(jīng)在用,一個(gè)還在討論之中。目前已經(jīng)在用的是基于Yocto的Linux,正在討論的是從Meego沿襲而來(lái)的Tizen。Meego最開(kāi)始的主要推動(dòng)者是Intel和Nokia。Nokia轉向和微軟合作后,Intel得到了另外兩個(gè)合作伙伴:三星和華為。目前是Intel在領(lǐng)導Genivi Linux的版本發(fā)布。風(fēng)河也有和其專(zhuān)門(mén)配合的Linux版本。
風(fēng)河車(chē)載解決方案資深產(chǎn)品經(jīng)理Franz Walkembach表示,風(fēng)河把Linux、Yocto和Genivi串聯(lián)起來(lái),積極地參與Yocto、Genivi這些標準制定組織,同時(shí),又把這些規范融入到自己的產(chǎn)品中。Genivi有很多的技術(shù)規范和要求,通過(guò)把它們融合到Yocto項目中,便可以很方便地形成車(chē)載信息娛樂(lè )(IVI)解決方案。
Genivi協(xié)會(huì )內部經(jīng)常討論,如何把Genivi和Android連接起來(lái)開(kāi)發(fā)IVI解決方案。目前,有一種解決方案是通過(guò)為它們創(chuàng )建符合性文件提供支持。第二種解決方案是將Genivi專(zhuān)有組件合并到Android中,這樣成本和維護都非常大。還有一種解決方案是保留Genivi的符合性文件,并將Android融入其中,然后采用Hypervisor虛擬化方案,將系統劃分成兩個(gè)區塊,分別運行兩者的功能。在汽車(chē)行業(yè),這是一個(gè)特別的情況。另外,用戶(hù)并不關(guān)心系統內部是Android功能還是Genivi功能,因此,在同一個(gè)界面中提供所有功能是一個(gè)很大的挑戰。這個(gè)問(wèn)題非常復雜,比如系統會(huì )用到Intel和Freescale等廠(chǎng)商的芯片,也會(huì )采用來(lái)自不同機構的軟件。
國內外在操作系統的選擇上也有所不同。以BMW為例,其在中國的部門(mén)非常熱衷于A(yíng)ndroid開(kāi)發(fā),而在德國則習慣用Genivi開(kāi)發(fā)。Chris解釋道,BMW在中國有一個(gè)很大的研發(fā)中心,其中有很多的Android工程師,他們對Android更為熟悉。另外,中國的android工程師比德國要多得多。Genivi操作系統的兩個(gè)部分,從用戶(hù)角度來(lái)看,二者沒(méi)有太大區別,但其實(shí)現方法卻有差別,比如在開(kāi)源的圖形界面Qt上。用Android設計更容易做到開(kāi)發(fā)更快、成本更低。
手機和汽車(chē)設計也存在很多差別。首先,人機界面(HMI)在汽車(chē)和手機上非常不同,汽車(chē)互聯(lián)的狀況和手機不同。手機進(jìn)入汽車(chē),藍牙和車(chē)載音響配合會(huì )有不同的情況;手機和IVI對接時(shí)的連通不一樣;iPad或iPod與IVI連接時(shí)的情況也不同。第二,軟件堆棧也不相同。第三個(gè)非常大的不同是安全性。汽車(chē)采用Android系統后,整個(gè)系統的安全要求就不同了。
另外,消費電子需要提供不同的功能,以滿(mǎn)足個(gè)性化需求,而車(chē)載設備則不可能把各種不同的應用都整合到汽車(chē)當中。消費電子客戶(hù)的需求是快,每個(gè)人都有自己習慣的應用軟件。手機中有多個(gè)應用,用戶(hù)可能每周進(jìn)行一次更新。然而,汽車(chē)中包含導航、收音和播放等多個(gè)系統,如果同時(shí)更新的話(huà),數據量將非常驚人。因此,對于汽車(chē)OEM來(lái)講,一方面要滿(mǎn)足消費者對性能的要求,一方面又要滿(mǎn)足車(chē)載對安全性的要求。
在安全性上,德國曾做過(guò)一個(gè)模擬試驗:一個(gè)人在亞洲通過(guò)互聯(lián)網(wǎng)去攻擊在德國的一輛與Internet互聯(lián)的汽車(chē)。這種攻擊情況在測試時(shí)就需要考慮。又比如一個(gè)人在東歐,通過(guò)互聯(lián)網(wǎng)去控制一輛中國車(chē)的剎車(chē)系統。這種情況就可以采用風(fēng)河的Hypervisor進(jìn)行隔離,將多核分開(kāi)。另外,風(fēng)河設計了符合美國國家安全局(NSA)規范的安全加強(SE)的Android,此外還有SE Linux。同樣是Android,用來(lái)設計手機和設計與人安全相關(guān)的設備,要求是完全不同的。Android產(chǎn)品不只適用于手機平臺,還可以用來(lái)支持很多其他的智能終端應用。
在物聯(lián)網(wǎng)(M2M)方面的應用,Android可能并不是應該選擇的系統。因為物聯(lián)網(wǎng)中往往不存在移動(dòng)設備的應用環(huán)境(顯示、按鍵或觸摸等),所以比較好的選擇可能選擇Linux或VxWorks系統。手機中包含很多圖形處理的代碼,在物聯(lián)網(wǎng)應用上并不需要這些功能。關(guān)于汽車(chē)物聯(lián)網(wǎng)的應用,非常有趣的事是車(chē)與車(chē)之間的溝通。比如汽車(chē)相互靠近時(shí),它們都記錄了一些信息(堵車(chē)等交通信息),這時(shí)不需要人為介入,它們之間就可以進(jìn)行直接交流。這樣就可以達到交通便利的目的。還有車(chē)與云端的溝通等都無(wú)需人去介入。利用手機的藍牙或NFC功能,人與人見(jiàn)面可以直接交換信息;又比如男女朋友約會(huì ),不用帶名片,直接將手機一碰,就可以獲取信息?,F在,汽車(chē)之間也可以約會(huì )了!
汽車(chē)信息傳遞可以是通過(guò)WiFi與云端建立通信,將限速提醒等數據用于先進(jìn)駕駛員輔助系統(ADAS)。車(chē)內重要數據(比如引擎數據等)通常不會(huì )和IVI互連。通常有個(gè)誤解,既然手機中的功能(比如藍牙)都很強了,汽車(chē)中為何還需要這些功能?然而,從汽車(chē)的角度來(lái)看,是汽車(chē)通過(guò)藍牙和手機溝通,手機再與外網(wǎng)通信。這樣,通過(guò)許多車(chē)把信息(堵車(chē)、運行等)傳送到云端,服務(wù)提供商再把這些信息傳回,這樣就可以知道哪里堵車(chē)了等等。這樣問(wèn)題就來(lái)了。汽車(chē)中有WiFi,手機開(kāi)某個(gè)應用可能會(huì )和汽車(chē)相關(guān)聯(lián)。這樣,把這么復雜的系統快速啟動(dòng)將非常困難。這樣就要看情況了。不同的應用需要分先后順序啟動(dòng),比如主屏幕、藍牙互聯(lián)等立即啟動(dòng),而有些不重要的應用則可以稍緩。這些是可以規劃的。具體到哪些應用需要快速啟動(dòng),不同的廠(chǎng)商可能有不同的需求。
很多人認為手機采用的就是Android操作系統,組織一個(gè)團隊把軟件設計到汽車(chē)設備并不困難。這樣太低估了其中的挑戰。給汽車(chē)開(kāi)發(fā)解決方案和給手機開(kāi)發(fā)解決方案完全不同,一旦合同簽下后,這便是一條不歸路。這個(gè)過(guò)程從演示到開(kāi)發(fā),時(shí)間將越來(lái)越緊。只有充分了解這個(gè)行業(yè),站在整車(chē)的角度幫助車(chē)廠(chǎng)審查,然后將各部件整合到系統中,才能加快設計速度。
最后,對于剛入手嵌入式系統設計的工程師,Chris給出了自己的建議。嵌入式系統設計對穩定性的要求非常高。對于應用軟件開(kāi)發(fā),競爭對手比較多;而對于嵌入式系統開(kāi)發(fā),則競爭對手要少得多。如果進(jìn)入到這個(gè)領(lǐng)域,那么就祝賀您做出了一個(gè)非常好的選擇。這個(gè)圈子不像游戲軟件的開(kāi)發(fā),它非常穩定,競爭不是那么頻繁,并且大家在一起就像好朋友和家人一樣。另外,在嵌入式軟件領(lǐng)域,操作系統都是各公司所專(zhuān)有的。如果換一家公司,則相當于學(xué)習一種新的語(yǔ)言。因此,對于初學(xué)者來(lái)說(shuō),應該選一種用得較多的語(yǔ)言。對于初學(xué)者來(lái)說(shuō),VxWorks是一個(gè)非常好的學(xué)習起點(diǎn)。而對于Linux來(lái)說(shuō),就非常建議多去了解基于Yocto的Linux,因為Yocto是目前集中了最廣泛Linux資源的機構。(end) linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論