车载操作系统——系统软件第一篇

汽车安全 2年前 (2022) admin
833 0 0
学习笔记(Automotive OS)
本文 | feynman.yang  来源 | 学习总结


累并快乐着

                                                                    ——2022年8月14日记于广州


系统软件是车载操作系统的基础,不仅为上层应用以及功能的实现提供了高效、稳定环境的支持,也是各类应用调度底层硬件资源的“桥梁”,在智能汽车整体软硬件架构中处于底层基石的位置。
针对汽车场景定制的复杂大规模嵌入式系统运行环境,主要包含三层:
  • 硬件抽象层:包括 BSP(板卡支持包)、Hypervisor(硬件虚拟化技术,提供虚拟平台支持多操作系统)等。BSP 包括了 Bootloader(以基础支持代码来加载操作系统的引导程序)、HAL(硬件抽象层)代码、驱动程序、配置文档等,是内核与硬件之间的接口层,目的是为操作系统提供虚拟硬件平台,使其具有硬件无关性,可以在多平台上移植;
  • 操作系统内核(Kernel):即为狭义操作系统,如 OSEK OS、VxWorks、RTLinux 等。内核提供操作系统最基本的功能,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
  • 中间件Middleware:处于应用和操作系统之间的软件,实现异构网络环境下软件互联和互操作等共性问题,提供标准接口、协议,具有较高的移植性,如SOME/IP(AUTOSAR系统)、PPS(QNX系统)和 DDS(分布式实时通信中间件)等;

    车载操作系统——系统软件第一篇


车载操作系统——系统软件第一篇


车载操作系统——系统软件第一篇


硬件抽象层(HAL)


硬件抽象层(HAL-Hardware Abstracttion Layer)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,通过这种抽象化可以隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。这种 HAL 设计思路被一些嵌入式操作系统参考,其系统内核被分成两层,上层称为 “ 内核 (Kernel)” ,底层则称为 “ 硬件抽象层。
硬件抽象层与硬件密切相关性,包含了硬件或系统所需硬件支持的所有功能,对于硬件抽象层的软件一般会有层次化、模块化、对象化的特点,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。
层次化是为了适应多种硬件平台将操作系统划分出来一个可以直接和硬件通讯的层次,然后为其上层提供抽象支持,通过API的形式向上层提供服务,层次化保持了上下层的依赖性,但是上层在进行硬件操作时,不需要了解设备的具体细节,从而大大减少系统理解和开发的复杂度;
模块化的最大特点就是将接口和实现分离开来,将具体的功能块隐藏在抽象的接口背后,以保证每个模块可以在不影响其他模块的情况下进行改变。这样,可将模块之间的依赖关系仅仅限定于接口。模块化方法与层次化方法不同,软件模块之间是相互独立的关系;
面向对象设计方法将数据与数据上的操作封装在对象这个模块实体中,外界不能直接对对象内部进行访问和操作,只能通过消息的方式间接访问。
车载操作系统——系统软件第一篇

虚拟机监视器(Hypervisor):在 EE 架构 趋于集中化后,虚拟化(Hypervisor )技术的出现让“多系统”成为现实。

虚拟化(Hypervisor)技术可以模拟出一个具有完整硬件系统功能、运行在一个完全隔离环境中的计算机系统,此时供应商不再需要设计多个硬件来实现不同的功能需求,而只需要在车载主芯片上进行虚拟化的软件配置,形成多个虚拟机,在每个虚拟机上运行相应的软件即可满足需求。Hypervisor 提供了在同一硬件平台上承载异构操作系统的灵活性,同时实现了良好的高可靠性和故障控制机制,以保证关键任务、硬实时应用程序和一般用途、不受信任的应用程序之间的安全隔离,实现了车载计算单元整合与算力共享。
在车载虚拟化领域的主流的Hypervisor技术提供商包括 BlackBerry QNX Hypervisor(闭源)及Intel 与Linux 基金会主导的 ACRN (开源)。目前,只有 QNX Hypervisor 应用到量产车型,它也是目前市场上唯一被认可功能安全等级达到 ASIL D级的虚拟化操作系统,现阶段自动驾驶系统中的芯片“宠儿” Orin平台,本身orin的底软平台会有自研开发的“Hypervisor”,这种自研系统会更加匹配。

板级支持包(BSP-Board Support Package):BSP 可支持操作系统更好地运行于硬件主板,BSP是相对操作系统而言的,不同的操作系统对应于不同定义行驶的BSP。BSP(Board Support Package)指板级支持包,是嵌入式系统中常用的硬件抽象形式,BSP 系统软件之一:

主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。
主要的功能是:
  • 设计操作系统启动之前的初始化过程,完成嵌入式系统的初始化;
  • 设计硬件相关的设备驱动,完成操作系统及应用程序对具体硬件的操作;
    车载操作系统——系统软件第一篇



    A

    BOUT QNX

    汽车操作系统


    QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时操作系统。罗列重要的页面,添加超链接方便快速查看。



     引用 Refreences

    本文由不架构的汽车电子电气原创,作者:Feynman-Yang。
    文中部分图片、封面图片来自网络截图,如因版权等有疑问,请于本文刊发30日内联系。
    ©不架构的汽车电子电气微信公众账号 保留所有权利
    作者:92年,一个北方的汉子,汽车电子电气系统的工程师,一个带有三分浪漫主义,七分实用主义的90后,希望在这结识更多的朋友和伙伴,在这个领域遇到更多的高手和专家。
    车载操作系统——系统软件第一篇


    车载操作系统——系统软件第一篇

    •电话:暂不公布                       •邮箱:yjfeynman@outlook.com•知乎:小佛爷修罗道                            •领英:feynman,yang•微信:暂不公布•Twitter:feynman,yang



    原文始发于微信公众号(不架构的汽车电子电气):车载操作系统——系统软件第一篇

    版权声明:admin 发表于 2022年8月14日 下午9:31。
    转载请注明:车载操作系统——系统软件第一篇 | CTF导航

    相关文章

    暂无评论

    您必须登录才能参与评论!
    立即登录
    暂无评论...