1.操作系统简介
操作系统是管理计算机系统硬件和软件资源的计算机程序集。
操作系统是一个控制程序,作为硬件和应用程序之间的桥梁,主要是和硬件打交道,负责协调分配计算资源和内存资源给不同的应用程序使用,并防止系统出现故障。面对来自不同应用程序的大量且相互竞争的资源请求,操作系统通过调度算法和内存管理算法尽可能地把资源公平且有效地分配给不同的程序。应用程序则通过调用操作系统提供的API接口获得相应资源来完成指定的任务。
值得注意的是,操作系统本身需要占用一定的计算资源和内存资源。
2.汽车操作系统
按照《车用操作系统标准体系》划分,汽车操作系统主要分为车控操作系统和车载操作系统两大类。车控操作系统主要针对经典车辆控制领域,车载操作系统主要面向信息娱乐和智能座舱领域。车控操作系统又分为安全车控操作系统和智能驾驶操作系统。
安全车控操作系统:主要针对整车动力系统、底盘系统、车身系统等传统控制领域,其需要极高的实时性、可靠性、安全性;
智能驾驶操作系统:主要针对智能驾驶领域,负责自动驾驶相关感知、规划、决策相关功能的实现,其需要较高的安全性和可靠性;
车载操作系统:主要针对信息与和智能座舱系统,实现HMI交互和智能座舱相关功能,安全性、可靠性要求相对较低。
车载操作系统主要包括QNX、Linux、Android三大阵营。QNX具有安全性高等优点,但其并非开源,因此存在开发难度大、成本高等问题;Linux为免费的开源系统,具备定制开发灵活、成本较低等优点;Android是基于Linux内核开发而来,应用生态优于QNX和Linux。
安全车控操作系统因其高安全、高实时性要求,多使用实时操作系统(RTOS-Real Time Operating System)。实时操作系统中的实时(Real Time)指的是任务(Task)或者说实现一个功能的线程(Thread)必须在给定的时间(Deadline)内完成。
目前比较流行的实时操作系统包括黑莓QNX、FreeRTOS、μC/OS、RT-Thread等。
其中FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,收到广大开发者的青睐。