汽車操作系統(tǒng)典型可分為兩大類,一類是針對異構(gòu)高性能運(yùn)算芯片和新型E/E架構(gòu)帶來的整車系統(tǒng),另一類是針對中控車機(jī)的。這里有非常多的基礎(chǔ)概念需要理清。
什么是操作系統(tǒng),狹義的操作系統(tǒng)包含原創(chuàng)的內(nèi)核。目前主流原創(chuàng)內(nèi)核不外乎Linux、微內(nèi)核和Windows三種。實(shí)際上我們熟悉的Linux只是內(nèi)核而不能稱得上是操作系統(tǒng),Ubuntu才是操作系統(tǒng)。內(nèi)核它沒有統(tǒng)一的操作接口,都需要自己開發(fā)。絕大部分程序員都不關(guān)心內(nèi)核,操作系統(tǒng)用系統(tǒng)調(diào)用,system call來為程序員服務(wù),當(dāng)然,直接使用系統(tǒng)調(diào)用是非常繁瑣的,因此通常會在這之上提供一層封裝。如果是Windows,這個封裝就是Windows API,Linux只是一個開源的內(nèi)核,如果一定要找一個類似的東西話那就是libc,也就是C標(biāo)準(zhǔn)庫,這里同樣包括了對系統(tǒng)調(diào)用的封裝以及一些庫函數(shù),但libc不包含創(chuàng)建帶有圖形界面應(yīng)用程序的功能。
目前座艙的操作系統(tǒng)可以分為三大類:一是微內(nèi)核的QNX;另一類是基于Linux的,包括像特斯拉這樣的Linux直改,還有車規(guī)級Linux的AGL,還有GENIVI聯(lián)盟(更名為COVESA);再一大類是安卓,包括了兩種,一種是國內(nèi)的安卓直接改,還有一類是谷歌特別為車載推出的AAOS,注意,這可不是Android Auto那種App。為什么要把安卓獨(dú)立在Linux之外,下文會說。華為的鴻蒙也勉強(qiáng)可以算是Linux直改,但它不能算嚴(yán)格的微內(nèi)核,也不是Linux的宏內(nèi)核,叫Split-Kernel比較合適,拿了宏內(nèi)核的組件構(gòu)成了微內(nèi)核。
2021-2026年新車座艙操作系統(tǒng)預(yù)測
來源:佐思汽研
操作系統(tǒng),應(yīng)用軟件設(shè)計,網(wǎng)絡(luò)協(xié)議棧等等,都體現(xiàn)了分層思想。分層中,每個層次負(fù)責(zé)不同的功能。一般來講,下層為上層提供服務(wù),上層不要知道下層的具體實(shí)現(xiàn)細(xì)節(jié),只需使用下層提供的服務(wù)。而層與層之間聯(lián)系的橋梁就是“API接口”。OS調(diào)用硬件提供的API,軟件調(diào)用OS提供的API,而用戶調(diào)用軟件提供的API。
圖片來源:互聯(lián)網(wǎng)
典型的嵌入式系統(tǒng)結(jié)構(gòu)如上圖,實(shí)際硬件平臺還可以再分為兩部分,一部分是板級支持包即BSP,一部分是硬件本身。BSP是介于主板硬件和操作系統(tǒng)中驅(qū)動層程序之間的一層,一般認(rèn)為它屬于操作系統(tǒng)一部分,主要是實(shí)現(xiàn)對操作系統(tǒng)的支持,為上層的驅(qū)動程序提供訪問硬件設(shè)備寄存器的函數(shù)包,使之能夠更好的運(yùn)行于硬件主板,類似于電腦的BIOS。BSP就是操作系統(tǒng)與硬件間的接口。
后來微軟發(fā)現(xiàn),程序設(shè)計直接與硬件通信,是造成系統(tǒng)不穩(wěn)定的主要原因。在得出這個結(jié)論的基礎(chǔ)上,微軟公司在Windows NT上取消了對硬件的直接訪問,首先提出了硬件抽象層 (Hardware AbstractionLayer ,簡稱HAL) 的概念,硬件抽象層就是:“將硬件差別與操作系統(tǒng)其他層相隔離的一薄層軟件,它是通過采用使多種不同硬件在操作系統(tǒng)的其他部分看來是同一種虛擬機(jī)的做法來實(shí)現(xiàn)的。這種 HAL設(shè)計思路被一些嵌入式操作系統(tǒng)參考,其系統(tǒng)內(nèi)核被分成兩層,上層稱為“內(nèi)核(Kernel)”,底層則稱為 “硬件抽象層 ”。
促使HAL出現(xiàn)的另一個原因是芯片的指令集系統(tǒng)越來越復(fù)雜,且迭代速度很快。不將硬件隔離,軟件工作復(fù)用率太低。
圖片來源:互聯(lián)網(wǎng)
引入HAL之后操作系統(tǒng)將會使用相對更為統(tǒng)一的HAL接口來實(shí)現(xiàn)對硬件的操作,而不是直接使用BSP庫。當(dāng)然,HAL庫的實(shí)現(xiàn)是基于BSP庫的,只是將其進(jìn)一步封裝,形成統(tǒng)一的標(biāo)準(zhǔn)。順序依次是hardware –> board support package –> hardware abstract layer –>driver –> operating system –> application,當(dāng)然嵌入式系統(tǒng)中操作系統(tǒng)并不是必須的,并且在操作系統(tǒng)和應(yīng)用程序之間可以再有一層中間件Middleware層,用于提供更多的系統(tǒng)功能,這個中間件Middleware層也被稱作SDK。
圖片來源:互聯(lián)網(wǎng)
上圖是安卓的架構(gòu),Android的硬件抽象層,簡單來說,就是對Linux內(nèi)核驅(qū)動程序的封裝,向上提供接口,屏蔽低層的實(shí)現(xiàn)細(xì)節(jié)。也就是說,把對硬件的支持分成了兩層,一層放在用戶空間(User Space),一層放在內(nèi)核空間(Kernel Space),其中,硬件抽象層運(yùn)行在用戶空間,而Linux內(nèi)核驅(qū)動程序運(yùn)行在內(nèi)核空間。傳統(tǒng)的Linux 系統(tǒng)則把對硬件的支持和管理全部放在內(nèi)核空間中,即把對硬件的全部支持都放在硬件驅(qū)動模塊當(dāng)中。
Android 在用戶空間中新建一個HAL層來支持硬件設(shè)備的主要原因還是因?yàn)锳ndroid 使用的開源協(xié)議是 Apache License,這個協(xié)議比較寬松,其允許開發(fā)者獲取并修改了源碼之后,不用把源碼公開出來。而 Linux 使用的開源協(xié)議 GPL,它的要求限制就比較多,要求開發(fā)者添加或修改了源碼之后,必須把添加或修改后的代碼公開出來。HAL層分開保護(hù)了開發(fā)廠家的利益,但脫離了Linux的開源,安卓是開放的,但不是開源的,這是為什么把安卓從Linux分出去的主要原因。
圖片來源:互聯(lián)網(wǎng)
上圖為QNX的架構(gòu),與安卓不同的是QNX沒有獨(dú)立的HAL層,QNX還是采用BSP的方式。
圖片來源:互聯(lián)網(wǎng)
上面為三種內(nèi)核架構(gòu)的對比,微內(nèi)核操作系統(tǒng)使用進(jìn)程來隔離系統(tǒng)組件,這些組件之間的通信使用了消息傳遞方式來實(shí)現(xiàn)一個組件對另一個組件的調(diào)用-這實(shí)際上是進(jìn)行了一次RPC(遠(yuǎn)程過程調(diào)用協(xié)議)調(diào)用。但這種類似RPC的方式是通過進(jìn)程間通信(IPC)機(jī)制實(shí)現(xiàn)的,其性能一般低于傳統(tǒng)操作系統(tǒng)的系統(tǒng)調(diào)用的性能。這個IPC有一點(diǎn)點(diǎn)HAL的意味。
因?yàn)镼NX是微內(nèi)核,這就意味著為其兼容性比較差,開放性比較差,當(dāng)然,換來的是實(shí)時性很好,安全性極高。安卓的開放性吸引了無數(shù)開發(fā)者,而QNX凡事都需要黑莓自己去做,這就是BSP需要為硬件定制,而基于QNX的應(yīng)用軟件自然就很少人開放。黑莓一家的開發(fā)能力有限。這也是鴻蒙為什么要兼容安卓的原因,不兼容根本無法推廣。
隨著座艙聯(lián)網(wǎng)功能的拓展,QNX顯得不合時宜。
Genivi在2021年10月改名為COVESA即Connected Vehicle Systems Alliance。其頂級成員是寶馬和博世,核心會員是電裝、現(xiàn)代摩比斯、LG、瑞薩、風(fēng)河、Mentor汽車和Geotab。其他重要成員還有奔馳、本田、現(xiàn)代汽車、ARM、瑞薩、英偉達(dá)、NXP。寶馬、奔馳幾乎全線使用GENIVI的Linux平臺,現(xiàn)代的Genesis也是如此,其他廠家較少見到有用Genivi。
AGL即Automotive Grade Linux,車規(guī)級Linux。成立于2016年1月,但是第一版AGL發(fā)布是在2014年的6月30日,實(shí)際上就是Tizen的修改版,Tizen源自三星,Tizen是三星電子開發(fā)的一款基于Linux核心的開放源代碼移動操作系統(tǒng),可適用設(shè)備包括智能手機(jī)、平板電腦、智能手表、上網(wǎng)本、車載信息娛樂設(shè)備(IVI)和智能電視。該項(xiàng)目最初由Linux基金會以及LiMo基金會合力推出,目的在于取代MeeGo與LiMo平臺。在Linux基金會中,由技術(shù)指導(dǎo)小組(TSG)管理。目前三星是唯一推出使用 Tizen 的設(shè)備的業(yè)者,也是 Tizen 的最大支持者。至 2017 年結(jié)束,Tizen 是世界第二大智能手表操作系統(tǒng),僅次于蘋果 watchOS,比基于 Android 的 Wear OS 還要多。2011年9月,三星和英特爾與Linux基金會宣布致力在2012年開發(fā)出Tizen,2012年1月1日,LiMo基金會更名為Tizen協(xié)會。大概在2015年,Tizen就基本沒人支持了,但是AGL開始慢慢起來。這也算是失之東隅,收之桑榆。
AGL的頂級白金會員有亞馬遜、馬自達(dá)、電裝、瑞薩、鈴木、豐田、松下。白銀會員則有愛信精機(jī)、奔馳、福特、高通、上汽、大眾。其他重要會員還有阿爾派、ARM、博世、BOSE、中國移動、大陸、德賽西威、富士通、本田、現(xiàn)代、三星哈曼、HERE、日立、GreenHills、英特爾、JVC建伍、李爾、LG、馬瑞利、Mentor、Microchip、三菱、NEC、東軟、日本精機(jī)、NXP、英偉達(dá)、三星、先鋒、索尼、東芝、Telechips、德州儀器。
目前采用AGL的車型主要有新一代奧迪MIB3TOP、豐田凱美瑞、馬自達(dá)3和斯巴魯傲虎及力獅。還有一款奔馳的MPV。大眾在2019年4月加入AGL,大眾未來也極有可能選用AGL做車機(jī)系統(tǒng)。
AGL的主要優(yōu)勢之一是它的統(tǒng)一代碼庫(UCB),這是一個新的Linux發(fā)行版,它基于AGL和另外兩個汽車開源項(xiàng)目:Tizen和GENIVI Alliance。UCB是第二代Linux汽車系統(tǒng)。它從底層開始開發(fā),一直到特定的汽車應(yīng)用軟件。完成了操作系統(tǒng)大約70%的工作。
目前AGL應(yīng)用都在IVI(In-VehicleInfotainment)上,AGL正努力開拓在儀表和ADAS領(lǐng)域,不過這兩個領(lǐng)域?qū)?shí)時性要求較高,阻力很大。
在很多廠家都使用手機(jī)版安卓之時,谷歌也分別推出了Android Auto和Android Automotive OS,安卓Auto是一個超級App,不是一個操作系統(tǒng),但Android Automotive OS就是一個操作系統(tǒng),簡稱AAOS。Android 官網(wǎng)上, Android Auto這個分類,是和 Android TV、WebOS by Google 并列。而在 Android 官網(wǎng)開發(fā)者頁面處,我們能發(fā)現(xiàn)更多谷歌意圖獨(dú)立車載系統(tǒng)的想法。在Google官方的「Android developer guide」(安卓開發(fā)者指南)中,Android Automotive OS和Chrome OS也是以「OS(operationsystem,操作系統(tǒng))」命名的。AAOS確實(shí)是為了解決Android本身在車機(jī)方面的一些問題。Automotive OS采用了與正代安卓差異較大的顯示和交互邏輯,「區(qū)塊」成為 Automotive OS 最基本的設(shè)計語言。在操作準(zhǔn)確度要求非常高的車內(nèi)環(huán)境里面,觸屏相對孱弱的反饋被谷歌以碩大的圖標(biāo)設(shè)計和菜單劃分得以補(bǔ)償。
早在2016年,Google官方統(tǒng)計,安卓的碎片化版本已經(jīng)達(dá)到了6000多個不同的版本,而且隨著時間的推移,安卓的版本碎片化也越來越嚴(yán)重。早年,在手機(jī)領(lǐng)域,同等條件下,相比安卓系統(tǒng)而言,蘋果的系統(tǒng)會更加的流暢一點(diǎn),也是安卓碎片化最被詬病的槽點(diǎn)。這其中有兩個主要原因。安卓平臺最大的缺點(diǎn)就是碎片化嚴(yán)重,設(shè)備繁多,品牌眾多,版本各異,分辨率不統(tǒng)一等,任何一個成功的智能操作系統(tǒng)都是由龐大的軟件資源支撐起來,這要求系統(tǒng)和硬件有一定的一致性,這才能確保軟件的兼容性,以確保軟件和設(shè)備完全兼容。而由于Android完全免費(fèi)以及完全開源的性質(zhì),最終導(dǎo)致Android設(shè)備的軟件兼容性變差。一言以概之,因?yàn)?,?nèi)核選擇更小,可以由車企自由定制,并管理版本。超98%的應(yīng)用存在開發(fā)隱患、修復(fù)管理滯后、漏洞監(jiān)測困難等安全風(fēng)險。92%安卓應(yīng)用存在過度獲取隱私權(quán)限。作為一款車載,很多情況下,是不需要考慮兼容Android的所有應(yīng)用,也不會允許別的第三方軟件加入進(jìn)來,這相對于自身也是一種保護(hù)。
安卓是有大量的應(yīng)用,但是不同廠商的定制系統(tǒng),很可能導(dǎo)致未經(jīng)過A廠商設(shè)備適配的B廠商安卓應(yīng)用無法安裝、使用出錯、安全問題。同時,Android國內(nèi)版本的大量應(yīng)用,在不同的應(yīng)用市場無法做到嚴(yán)格審核,安全存隱患。
最終于2017年3月,谷歌正式宣布AAOS,第一個采用AAOS的是沃爾沃旗下的電動車Polestar。
2022 GMC Hummer EV
2022 GMC Sierra
2022 GMC Yukon
2022 Chevrolet Tahoe
2022 Chevrolet Suburban
2022 Chevrolet Silverado
2023 Cadillac Lyriq
2022 Renault Mégane E-Tech Electric
2021 Volvo XC40 P8
2021 Volvo XC40 Recharge
2022 Volvo C40 Recharge
2022 Volvo XC60
2022 Volvo S90
2022 Volvo V90
2022 Volvo V90 Cross Country
2021 Lucid Air
上面為確定使用AAOS的車型,還未確定車型但確定使用的還有2023年的PSA與FCA,包括Dodge Durango 和Chrysler Pacifica,2023年的福特和林肯,2022年的本田。
目前AAOS主要在英特爾A3900系列和高通SA8150/8155上運(yùn)行,谷歌一開始就是和英特爾合作,A3900系列的AAOS的支持度比高通還高。
AAOS的架構(gòu)
圖片來源:互聯(lián)網(wǎng)
圖片來源:互聯(lián)網(wǎng)
典型的AAOS,第一輛采用AAOS的車沃爾沃旗下的Polestar 2,由安波福供應(yīng)車機(jī)和軟件系統(tǒng),屏幕尺寸為11.15英寸,分辨率1536*1152,這個分辨率相當(dāng)高,AAOS也需要高分辨率,硬件是英特爾的A3950,eMMC高達(dá)128GB。AAOS的基本要求比較高,至少4GiB的RAM,32GB的eMMC。
安卓系統(tǒng)最難的是顯示圖像啟動時間慢,特別是倒車影像或360環(huán)視,這是業(yè)者需要特別下功夫的地方。AAOS特別提供了EVS模塊,專門應(yīng)對外接攝像頭,保證圖像2秒內(nèi)啟動成像。
圖片來源:互聯(lián)網(wǎng)
AAOS自然離不開谷歌的服務(wù),如谷歌助手,谷歌地圖等,所有這些服務(wù)都是要收費(fèi)的,估計是和車廠有分成協(xié)議,要不然AAOS根本無法推廣,谷歌沒有動力,車廠也沒有動力。
圖片來源:互聯(lián)網(wǎng)
谷歌的野心當(dāng)然不只是車機(jī),谷歌是要覆蓋車內(nèi)的全部應(yīng)用,包括自動駕駛和儀表等等,早在2016年就開發(fā)了Fuchsia,這是一個基于Zircon的微內(nèi)核操作系統(tǒng),可以用于車內(nèi)要求安全等級高的領(lǐng)域,如儀表和自動駕駛。 谷歌不僅要占有你的手機(jī),還要占有你的汽車,當(dāng)然,蘋果也不會閑著。