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