作業系統(Operating system,OS)管理著計算機系統的所有軟硬體,是汽車行業的關鍵軟體平臺,小到幾千行代碼的簡單控制程式,大到Linux、macOS、iOS和Windows等千萬級代碼的桌面級作業系統,每個作業系統在功能、程式大小、復雜性、開發作業、硬體需求、維保成本等方面都存在較大差異,
維基百科上雖然有Linux和QNX等主流作業系統的基本介紹,但涉及車載作業系統的資訊則少之又少,本文將在介紹作業系統基本概念的同時,著重講述車載作業系統的發展情形與趨勢,
一、作業系統概述
作業系統提供計算機硬體和應用程式之間的介面,通過遵循編程到作業系統中的規則和程式,限制應用程式使用硬體;提供簡化應用程式開發和執行的服務,包括將程式加載到記憶體、與傳感器和執行器通信、存盤結果等各種硬體資源管理的功能,還包括如中間件、庫及其他系統軟體功能,
作業系統的性能和生態系統對于開發“軟體定義汽車”所需的應用程式和軟體平臺是至關重要的,一個好的車載作業系統需要大型生態系統和可靠的架構支撐,
車載作業系統要求如下表所示:

*ISO 26262認證:道路車輛功能安全國際標準;
*ASIL等級:Automotive Safety Integrity Level,汽車安全完整性等級;
*ADAS:Advanced Driver Assistance System,高級駕駛輔助系統;
*AV:Autonomous Vehicles,自動駕駛汽車;
*ECU:Electronic Control Unit,電子控制單元;
*OTA:Over-the-Air Technology,空中下載技術;
*RAM:Random Access Memory,隨機存取存盤器;
*MCU:Microcontroller Unit,微控制單元,
作業系統的特性決定了其能力,例如,單任務作業系統一次只能運行一個程式,而多任務作業系統可以同時運行多個程式,單用戶作業系統無法區分用戶,但可允許多個程式同時運行;多用戶作業系統允許多個用戶同時與系統互動,擴展了多任務處理以運行來自多個用戶的程式,需要跟蹤每個用戶正在使用的軟硬體資源,
二、作業系統內核(OS kernel)
內核,是一個作業系統的核心,是基于硬體的第一層軟體擴充,提供作業系統最基本的功能,也是作業系統作業的基礎,內核負責管理系統的行程、記憶體、設備驅動程式、檔案和網路系統,決定著系統的性能和穩定性,是連接應用程式和硬體的橋梁,目前主流的作業系統內核架構有兩種:宏內核和微內核,
宏內核將所有系統呼叫和作業系統服務都整合在一起,優點為性能良好,而缺點在于耦合度高:一旦其中一個模塊出現問題,其他所有模塊都可能受到影響,Linux就是一種主流且經典的宏內核作業系統,

微內核的內核功能模塊通常是盡可能少的,只提供作業系統最核心的功能,對比宏內核,微內核架構多了系統呼叫的程序,因此性能相對較差,但其耦合度相對較低,具備更好的伸縮性和擴展性,從而使系統更加穩定;其模塊化的作業系統結構,更適合于大多數汽車的ECU系統,QNX實時作業系統就是其中的佼佼者,

三、虛擬機管理程式作業系統(Hypervisor OS)
虛擬機管理程式是用于管理多個作業系統及其應用的小型軟體平臺,也被稱為虛擬機(VM,Virtual Machine)監視器,可運行各類VM軟體,就汽車領域而言,如何將車載資訊娛樂與功能安全(例如備用監視器的音響主機顯示幕)結合起來,是虛擬機管理程式至關重要的內容,
四、功能安全作業系統(Functional–safety OS)
在汽車的性能中,安全無疑是人們最關心的內容,許多ECU都需要具備功能安全認證的作業系統,ISO 26262定義了汽車安全完整性等級ASIL,通過對潛在危險進行風險分析,確定危害事件,并判斷危害事件的嚴重性、暴露性和可控性,將安全等級由低到高劃分為QM/A/B/C/D,其中ASIL D級最為嚴苛,
所有基于AUTOSAR(Automotive Open System Architecture,汽車開放系統架構)的作業系統,如Microsar作業系統、RTA作業系統和EB Tresos安全作業系統都具備功能安全等級認證,汽車ECU中常用的其他三款作業系統為:Integrity RTOS、VxWorks和QNX,
然而功能安全作業系統無法管理具有大型復雜軟體代碼的ECU,例如車載資訊娛樂系統的復雜ECU、ADAS ECU和AV ECU,唯一例外的是QNX作業系統,其在ADAS和AV域ECU方面具有明顯優勢,
車載資訊娛樂系統ECU對作業系統的性能有著較高需求,使得性能相對較高的Linux在過去五年中備受青睞,但Linux有一個致命缺點:缺乏功能安全等級認證,當功能安全應用程式需要作為基于Linux的ECU系統的一部分時,虛擬機管理程式作業系統成為了Linux的解決方案,
2022年5月,Red Hat公司和通用汽車宣布,雙方將聯手合作,從邊緣推進軟體定義汽車的發展,兩家公司希望圍繞紅帽車載作業系統擴展創新的生態系統,該作業系統將為通用汽車Ultifi(將于2023年推出)軟體平臺的持續演進提供經過功能安全等級認證的Linux作業系統基礎,同時,其他Linux供應商(比如谷歌)也將嘗試獲得功能安全等級認證,

五、作業系統生態系統支持
作業系統成功的關鍵在于是否擁有龐大的生態系統支持——支持運行的軟體越多,作業系統就越成功,具備在世界領先的微處理器平臺和特定的MCU上運行的能力也同樣重要,如汽車ECU主要基于ARM的微處理器,此外,一個成功的作業系統的軟體開發環境也必須優良:車規級MCU上,幾乎所有應用軟體都必須通過作業系統運行,
六、作業系統成本因素
作業系統通常是由汽車OEM(Original Equipment Manufacturer,原始設備制造商,一般指整車廠)直接采購而非自行開發,影響其成本的構成因素主要為:
1、作業系統的許可成本,包括作業系統內核、中間件和庫軟體(如數學、浮點、圖形等),Linux內核作業系統是一個開源的免費軟體平臺,但在大多數情況下,Linux中間件、一些庫和商業發行版需要付費,
2、作業系統的大小直接影響運行軟體及其應用程式所需的硬體數量,總代碼大小會影響所需的最大永久存盤容量,磁盤時代大多數硬碟驅動器都足夠大,但在通過NAND芯片或eMMC(Embedded Multi Media Card,嵌入式多媒體存盤卡)模塊進行非易失性存盤的今天,作業系統變大通常會增加額外的成本,
3、作業系統的占用空間是運行該作業系統及其應用程式所需的記憶體總量,因此作業系統運行時占用空間的大小也會影響系統的記憶體成本,
4、作業系統可能會影響MCU的硬體成本,大型作業系統需要MCU具備更高的性能和更豐富的硬體資源,同樣會造成硬體成本的增加,
七、ECU軟體開發
ECU軟體開發對汽車行業是至關重要的,其軟體復雜性和與之對應的作業量也在不斷增長,傳統的ECU軟體開發通常通過多個供應商提供的軟體開發工具包(Software Development Kit,SDK)完成,
如今,SDK已被集成開發環境(Integrated Development Environment,IDE)所取代,集成開發環境一般包括代碼編輯器、編譯器、除錯器和圖形用戶界面等工具,匯集了代碼撰寫功能、分析功能、編譯功能、除錯功能等一體化功能的開發軟體服務套,已擴展至基于Web的IDE系統,
當下,Eclipse IDE已成為汽車及其他眾多行業最受歡迎的軟體開發系統,Eclipse是一個開放源代碼、基于Java的可擴展開發平臺,于2001年11月由IBM公司貢獻給開源社區,現由非營利軟體供應商聯盟Eclipse基金會管理,
除此之外,以Web為中心的軟體開發也正在迅速發展,Amazon AWS(Amazon Web Services,亞馬遜云平臺)尤其活躍,AWS正在建立合作伙伴關系以滿足包含SaaS(Software as a Service,軟體即服務)功能的軟體開發需求,Microsoft Azure(微軟基于云計算的作業系統)和其他作業系統也正在經歷類似的成長程序,
提供專注于功能安全應用程式的作業系統也是一種趨勢,Apex.AI(自動駕駛作業系統開發商)就是一個典型例子,
八、新興的ECU需求
車載作業系統還需要滿足新興技術ECU的需求,
1、所有作業系統都應將安全作為核心功能,支持盡可能多的硬體、軟體和基于云的網路安全,
2、作業系統應增強系統服務,以滿足OTA軟體在嵌入式軟體和云功能方面能力增強的需求,
3、應拓展新功能,滿足車聯網功能拓展所需的ECU資料提取需求,
九、作業系統戰略前景
隨著ECU復雜性的增加,作業系統的復雜性也隨之增加,整車廠需要多個作業系統來覆寫廣泛的ECU應用場景,
對于簡單的ECU而言,整車廠一般更喜歡基于AUTOSAR的作業系統,但其無法適應車載資訊娛樂等高端ECU的復雜性,高端ECU主要使用QNX或Linux作為作業系統,Linux是最受歡迎的車載資訊娛樂作業系統,但在考慮功能安全時,ADAS和AV ECU領域明顯更偏愛QNX,
據媒體報道稱,包括大眾和梅賽德斯·奔馳在內的幾家整車廠正在討論自主研發汽車作業系統,然而汽車作業系統的開發是一項艱巨的任務,作業系統的研發人員成本較高,而其生命周期可能長達30至40年,并且要保持定期更新和相對持續的技術改進,截至2022年,Linux已經發展了大約30年,QNX發展了近40年,
整體來看,針對此類生命周期較長的作業系統,最好的發展策略就是從最棘手的網路安全角度入手,對于低復雜性的ECU,Green Hills擁有最高的安全性和安全性認證,包括FAA(Federal Aviation Administration,美國聯邦航空管理局)飛機使用認證;對于高端ECU,QNX擁有比Linux更高的安全性認證,并且很可能繼續保持這一排名——即使一些Linux發行版已經獲得了ISO 26262認證,QNX的微內核架構使作業系統更加安全;QNX可能會首先開發自動駕駛汽車的新標準——ISO 21448(預期功能安全),提供UL 4600(自動駕駛產品安全評估標準)和IEEE P2851(芯片的安全驗證資料格式)等相關的功能,
參考文獻
https://www.embedded.com/trends-in-automotive-operating-systems/
https://zhuanlan.zhihu.com/p/394560786
原文鏈接
https://mp.weixin.qq.com/s/pyfU9nbep9af2ShBDZV9mQ
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538633.html
標籤:其他
