汽车系统的分类(汽车也有操作系统吗)
汽车系统的分类(汽车也有操作系统吗)典型的实时操作系统(RTOS)有 OSEK/VDX OS,VxWorks,RT-Thread,uCOS,QNX,WinCE、RTlinux等。 它的特点包括速度快,吞吐量大,代码精简,代码规模小等。但除了这些之外,“实时性”才是RTOS的最大特征,其它的都不算是。也就是指实时程序必须保证在严格的时间限制内响应。实时操作系统的特性是在整个操作系统的设计思路上都要时刻关注实时性。再看看图2,这是非实时的操作系统,你可以看到,CPU是不可抢占的,从上图可以看到,即便高优先级的任务就绪了,也不能马上中断低优先级任务而得到执行,必须要等到低优先级任务主动挂起(sleep)或者时间片结束才能得到执行。我们平常使用微软的windows、苹果的mac OS X这些操作系统,会遇到应用程序无响应的问题,也是因为这个原因。即硬件资源被其他任务占用,本任务得不到立即执行。图一图二先看实时操作系统的,在图1中右边
进入到2021年,“5G和AI 技术进步 特斯拉催化”带来了新的一轮汽车自动驾驶浪潮,而软件定义汽车成为一个当下的热点词汇。软件取代硬件定义汽车, E/E 架构升级成为关键已是行业共识,而操作系统,它决定了汽车的软件生态,也被认为是未来汽车产业链的灵魂。
在《汽车也有操作系统吗?(上)——广义的汽车操作系统》文章中,我们对汽车上广义的操作系统做了详细的剖析讲解,这篇文章我们继续来谈汽车操作系统。操作系统的种类和概念非常多,而且绝大多数来自海外,起名也多为英文单词,一般人想要完全梳理清楚并不容易。那么这一讲,我想通过三种分类方式,把几十种操作系统给你系统的梳理一遍,帮助你顺利的理清这些概念。
按照实时性和非实时性分类
首先,汽车上的操作系统,分为实时操作系统和非实时操作系统。所谓实时操作系统, 是相对于非实时而言的,实时操作系统是保证在一定时间限制内完成特定功能的操作系统。你看一下下面这两幅图,这是实时操作系统和非实时操作系统在执行命令时的比较。
图一
图二
先看实时操作系统的,在图1中右边的任务优先级均高于左边的任务。当优先级更高的任务2就绪的时候,即便任务1正在运行中,也必须立刻交出CPU的使用权,也就是引入“中断”机制,先执行任务2,等任务2执行完或者主动挂起(sleep)让出CPU的时候,任务1才能接着运行。在真实的程序运行中,一般有多任务执行的情况下 就会引入“中断”机制。
再看看图2,这是非实时的操作系统,你可以看到,CPU是不可抢占的,从上图可以看到,即便高优先级的任务就绪了,也不能马上中断低优先级任务而得到执行,必须要等到低优先级任务主动挂起(sleep)或者时间片结束才能得到执行。我们平常使用微软的windows、苹果的mac OS X这些操作系统,会遇到应用程序无响应的问题,也是因为这个原因。即硬件资源被其他任务占用,本任务得不到立即执行。
典型的实时操作系统(RTOS)有 OSEK/VDX OS,VxWorks,RT-Thread,uCOS,QNX,WinCE、RTlinux等。 它的特点包括速度快,吞吐量大,代码精简,代码规模小等。但除了这些之外,“实时性”才是RTOS的最大特征,其它的都不算是。也就是指实时程序必须保证在严格的时间限制内响应。实时操作系统的特性是在整个操作系统的设计思路上都要时刻关注实时性。
非实时操作系统又叫通用操作系统。有Linux(含Android)、Windows、MAC OS等。windows和MAC OS你应该比较熟悉了,而Linux,常用于支持更多应用和接口的信息娱乐系统中,它相对于实时操作系统,功能更为强大,组件也更为复杂,最大的特点是开源,有很强的定制开发灵活空间,又可以充分发挥硬件的性能。像AGL、GENIVI等协会或联盟,都致力于将开源Linux操作系统推广至汽车领域中。
按照汽车软件开发和操作系统演化过程分类
上面我们讲了按照实时性和非实时性,对汽车上的底层操作系统进行了分类。
下面我们再谈谈另一种分类方法,让你对这些难懂的名词有进一步的认识。这次,我们按照汽车软件开发和操作系统演化的角度来看看。
1)早期嵌入式开发都是直接在裸机上写程序来控制硬件 不使用IAR/KEIL/MDK等软件,没有操作系统;
2)随着软件越来越复杂 为了实现多任务执行 裸机程序不得不引入“中断”的机制。而程序结构也越来越复杂,越来越难以阅读和维护 因此嵌入式OS逐渐形成。但由于普通8位或16位的ECU执行的功能较为单一 硬件资源有限 无法运行如QNX、 Linux等复杂的OS 早期的嵌入式OS主要使用的是一些基础软件程序或简单的嵌入式实时OS如uCOS、 FreeRTOS等;
3)随着信息娱乐系统(IVI)应用和接口逐渐复杂 汽车在座舱领域率先使用更为复杂OS,也就是Linux和QNX;至此,有了任务管理、有了内存管理、有了文件系统,从学术定义上讲,一个操作系统也就完整了;
4)在这个操作系统上,再给他集成上通讯协议栈,你所看到的产品级的Linux kernel内核和QNX,就是这样了;
5)而在Linux的基础上,加上中间件和桌面环境,让我们能够可视化的去操作一些功能,这便是ubuntu;
6)而我们熟悉的像Andrord和 AliOS则是在 Linux的基础上不仅集成了中间件、桌面环境,还加上了部分应用软件。
按照对底层操作系统的改造程度分类
好了,依照以上两种分法,相信你对汽车操作系统,甚至诸如linux、QNX这些陌生的名词,都有了一个认识。其实,上面讲的这些,都属于底层的操作系统,那么有时候我们还会听说像华为鸿蒙、特斯拉Version、蔚来NIO OS、小鹏Xmart OS、CarPlay,这些又是怎么区分的呢?
这种区分方式是按照对底层操作系统的改造程度去进行区分的。可以分为基础性操作系统、定制型操作系统、ROM性汽车操作系统和超级汽车APP。
1)像QNX、Linux、 WinCE等,都是基础型操作系统,它包含着全新底层操作系统本身和所有系统组件 如系统内核、底层驱动等 有的还包括虚拟机。打造一种全新操作系统需要花费太大的人力、物力 目前基本没有企业会全新开发底层操作系统。
2)定制型操作系统是在基础型操作系统之上进行深度定制化开发 如修改内核、硬件驱动、运行时环境、应用程序框架等。典型代表如大众VW.OS、特斯拉Version、 Google车载Android、华为鸿蒙OS、 AliOS等它们已经属于自主研发的独立操作系统。
3)ROM型汽车操作系统是基于Linux或安卓等基础型操作系统进行有限的定制化开发 不涉及系统内核更改 一般只修改更新操作系统自带的应用程序等。大部分的主机一般都选择开发ROM型操作系统 国外主机厂多选用 Linux作为底层操作系统 由于国内 Android应用生态更好 国内自主品牌和造车新势力大多基于 Android定制汽车操作系统 例如蔚来 NIO OS、小鹏 Xmart OS等。而类比消费电子中的操作系统,小米手机的MIUI、锤子手机的坚果OS、华为手机的 EMUI都是这个层面上的东西。
4)超级汽车APP(又称车机互联或手机映射系统) 不是完整意义的汽车OS 它是指简单地把手机屏幕内容映射到车载中控 通过整合地图、音乐、社交等功能为一体来满足车主需求的APP 如苹果 CarPlay、谷歌 Android Auto、百度 CarLife、华为 Hicar等。主要系由于汽车座舱为保证系统的稳定性、高安全性 不得不放弃性能 导致手机不论是芯片还是操作系统处理能力都优于汽车座舱 因此借助手机的丰富功能映射到汽车中控 以满足车主对娱乐的需求。由于容易实现和成本较低 现阶段超级汽车APP仍是车主的主流选择。
以上,我给你介绍了3种汽车操作系统的分类方式,分别是按照1)实时性和非实时性、2)汽车软件开发和操作系统演化过程和3)对底层操作系统的改造程度进行的分类,汽车操作系统的种类非常多,想了解这个领域,有大量的陌生专有名词需要梳理其之间的层次关系,希望这篇文章能对你有帮助。
OSEK/VDX OS
VxWorks
RT-Thread
uCOS
QNX
WinCE
RTLinux
linux(ubuntu)
win10
MAC OS X
free RTOS
华为鸿蒙
MIUI
坚果OS
特斯拉Version
AliOS
VWOS
蔚来NIO OS
小鹏Xmart OS
carplay
华为EMUI