一文详解汽车操作系统现状

news2024/10/7 15:25:14

摘要:

智能座舱和自动驾驶的发展,特斯拉的突飞猛进,让各大主机厂越来越重视汽车操作系统。但车企现在所做的软件定义汽车,大都是通过软硬件解耦来降低造车成本、丰富新车功能,在操作系统层面大都还停留在市场调研和学习借鉴阶段。

前言

软件定义汽车背景下,操作系统是汽车生态发展的灵魂。随着汽车电动化、智能化、网联化的发展,汽车操作系统已经成为车辆中重要的组成部分之一,一定程度上决定了车辆的安全性、舒适度、智能化水平和整体性能。

1、汽车操作系统简介

汽车操作系统是运行在异构分布硬件架构上的实时安全平台软件,提供整车及部件感知、规划、控制等功能框架并向上支撑智能网联驾驶生态的软件集合,是汽车智能计算基础平台安全、实时和高效运行的重要基础和核心支撑。

汽车操作系统包括安全车载操作系统、智能驾驶操作系统和智能座舱操作系统。

① 安全车载操作系统

安全车载操作系统主要面向经典车辆控制领域,如动力系统、底盘系统和车身系统等,该类操作系统对实时性和安全性要求极高,生态发展已趋于成熟。

安全车载操作系统主要是实时操作系统RTOS,主要应用对象是 ECU。ECU对安全车载操作系统最基本的要求是高实时性,系统需要在规定时间内完成资源分配、任务同步等指定动作。嵌入式实时操作系统具有高可靠性、实时性、交互性以及多路性的优势,系统响应极高,通常在毫秒或者微秒级别,满足了高实时性的要求。

目前,主流的安全车载操作系统都兼容 OSEK/VDX 和 Classic AUTOSAR 这两类汽车电子软件标准。其中,Classic 平台基于 OSEK/VDX 标准,定义了安全车载操作系统的技术规范。

② 智能驾驶操作系统

随着智能化、网联化技术的发展,智能汽车感知融合、决策规划和控制执行功能带来了更为复杂算法并产生大量的数据,需要更高的计算能力与数据通信能力。基于 OSEK/VDX 和 Classic AUTOSAR 软件架构的安全车载操作系统已经不能满足未来自动驾驶汽车的发展需求,AUTOSAR 组织为面向更复杂的域控制器和中央计算平台的集中式电子电气架构推出 Adaptive AUTOSAR 平台。

Adaptive AUTOSAR 定义采用了基于 POSIX 标准的操作系统,可以为支持 POSIX 标准的操作系统及不同的应用需求提供标准化的平台接口和应用服务,主要是为了适应汽车智能化的发展需求。Adaptive AUTOSAR 处于发展初期,其生态建设获得 Tier1、主机厂的普遍认可尚需时日。

智能驾驶操作系统主要面向智能驾驶领域,应用于智能驾驶域控制器,该类操作系统对安全性和可靠性要求较高,同时对性能和运算能力的要求也较高。该类操作系统目前在全世界范围内日趋成熟,但生态尚未完备。

③ 智能座舱操作系统

智能座舱操作系统主要为汽车信息娱乐服务以及车内人机交互提供控制平台,是汽车实现座舱智能化与多源信息融合的运行环境,对操作系统的实时性与可靠性要求并不严苛。

主流车型的智能座舱操作主要包括QNX、Linux、Android等,传统智能座舱操作系统中QNX占据了绝大部分份额,近年来,智能座舱的娱乐与信息服务属性越发凸显,开源的Linux以及在手机端拥有大量成熟信息服务资源的Android被众多主机厂青睐,成为后起之秀。此外,国外少量车型还采用了Win CE等作为智能座舱操作系统。

随着人们对车辆由单纯交通工具向智能移动终端转变的需求,智能座舱操作系统需要支持多样化的应用与服务,并且具有丰富的生态资源。

2、国内外主流汽车操作系统方案简介

随着自动驾驶技术的快速发展,汽车对软件特别是操作系统的变革需求越来越高,主机厂、Tier1供应商和自动驾驶软硬件技术方案提供商纷纷投入大量的人力、物力和财力进行汽车操作系统的研发,希望在软件定义汽车的时代能够占据一席之地。下面对目前国内外主流汽车操作系统的开发和应用情况进行简单介绍。

① 特斯拉Autopilot自动驾驶软件架构

众所周知,特斯拉是自动驾驶技术和产业化的领跑者,其优势在于以计算平台为核心,自研并领先芯片硬件、操作系统、平台软件等。特斯拉自动驾驶软件架构如上图所示,主要特点是其操作系统基于单一Linux内核,打造了整套自动驾驶的软件方案,实现了感知、定位、融合、决策、规划到控制的全流程。

从公开的信息可知,系统基于Ubuntu进行裁剪,对Linux内核进行了实时性改造,这个内核也开源在Github上,深度学习框架基于PyTorch,实时数据处理基于开源流处理平台Kafka,拥有48个独立的神经网络进行多维度数据处理,并且具备强大的OTA升级能力。其FSD(Full Self-Driving)计算平台硬件集成了智能座舱域和自动驾驶域,操作系统通过OTA软件升级,充分利用数据、云计算生态,开创汽车产品价值和服务的新模式。

② 大众中央集中式软件架构

大众汽车为了加速自动驾驶技术的应用,组建了庞大队伍自主开发汽车操作系统vw.OS。vw.OS采用的是基于Adaptive AUTOSAR 面向服务的软件架构,其中,中央集中式软件架构如上图所示。

大众新一代EE架构的设计特点主要有:

  • 采用高性能处理器、高速网络

  • 兼容POSIX的内核(Linux/QNX等)+Adaptive AUTOSAR

  • 应用软件和I/O功能解耦,减少整个系统的复杂性和应用之间的依赖性

  • 高效、快速地开发用户功能

  • 采用面向服务的通信

③ 华为MDC智能驾驶计算平台架构

华为MDC(Mobile Data Center:移动数据中心)定位为智能驾驶的计算平台。平台集成了华为在ICT领域30多年的研发与生产制造经验,基于CPU与AI处理器芯片,搭载智能驾驶OS,兼容AUTOSAR,支持L2~L5平滑演进,结合配套的完善工具链,客户或生态合作伙伴可开发出针对不同应用场景的智能驾驶应用。

华为的MDC智能驾驶计算平台架构主要特点有:

  • 提供软硬件解决方案,且高度解耦,可独立升级,硬件升级路线和软件升级路线分别独立;

  • 对主流传感器的适配性好,支持主流GNSS、IMU、摄像头、激光雷达和毫米波雷达等传感器的数据接入,且支持摄像头和激光雷达点云的前融合;

  • 对主流中间层软件的适配性很好,可兼容ROS和AUTOSAR,支持Caffe和TensorFlow等常用深度学习框架核心组件(芯片、操作系统内核)自主可控;

  • 华为是业界唯一同时拥有CPU与AI芯片研发能力的厂家,MDC平台硬件集成具有CPU与AI计算能力的强大SoC芯片,为智能驾驶提供可扩展的异构算力;

  • 功能软件基于SOA架构,遵循AUTOSAR规范,定义了智能驾驶基本算法组件的调用框架与组件之间的软件接口;上层场景应用可以灵活选择不同的算法组件组合,实现具体的场景应用功能。

④ 英伟达自动驾驶平台架构

英伟达(NVIDIA)是全球领先的人工智能计算公司,利用其先进的硬件芯片开发优势,以行业较领先的高性能安全芯片为核心,提供完整的硬件平台和基础软件平台,其架构如上图所示。NVIDIA计算平台硬件目前处在Xavier阶段,下一代平台Orin已发布但并未上市。Xavier是NVIDIA首次生产的车规级系统级芯片,该芯片采用了六种不同类型的处理器。

基于Xavier芯片,NVIDIA提供面向自动驾驶开发的DRIVE AGX Xavier,算力达到30 TOPS,面向L2+和L3级自动驾驶;提供的DRIVE AGX Pegasus使用两块Xavier系统级芯片和两块Turing GPU,算力达到320 TOPS,面向L4级和L5级自动驾驶。NVIDIA Drive系统软件层融合了第三方RTOS+AUTOSAR,设有Hypervisor层,第三方量产RTOS方案通过了ASIL D认证。

⑤ 百度Apollo开放平台架构

百度Apollo是一套软件平台,其依赖的计算平台硬件需要采用第三方的IPC,Apollo开放平台架构如上图所示。百度自行研发了两款辅助性硬件ASU(Apollo传感器单元)和AXU(Apollo扩展单元)。其中,ASU用于收集各传感器的数据,通过PCIe传输至IPC,此外,IPC对车辆的控制指令也需通过ASU向CAN发送;AXU用于满足额外算力、存储的需求,以GPU、FPGA形式接入已有硬件平台。

百度Apollo的主要特点有:

  • 为网联云控(V2X)进行软硬件端到端的开发

  • 很好地融入了云服务,其中包括众多百度自家的其他产品,如:基础百度云服务、在线仿真产品、高精度地图、小度助手(Duer OS),各产品间彼此受益

  • 由于开源,核心的算法模块在Github进行长时间优化后已充分产品化

  • 主要侧重系统软件的开发,包含定制优化的操作系统、系统中间件及算法功能模块,大部分硬件则采用第三方方案

  • 产品没有涉及到AUTOSAR架构的额外开发适配,也无需对车辆现有的ECU/MCU进行改变。

3、汽车操作系统现状

① 安全车载操作系统

安全车载操作系统国外发展较早,目前已经开展了一系列的标准化工作,国内目前主要处于跟随状态。

欧洲在 20 世纪 90 年代发展出用于汽车电子上分布式实时控制系统的开放式系统标准 OSEK/VDX,主要包括四部分标准:操作系统规范、通信规范、网络管理规范、OSEK 实现语言。但随着技术、产品、客户需求等的升级,OSEK 标准逐渐不能支持新的硬件平台。

2003年,宝马、博世、大陆、戴姆勒、通用、福特、标志雪铁龙、丰田、大众9家企业作为核心成员,成立了一个汽车开放系统架构组织(简称AUTOSAR组织),致力于建立一个标准化平台,独立于硬件的分层软件架构,制定各种车辆应用接口规范和集成标准。为应用开发提供方法论层面的指导,以减少汽车软件设计的复杂度,提高汽车软件的灵活性和开发效率,以及在不同汽车平台的复用性。AUTOSAR以OSEK/VDX为基础,但涉及的范围更广。

截至目前,AUTOSAR组织已发布Classic和Adaptive两个平台规范,分别对应安全控制类和自动驾驶的高性能类。Classic平台基于OSEK/VDX标准,定义了安全车载操作系统的技术规范。Classic AUTOSAR的软件架构如下图所示,其主要特点是面向功能的架构(FOA),采用分层设计,实现应用层、基础软件层和硬件层的解耦。

Classic AUTOSAR分层软件架构 (R20-11)

AUTOSAR标准平台由于采用开放式架构和纵向分层、横向模块化架构,不仅提高了开发效率、降低开发成本,同时保障了车辆的安全性与一致性。AUTOSAR组织发展至今,得到了越来越多的行业认可,目前已有超过280家的整车、零部件、软件、硬件等领域的成员。AUTOSAR目前已经成为国际主流的标准软件架构,基于AUTOSAR 标准平台,拥有完整的汽车软件解决方案的企业主要有Vector、KPIT、ETAS、DS以及被大陆收购的Elektrobit和被西门子收购的MentorGraphics。此外,宝马、沃尔沃等汽车厂商都相继推出了基于AUTOSAR标准平台的车型。

日本汽车软件平台架构组织JasPar(Japan Automotive Software Platform Architecture)成立于2004年,旨在联合企业横向定制兼顾汽车软硬件的通信标准、实现汽车操作系统的通用化,提高基础软件的再利用率等。JasPar组织成员包括绝大多数的日系汽车及配套软硬件产品厂商。

日本汽车软件平台架构组织JasPar

我国主机厂及零配件供应商目前主要使用Classic AUTOSAR标准进行软件开发。一汽集团、长安集团等主机厂于2009年开始利用Classic AUTOSAR标准的工具进行ECU的设计、开发、验证。2011年4月,上汽集团、一汽集团、长安集团、奇瑞集团等主机厂和部分高校成立了CASA联盟,旨在中国推广和发展AUTOSAR架构。目前江淮汽车也是主要基于Classic AUTOSAR标准进行软件和产品开发。

在产品方面,普华软件是中国电子科技集团的国产操作系统战略平台,并作为牵头单位承担了关于汽车电子操作系统的十一五、十二五核高基重大专项,所形成的汽车操作系统在车身控制模块(BCM)、新能源整车控制器(VCU/HCU)、电子转向系统(EPS)等关键零部件得到量产应用,并已被德国博世的先进辅助驾驶系统(ADAS)量产使用。

东软睿驰发布了NeuSAR产品,其基于AUTOSAR研发制作,为自主研发自动驾驶系统的OEM整车企业及零部件供应商提供的面向下一代汽车通讯和计算架构的系统平台,包含Classic AUTOSAR、Adaptive AUTOSAR及系列开发系统工具。

② 智能驾驶操作系统

智能驾驶操作系统将会成为自动驾驶汽车发展的核心竞争力之一。智能驾驶操作系统发展趋势和特点是纵向分层,以实现层与层之间的解耦,方便快速开发和移植,如下图所示。

智能驾驶操作系统纵向分层示意图

各层之间各司其职,分工不同:

操作系统:负责对硬件提供线程创建等服务;

中间件/开发框架:负责和不同操作系统对接,并给上面应用提供通讯,资源管理等服务;

应用/功能软件:剩下都是它的事。

目前行业普遍采用的智能驾驶操作系统主要是Linux、QNX和其他RTOS(如FreeRTOS、ThreadX、VxWorks等)。

三者之间的主要特点对比如下图所示:

智能驾驶操作系统比较

Linux最初是作为通用操作系统而设计开发的,但提供了一些实时处理支持,这包括大部分POSIX标准中的实时功能,支持多任务、多线程,具有丰富的通信机制等。除此之外,Linux社区有实时性增强patch,在Linux内核原有RT功能上,增加了中断线程化、优先级默认继承等功能。Linux也提供了符合POSIX标准的调度策略,包括FIFO调度策略、时间片轮转调度策略和静态优先级抢占式调度策略。另外,Linux还提供了内存锁定功能,以避免在实时处理中存储页面被换出,同时提供了符合POSIX标准的实时信号机制。

QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,其主要特点是符合分布式、嵌入式、可规模扩展的硬实时操作系统。QNX遵循POSIX.1(程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。QNX的微内核结构是它区别于其它操作系统的显著特点。QNX的微内核结构,内核独立自处于一个被保护的地址空间;驱动程序、网络协议和应用程序处于程序空间中。

在底层操作系统之上,软件中间件在智能驾驶领域也备受关注。中间件的主要目标是为上层应用提供数据通信、协议对齐、计算调度、模块化封装等常用功能,为应用开发提供标准化、模块化的开发框架,实现模块解耦和代码复用。

接下来介绍两种自动驾驶的中间件方案:Adaptive AUTOSAR和ROS

Adaptive AUTOSAR

Adaptive AUTOSAR架构逻辑视图(R20-11)

AUTOSAR组织为应对自动驾驶技术的发展推出了Adaptive AUTOSAR(AP)架构,如上图所示。其主要特点是采用面向服务的架构(SOA),服务可根据应用需求动态加载,可通过配置文件动态加载配置,并可进行单独更新。相对于Classic AUTOSAR(CP),可以满足更强大的算力需求,更安全,兼容性好,可进行敏捷开发。

Adaptive AUTOSAR系统主要适应于新的集中式的高性能计算平台,满足车内部件之间的高速通信需求和智能驾驶的高计算能力需求。AP平台采用了服务化的架构,系统由一系列的服务组成,应用和其他软件模块可以根据需求调用其中的一个或者多个服务,而服务可以是平台提供的,也可以是远程其他部件提供,OEM可以按照功能设计需求定义自己的服务组合。

AP平台没有设计新的操作系统内核,所有符合POSIX PSE51接口的操作系统内核都可以使用,AP平台重点是在操作系统内核之上的系统服务中间层,主要分为平台基础功能和平台服务功能两部分。AP平台主要的三个支撑和演进方向是:安全(包含信息安全和功能安全),连接(包括车内和车外各种新的通信机制),可升级(包含OTA,灵活的软件设计和管理等)。AP平台仍采用传统的标准设计方式,每年一个版本集中进行新的功能发布。

ROS

ROS 架构

ROS作为最早开源的机器人软件中间件,很早就被机器人行业使用。ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS是一个分布式的进程(也就是“节点”)框架,这些进程被封装在易于被分享和发布的程序包和功能包中。整个智能驾驶系统和机器人系统有很强的相似度,ROS的开源特性,丰富的开源库和工具链,特别在智能驾驶的研究领域有着较为广泛的应用,很多自动驾驶的原型系统中都能够看到ROS 的身影,例如AUTOWARE,百度Apollo 最初也是使用了ROS,直至Apollo 3.5 版本才切换至自研的车载中间件CyberRT。

ROS在发展过程中主要有两个版本,ROS1和ROS2,ROS1的通信依赖中心节点的处理,无法解决单点失败等可靠性问题。为了更好的符合工业级的运行标准,ROS2 最大的改变是,取消Master中央节点,实现节点的分布式发现,发布/订阅,请求/响应;底层基于DDS (数据分发服务)这个工业级的通信中间件通信机制,支持多操作系统,包括Linux、windows、Mac、RTOS等。

虽然ROS2基于ROS1有了很大的改进,但是距离完全车规应用还有很大的距离,有些公司如APEX.AI也在对ROS进行车规级的改造尝试。

③ 智能座舱操作系统

在智能座舱操作系统领域,目前还没有统一的国际标准,智能座舱操作系统主要掌握在几家国外软件企业手中,包括黑莓的QNX、诸多基于Linux的定制操作系统以及基于Android开源项目的操作系统(其本身也基于Linux)。

QNX CAR 应用平台

QNX 是一种商用的遵从POSIX规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统,具备高运行效率、高可靠性的特点,并在工控领域拥有近40年的使用经验,被广泛应用于汽车、轨道交通、航空航天等对安全性、实时性要求较高的领域。QNX是全球第一款通过ISO 26262 ASIL D安全认证的智能座舱操作系统,已匹配全球超过40个汽车品牌,并应用于6000多万辆汽车,是目前市场占有率第一的智能座舱操作系统,全球市场份额超过75%。

AGL(Automotive Grade Linux)

Linux 功能较 QNX 更强大,组件也更为复杂,因此 Linux常用于支持更多应用和接口的信息娱乐系统中。协会或联盟致力于将开源 Linux 操作系统推广至汽车领域中,典型代表如 AGL、GENIVI。例如,特斯拉在Linux基础上开发出了完全适配旗下车辆的操作系统;阿里的AliOS也是基于Linux开发,目前已经应用在上汽荣威、上汽名爵等多款车型上。2016年,由Linux基金会赞助的开源车载系统AGL(Automotive Grade Linux)项目发布2.0版本,致力于为汽车软件行业提供全新的智能座舱系统支持。

Android 凭借国内丰富的应用生态切入汽车 IVI 系统。虽然安全性、稳定性不足,但由于车载信息娱乐系统对安全性要求相对较低,Android仍然凭借其上述优点在国内车载信息娱乐系统领域占据主流地位。尤其是各大互联网巨头、自主品牌、造车新势力纷纷基于Android进行定制化改造,推出了自己的汽车操作系统,如阿里AliOS、百度小度车载OS、比亚迪DiLink、蔚来NIO OS、小鹏Xmart OS 等。

结束语

智能座舱和自动驾驶的发展,特斯拉的突飞猛进,让各大主机厂越来越重视汽车操作系统。但车企现在所做的软件定义汽车,大都是通过软硬件解耦来降低造车成本、丰富新车功能,在操作系统层面大都还停留在市场调研和学习借鉴阶段。

鉴于美国不断封锁打压中国高科技企业,从国家层面来说,拥有自主可控的车载芯片和操作系统是一个必然的要求。但研发一个新的操作系统,有足够的时间、人力、财力和技术能力吗?研发失败了怎么办?开发出来之后只为了供给自己使用?怎么盈利?如果投入市场能有一席之地吗?这些都是需要考虑的问题。

来源 | 电子发烧友网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux ubantu 16.04 安装fbprophet 和 pystan经验总结

写在前面 之前在window11上,安装了一下午,不是C版本不行,就是这个那个不通过,主要是Pystan运行不起来就很气,fbprophet本身就需要依赖这个包,然后MSVC不支持,裂开。尝试了很多次,碰…

基于Java开发的分布式在线教育系统,支持考试、直播、问答

一、开源项目简介 知道学习平台是一个基于 Java 开发的分布式在线教育系统项目采用前后端分离的企业级微服务架构引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易注重代码规范,严格控制包依赖可以帮助个人、企业或机构快速搭建一个在线…

C# 利用TabControl控件制作多窗口切换

TabControl控件切换时触发的事件 选项卡切换触发的是TabControl控件的SelectedIndexChanged事件。 当TabControl控件的任何一个TabPage被点击或选择,即发生SelectedIndexChanged事件事件。 代码如下: private void tabControl1_SelectedIndexChanged(o…

设计模式 --- 结构型模式

一、概述 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”…

L2TP Client-initated场景

L2TP Client-initated场景 1. 原理 ![原理](https://img-blog.csdnimg.cn/66ce3169502b4252bca5d9d7a6c0027c.png)1.1 阶段1:创建L2TP隧道 C与LNS通过交互三条消息协商隧道ID、UDP端口(1701)、主机名称、L2TP版本、隧道验证等参数。 1.2 …

使用Spark实现词频统计

文章目录 一,词频统计准备工作(一)版本选择问题(二)安装Scala2.12.15(三)启动集群的HDFS与Spark(四)在HDFS上准备单词文件 二,本地模式运行Spark项目&#xf…

Meta的分割一切模型SAM( Segment Anything )测试

Meta不久前开源发布了一款图像处理模型,即分割一切模型:Segment Anything Model,简称 SAM,号称要从任意一张图片中分割万物,源码地址为: https://github.com/facebookresearch/segment-anything打开后看到…

ssm+java企业公司产品分销商管理系统

一、 二、经营管理: ①分销商每月提交自己进多少货物(从总部进购了多少“鹊巢”的商品给自己负责区的大型商超)——对应的种类一共进多少货物;该种类中具体的产品又进了多少货物具体到(参考三产品管理模块)…

RelativeLayout相对布局

一、官方地址&#xff1a; https://developer.android.google.cn/reference/kotlin/android/widget/RelativeLayout?hlen 二、概述 相对布局&#xff08;RelativeLayout&#xff09;是一种根据父容器和兄弟控件作为参照来确定控件位置的布局方式 三、基本格式 <RelativeLay…

Nacos注册中心的使用

文章目录 Nacos注册中心1. 服务注册到nacos1&#xff09;引入依赖2&#xff09;配置nacos地址3&#xff09;重启 2.服务分级存储模型2.1.给user-service配置集群2.2.同集群优先的负载均衡 3.权重配置 Nacos注册中心 国内公司一般都推崇阿里巴巴的技术&#xff0c;比如注册中心…

Docker安装Redis(普通安装+在线安装+离线安装)

文章目录 Redis概述一、磁盘安装1.1 安装环境1.2 安装步骤1.3 服务器启停命令 二、docker安装1.在线安装2.离线安装 总结 Redis概述 Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支…

ext-1:PDK工具包编译出例程

1、TI的单独StarterWare不更新后&#xff0c;后续维护和更新的是 PROCESSOR-SDK-AM335X 软件开发套件 &#xff08;PDK&#xff09;&#xff0c;对比以前的&#xff0c;里面没有例程&#xff0c;所以下载安装完需要自己编译出example例程。 因为编译出example例程中间会出现很…

设计模式--适配器模式

目录 基本介绍 工作原理 类适配模式 介绍 应用实例介绍 类适配器模式注意事项和细节 对象适配模式 介绍 对象适配器模式注意事项和细节 接口适配器模式 介绍 适配器模式的注意事项和细节 基本介绍 (1) 适配器模式(Adapter Pattern) 将某个类的接口转换成客户端期望的…

从JDK源码级别彻底剖析JVM类加载机制

loadClass的类加载过程 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 ● 加载&#xff1a;在硬盘上查找并通过IO读入字节码文件&#xff0c;使用到类时才会加载&#xff0c;例如调用类的main()方法&#xff0c;new对象等等&am…

如何选择最适合你的数据库解决方案:PostgreSQL VS MySQL 技术选型对比

文章目录 PostgreSQL与MySQL技术选型对比什么是 WordPress 数据库&#xff1f;什么是 PostgreSQL&#xff1f;历史主要特点高度可靠灵活性可扩展性复制用例什么是 MySQL&#xff1f;历史主要特点使用方便高灵活性可靠性和安全性高性能可扩展开源许可证用例PostgreSQL 与 MySQL&…

状态模式——随遇而安

● 状态模式介绍 状态模式中的行为是由状态来决定的&#xff0c;不用的状态下有不同的行为。状态模式和策略模式结构几乎完全一样&#xff0c;但它们的目的、本质却完全不一样就。状态模式的行为是平行的、不可替代的&#xff0c;策略模式的行为是彼此孤立、可相互替换的。用一…

【UE】一个简易的游戏计时器

效果 步骤 1. 打开“ThirdPersonGameMode” 创建两个整型变量&#xff0c;分别命名为“Seconds”、“Minutes” 在事件图表中添加如下节点&#xff0c;实现“Seconds”每秒加1 继续添加如下节点&#xff1a; 当秒数大于60时&#xff0c;就让分钟数1&#xff0c;然后将秒数重新…

P1045 [NOIP2003 普及组] 麦森数

题目描述 形如 2&#xfffd;−12P−1 的素数称为麦森数&#xff0c;这时 &#xfffd;P 一定也是个素数。但反过来不一定&#xff0c;即如果 &#xfffd;P 是个素数&#xff0c;2&#xfffd;−12P−1 不一定也是素数。到 1998 年底&#xff0c;人们已找到了 37 个麦森数。最…

AI数字人技术在高中历史课堂上的应用

引言 介绍AI数字人技术的概念和特点介绍AI数字人技术在教育领域的价值和意义提出本文的主题和目的&#xff1a;探讨AI数字人技术在高中历史课堂上的应用 AI数字人技术在高中历史课堂上的应用方式 介绍AI数字人技术可以通过还原历史人物说话视频&#xff0c;利用历史人物籍贯…

HJHD-91晃电保护器 新款35mm卡轨安装 josef约瑟

名称&#xff1a;晃电保护器品牌&#xff1a;JOSEF约瑟型号&#xff1a;HJHD-91额定电压&#xff1a;110、220VAC触点容量&#xff1a;250V/5A动作时间&#xff1a;不大于20ms功率消耗&#xff1a;不大于5W/5VA HJHD系列晃电保护器 HJHD-91晃电保护器 抗晃电继电器 1.特点和用途…