智能座舱架构与芯片- (12) 软件篇 中

三、智能座舱操作系统

3.1 概述

车载智能计算平台自下而上可大致划分为硬件平台、系统软件硬件抽象层+OS内核+中间件)、功能软件库组件+中间件)和应用算法软件等四个部分。狭义上的OS特指可直接搭载在硬件上的OS内核;而广义OS从下至上包括从BSP、操作系统内核、中间件及库组件等硬件和上层应用之间的所有程序。

  • 硬件抽象层

硬件抽象层里包含BSP和Hypervisor。

Hypervisor 是一种运行在基础物理服务器操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件,也可叫做VMM( virtual machine monitor ),即虚拟机监视器。Hypervisors是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备

BSP(board support package)即板级支持包,也是介于主板硬件操作系统之间的一层,主要目的是支持操作系统,使之能够更好的运行于硬件主板。

  • 操作系统内核

OS内核又称为“底层OS”,提供操作系统最基本的功能,负责管理系统的进程、内存、设备驱动程序、文件网络系统,决定着系统的性能和稳定性

智能座舱作为新能源汽车的核心部分,通常需要运行多个不同的软件应用和服务,例如车辆信息娱乐系统、导航系统、车辆诊断系统、驾驶辅助系统等。这些应用和服务需要在智能座舱中使用不同的操作系统内核来管理系统资源、控制硬件设备提供系统服务。以下是一些常见的操作系统内核的例子:

  1. Linux内核:Linux是一种开源的操作系统内核,广泛应用于各种嵌入式系统和移动设备中,包括新能源汽车智能座舱。Linux内核具有高度的可定制性和灵活性,可以根据座舱系统的需求进行定制和优化。例如,很多智能座舱系统使用基于Linux内核的Android Automotive操作系统,提供丰富的应用和服务支持。
  2. QNX内核:QNX是一种实时操作系统内核,被广泛应用于汽车领域。QNX内核具有高度的实时性和可靠性,适用于对系统响应时间稳定性要求较高的智能座舱应用,例如车辆的安全和驾驶辅助系统。
  3. AUTOSAR(Automotive Open System Architecture)内核:AUTOSAR是一种开放的汽车电子系统架构,包括了一系列的软件规范和标准。AUTOSAR内核是一种用于汽车电子系统的标准化操作系统内核,可以提供统一的软件接口服务,实现不同硬件和软件模块之间的互操作性和可替换性。许多新能源汽车厂商使用AUTOSAR内核来构建其智能座舱系统。
  4. Windows内核:作为一种常见的桌面操作系统,Windows内核在某些新能源汽车智能座舱中也有应用。例如,一些电动汽车厂商采用基于Windows内核的操作系统来构建其车辆信息娱乐系统,提供丰富的图形界面多媒体功能
  • 中间件

中间件,作为底层操作系统和这些应用程序之间的桥梁,是对软硬件资源进行管理分配调度的平台,充当着软件和硬件解耦的关键角色。 具体来说,中间件通常对传感器、计算平台等资源进行抽象,对算法、子系统、功能采取模块化的管理,通过提供的统一接口,让开发人员能够专注于各自业务层面的开发,而无需了解无关的细节。这为开发者快速、高效、灵活地开发和集成自动驾驶软件提供了极大的便利。

因此,从系统软件的角度来说,车载操作系统主要考虑的就是BSP,Hypervisor,OS内核,以及中间件等因素。目前座舱新应用层出不穷,和手机关联度也比较高, Android是最佳选择,但考虑到安卓背后的谷歌一家独大,车厂无力掌控,日本和欧洲车厂更倾向于 Linux。中美厂家都拥抱安卓, 中国厂家尤其注重生态系统,因此几乎全部选择手机版的安卓做一些微小修改。美国厂家则多选择车机版安卓。因为谷歌的某些应用在国内无法使用,国内一般不使用完整的车机版安卓。

QNX几乎不会作为独立的智能座舱操作系统而被选用,一般可以与Android共同作为Hypervisor之上的虚拟机VM而协同工作。

3.2 Android

Android是发行版本的Linux, 系统复杂, 功能强大。Android是由Google公司和开放手机联盟基于Linux开发的操作系统。Android被称为基于Linux开发的最成功的产品之一, 应用生态最为丰富, 主要应用于移动设备,在国内智能座舱操作系统常基于Android开发。

Android的主要优点有:

1) 开源, 对中低端OS开发商具有很强吸引力;

2) 灵活, 可以根据自身需要对原生Android进行定制化改造;

3) 可移植性强, Android手机上的APP不需要经过大的修改就可以应用在车机上, 有利于国内互联网厂商切入汽车领域, 快速建立起车载软件生态。

Android的缺点主要有:

1) 安全性、稳定性差,系统漏洞带来较高风险,技术维护成本高

2) 过度依赖于Google。

在智能座舱操作系统的选择中,虽然还没有哪一个系统的市场份额占据绝对优势,但从软件定义汽车的角度出发,以及新能源汽车的发展历程来看,智能座舱域主要考虑的是应用的生态和智能化的发展。在实践中可以看到,Android系统体现出越来越大的优势。这里面最重要的原因就是智能座舱的生态环境可以与手机等消费类电子产品的生态打通,在手机上流行的应用APP,同样可以移植到汽车的智能座舱环境中来。比如说,导航类APP,音乐类APP,视频类APP,内容类APP,可以方便地实现车机手机统一账户,统一资源等。

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

  • Android AUTO vs AAOS vs 传统Android

谷歌也分别推出了 Android Auto 和 Android Automotive OS,Android Auto 是一个超级 App,不是一个操作系统,但 Android Automotive OS 就是一个操作系统,简称 AAOS。Android 官网上, Android Auto 这个分类, 是和 Android TV、Web OS by Google 并列。而在 Android 官网开发者页面处,我们能发现更多谷歌意图独立车载系统的想法。 在 Google 官方的「Android developer guide」(安卓开发者引导) 中 , Android Automotive OS 和 Chrome OS 也 是 以 「 OS (operation system,操作系统)」命名的。AAOS 确实是为了解 决 Android 本身在车机方面的一些问题。Automotive OS 采用了 与传统安卓差异较大的显示和交互逻辑 ,「区块」成为 Automotive OS 最基本的设计语言。在操作准确度要求非常高的 车内环境里面,触屏相对孱弱的反馈被谷歌以硕大的图标设计和菜单划分得以补偿。

1. Android Auto

首先,Android Auto 不是 OS。它是集成在 Android OS 里的 feature。当通过 USB、Wi-Fi 将 Android Phone 连接到支持 Android Auto 的车机上后,Android OS 将自动加载支持 Auto 模式下的 App 并将图像投屏到车机屏幕上。

跟 CarPlay 一样,其本质上是投屏。Phone 提供计算、渲染车机只是 Display,Display 和按键回传 Input 的事件,Phone 处理好之后将新的帧数据回传进行 Display。

2. Android automotive OS

Android automotive 是在原手机Android 的系统架构基础上替换为与车相关的模块。主要包括:

  • Car App :包括OEM和第三方开发的App;
  • Car 提供给汽车App特有的接口;
  • Car Service :系统中与车相关的服务;
  • Vehicle Network Service :汽车的网络服务;
  • Vehicle HaL :汽车的硬件抽象层描述。

Android Automotive OS主界面是平均分配的四张功能卡片(Google Map地图、语音助手Google Assistant、电话和应用),随着地图的优先级降低,整体高频车载功能的优先级提高,快捷图标可以最大限度减少驾驶员会分心的情况。车辆重要的功能,如摄像头和车辆控制等放置在靠近驾驶座的左上角,方便司机触达。

3. 传统Android

国内新能源车企,一般采用自研座舱OS的模式,在传统Android版本的基础上修改出具有自身风格的智能座舱操作系统。这样做的好处毋庸讳言,类似手机OS一样,可以带来更大的用户便利性,以及更强的用户黏性。这一点与外资车企具有相当大的不同。我们从国内车企来看,蔚来,小鹏,理想均采用自研OS,基于传统Android版本进行修改。AITO问界采用华为鸿蒙车机,也类似于Android的操作界面。

  • 蔚来

  • 小鹏

  • 理想

  • 问界

那么,厂商根据标准Android版本进行定制化开发,与Android Automotive OS的区别在哪里呢?


咨询ChatGPT的回答如下:

1. 界面设计:Android Automotive OS的用户界面与传统的Android系统有很大的不同。它的界面更加简洁、易于操作,更适合在驾驶过程中使用。

2. 应用程序:Android Automotive OS的应用程序与传统的Android系统也有所不同。它的应用程序更加专注于驾驶和车辆信息,如导航、音乐等,而不是传统Android系统中的社交媒体、游戏等应用。

3. 安全性:Android Automotive OS在安全性方面比传统的Android系统更为重视。它采用了更加严格的安全措施,以确保驾驶过程中的数据和信息安全。

4. 系统架构:Android Automotive OS的系统架构与传统的Android系统也有所不同。它采用了更加模块化的设计,以便于车载设备的集成和维护。

总之,Android Automotive OS是专门为汽车设计的操作系统,相比传统的Android系统,更加注重驾驶和车辆信息的应用,同时也更加注重安全性和系统架构的优化。


目前,还很难说Android automotive OS与厂家基于Android自研修改的OS哪个能脱颖而出。但或许基于不同的市场环境和用户生态,这些智能座舱OS都还在埋头发展,零和游戏的时刻尚未到来。

3.3 Linux

这里的Linux特指非Android的Linux发行版软件,或者基于开源Linux内核所修改而来的厂商自研OS。虽然说Android也是架构在Linux 内核之上的,但由于它早已具有独立而强大的生态,因此一般单独介绍。我们通常提的基于Linux开发新的操作系统是指基于Linux Kernel进一步集成中间件、桌面环境和部分应用软件。

Linux 领域再分为三类:一类是完全独立的开发版本,如特斯拉;二是松散联盟性质的 Genivi;最后是车规级 Linux 的 AGL。

  • 独立开发的Linux

这里的代表之作为Tesla。Tesla的座舱采用x86 CPU+Linux版本。对于不同的车型来说,Telsa交替采用英特尔或AMD的SOC芯片作为座舱SOC,采用自研FSD芯片作为ADAS SOC。它的软件平台基于Linux 内核所打造。

特斯拉的座舱软件平台使用的是基于Linux的自主开发操作系统,称为Tesla OS。这个操作系统是特斯拉自己开发的,基于Debian Linux,但是经过了大量的修改和自定义,以适应特斯拉车辆的特殊需求和功能。Tesla OS不仅包括车辆的座舱软件平台,还包括车辆的控制系统和网络系统等。特斯拉的座舱软件平台是由一组定制的应用程序组成的,包括导航、娱乐、通信、驾驶辅助和车辆设置等。这些应用程序都是基于Tesla OS开发的,可以通过车载屏幕、语音控制和手机应用程序等方式进行访问和操作。

Tesla OS采用Linux 4.4开源操作系统, 支持PyTorch的深度学习编程框架, 基于Kafka开源流实时数据处理平台, 可支持信息娱乐系统(IVI) 和驾驶辅助系统(ADAS) 等。特斯拉选择Linux一方面由于Linux开源自由的优点, 避免受制于操作系统厂商;另一方面则发挥其内核紧凑高效、可以充分发挥硬件性能的优点,满足了特斯拉对汽车性能的要求。

  • Genivi

GENIVI是一个开源的汽车软件联盟,致力于开发和推广开放标准和技术,以支持汽车电子系统的开发和集成。该联盟成立于2009年,由一些主要的汽车制造商、供应商和软件开发公司组成,包括宝马、戴姆勒、通用汽车、飞利浦、英特尔、纳芙特、Wind River、Harman和Bosch等。GENIVI的目标是创建一个基于开放标准的汽车软件平台,以促进汽车电子系统的发展和创新。

GENIVI的软件平台基于开放标准的Linux操作系统,包括许多开源软件组件和工具,如QT、GStreamer、DBus、WebKit、BlueZ、Systemd等。GENIVI的软件平台提供了许多功能,如车载娱乐、导航、通信、驾驶辅助、车辆诊断和远程服务等。该平台还提供了一个开发框架,使开发人员可以快速开发和部署汽车应用程序和服务。

许多汽车制造商和供应商正在使用GENIVI的软件平台,以开发其汽车电子系统。一些使用GENIVI的汽车制造商包括宝马、戴姆勒、通用汽车、PSA、雷诺等。同时,一些汽车供应商和软件开发公司也在使用GENIVI的软件平台,如飞利浦、英特尔、纳芙特、Wind River、Harman、Bosch等。

  • AGL

AGL 即 Automotive Grade Linux,车规级 Linux。成立于 2016 年 1 月,但是第一版 AGL 发布是在 2014 年的 6 月 30 日,实际 上就是 Tizen 的修改版,Tizen 源自三星,Tizen 是三星电子开发 的一款基于 Linux 核心的开放源代码移动操作系统,可适用设备 包括智能手机、平板电脑、智能手表、上网本、车载消息娱乐 设备(IVI)和智能电视。该项目最初由 Linux 基金会以及 LiMo 基金会合力推出,目的在于取代 MeeGo 与 LiMo 平台。在 Linux 基金会中,由技术指导小组(TSG)管理。

AGL 的顶级白金会员有亚马逊、马自达、电装、瑞萨、铃木、丰田、松下。白银会员则有爱信精机、奔驰、福特、高通、 上汽、大众。其他重要会员还有阿尔派、ARM、博世、BOSE、 中国移动、大陆、德赛西威、富士通、本田、现代、三星哈曼、 HERE、日立、GreenHills、英特尔、JVC 建伍、李尔、LG、马瑞 利、Mentor、Microchip、三菱、NEC、东软、日本精机、NXP、 英伟达、三星、先锋、索尼、东芝、Telechips、德州仪器。 目前采用 AGL 的车型主要有新一代奥迪 MIB3TOP、丰田凯美瑞、马自达 3 和斯巴鲁傲虎及力狮。还有一款奔驰的 MPV。 大众在 2019 年 4 月加入 AGL。

AGL 的主要优势之一是它的统一代码库(UCB),这是一个 新的 Linux 发行版,它基于 AGL 和另外两个汽车开源项目:Tizen 和 GENIVI Alliance。UCB 是第二代 Linux 汽车系统。它从底层开 始开发,一直到特定的汽车应用软件。完成了操作系统大约 70% 的工作。

目前 AGL 应用都在 IVI(In-Vehilcs Infotainment)上,AGL 正 努力开拓在仪表和 ADAS 领域,不过这两个领域对实时性要求较高,阻力很大。

  • YOCTO

Yocto是一个开源的嵌入式Linux发行版,它提供了一个开发框架,可以帮助开发人员快速构建定制的Linux系统。Yocto的目标是使嵌入式Linux开发更加简单、快速和可靠,使开发人员能够轻松地创建定制的Linux发行版,以满足特定的嵌入式设备需求。

Yocto项目包括一个工具集,可以用于构建和管理嵌入式Linux系统,包括构建工具链、交叉编译器、调试器、库、应用程序和文件系统等。Yocto还提供了一个强大的软件包管理系统,可以让开发人员轻松地添加、删除和更新软件包。

许多汽车厂商目前仍在使用Yocto,特别是在车载娱乐系统和智能座舱软件的开发中。Yocto提供了一个灵活的开发框架,使开发人员能够快速构建和定制Linux系统,以满足特定的汽车应用需求。同时,Yocto还提供了丰富的软件包和工具,使开发人员能够快速开发和部署嵌入式应用程序。

使用Yocto的汽车厂商有:通用,丰田,福特,雷克萨斯,捷豹路虎等。

根据以上信息可以看到,很多汽车厂商都曾经使用了不止一个Linux发行版本来作为自己旗下车型的智能座舱软件平台。这说明在Linux系统在传统汽车企业中的地位。

3.3 QNX

QNX是目前车载软件中使用得最多的操作系统。

Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。从QNX的最初命名可以看出,QNX是一种类UNIX的操作系统,其遵守POSIX规范,也就是说在Linux(也遵守POSIX规范)上编写的应用程序可以不作修改重新编译后可以直接在QNX上运行。

2004年,音响设备制造商 Harman 国际工业公司收购了QNX。2010年,黑莓手机(BlackBerry)制造商RIM宣布收购哈曼国际工业集团旗下的QNX软件公司。

在汽车领域,QNX早已是最大的操作系统供应商。据不完全资料显示,QNX在车用市场占有率达到75%,目前全球有超过230种车型使用QNX系统,包括哈曼贝克、德尔福、大陆、通用电装、爱信等知名汽车电子平台都是在QNX系统上搭建的。几乎全球所有的主要汽车品牌包括讴歌、阿尔法-罗密欧、奥迪、宝马、别克、凯迪拉克、雪弗兰、克莱斯勒、戴姆勒、道奇、菲亚特、福特、通用汽车、本田、悍马、现代、英菲尼迪、捷豹、吉普、蓝旗亚、马自达、马赛地、迷你宝马、三菱、尼桑、欧宝、庞迪克、保时捷、萨博、土星、双龙、丰田和大众汽车等目前都采用了基于QNX技术的系统。

QNX的特点

QNX是一个微内核,嵌入式,非开源,安全实时的操作系统。它的软件架构分层如图所示:

从上图可以看到,在硬件层之上,QNX提供了板级支持包BSP,RTOS微内核,软件中间件,以及支撑应用的增强服务层等。

  • 微内核

QNX是典型的微内核结构操作系统, 有一个非常小的微内核Neutrino 约为12K。内核提供了中断处理,定时器处理,线程的建立与调度等任务。另外有一个进程process manager来负责进程的建立和地址空间管理的功能, 与内核运行在内核空间。其他功能模块运行在用户空间。QNX对所有的进程均提供了内存保护, 包括文件系统, 资源管理器, 应用程序等。

QNX是一个典型的RTOS系统,其内核支持实时抢占式调度。

QNX 使用基于优先级的虚拟 CPU 共享模式,每个虚拟 CPU 拥有自己的优先级和时间任务安排序列(scheduling),确保高安全优先级 OS 能够从低优先级 OS 那里抢占更多的物理 CPU 资源。虚拟 CPU 拥有估计资源预算能力,进而在物理 CPU 上实现自适应分区。能够最大化利用硬件资源。

  • 半虚拟化

QNX Hypervisor采用半虚拟化的方式来支持硬件设备的虚拟化操作。在一个双内核虚拟机架构体系中,VM2为Android 虚拟机,VM1 为QNX Host 虚拟机, Hypervisor为 QNX提供的Hypervisor。对于硬件资源的虚拟化,Android VM访问硬件资源可以有2种方式:

1. Front-Back End 服务方式

为避免全虚拟化的性能问题,可以采用 GuestOS 与 Hypervisor 协作的半虚拟化技术。这种技术一般应用于 IO 设备虚拟化, 采用前后端的方式来实现 。在 Guest OS (如 Android VM2) 中实现前端驱动,在 Hypervisor 或 Host OS (如QNX Host VM1) 中实现后端驱动,前后端一般按照 VirtIO 标准来实现,后端驱动作为硬件的实际访问方。

2. Pass-through 直接访问方式

Hypervisor 支持将硬件资源直接分配给其上虚拟机中 VM2 使用,无需通过 Hypervisor 进行地址和指令翻译。例如 : 串口资源、USB 资源等接口比较丰富的资源可以通过 Pass-through 直接分配给某虚拟机使用。设备控制器一般都是以 MMIO 方式来访问的,所以只需要将控制器地址区域映射到 VM 就 可实现设备控制器的分配,同时还需要分配一个设备硬件中断对应的虚拟中断到该 VM,直接透传的方式 就是 VM 独占访问该硬件,所以在性能上是最好的。

  • 功能安全

QNX已经获得了ASIL-D的认证。QNX的安全性和可靠性使其成为满足汽车电子系统安全标准的理想选择。QNX的ASIL-D认证证明了其满足最高级别的汽车安全标准,可以在高度安全性和可靠性的环境中运行。QNX的ASIL-D认证包括QNX Neutrino实时操作系统、QNX Momentics开发工具和QNX Hypervisor虚拟化平台等产品。QNX的ASIL-D认证是基于国际标准ISO 26262开展的,该标准是用于开发汽车电子系统的安全标准。

  • 智能座舱的应用案例

在国内新能源车企的智能座舱软件平台中,由于普遍采用了高通的SOC作为座舱芯片,因此基本会采用QNX+Android双虚拟机的方式。其中一个典型的应用就是QNX实现仪表盘,Android实现中控娱乐屏应用。

底层是采用QNX的hypervisor技术,实现硬件资源的虚拟化。

上层分为2个虚拟机VM。其一是QNX Host,它主要实现仪表盘的图形生成,渲染等任务。根据上述半虚拟化的实现,由QNX实际控制SOC芯片中的GPU和DPU等硬件资源。

由于QNX具有实时性和安全性的特点,它适合为仪表盘功能提供应用服务。

第二个虚拟机是Android VM。由于Android具有良好的生态环境和丰富的应用资源,在中控娱乐屏的使用上具有较大的优势,因此非常适合用于多元化的娱乐域应用场景需求。

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

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

相关文章

【C++进阶之路】第十一篇:C++的IO流

文章目录 1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4.stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。prin…

易航网址引导系统 v1.9 源码:去除弹窗功能的易航网址引导页管理系统

易航自主开发了一款极其优雅的易航网址引导页管理系统,后台采用全新的光年 v5 模板开发。该系统完全开源,摒弃了后门风险,可以管理无数个引导页主题。数据管理采用易航原创的JsonDb数据包,无需复杂的安装解压过程即可使用。目前系…

SVN创建分支

一 从本地创建方式可指定版本号进行分支创建。 1、在本地目录右击 -----> 点击branch/tag(分支/标签) From: 源,可指定具体的版本号, To path: 可通过"..."选择分支路径 最后点击确定,交由服务器执行创建。 二 通过SVN客…

html实现计算器源码

文章目录 1.设计来源1.1 主界面1.2 计算效果界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/134532725 html实现计算器源码,计算器源码,简易计…

11.21序列检测,状态机比较与代码,按键消抖原理

序列检测 用一个atemp存储之前的所有状态,即之前出现的七位 含无关项检测 要检测011XXX110 对于暂时变量的高位,位数越高就是越早出现的数字,因为新的数字存储在TEMP的最低位 不重叠序列检测 ,一组一组 011100 timescale 1ns…

【算法】二分查找-20231122

这里写目录标题 一、1089. 复写零二、917. 仅仅反转字母三、88. 合并两个有序数组四、283. 移动零 一、1089. 复写零 提示 简单 266 相关企业 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意&a…

智能座舱架构与芯片- (13) 软件篇 下

四、面向服务的智能座舱软件架构 4.1 面向信号的软件架构 随着汽车电子电气架构向中央计算-域控制器的方向演进,甚至向车云一体化的方向迈进,适用于汽车的软件平台也需要进行相应的进化。 在传统的观念中,座舱域即娱乐域,座舱软…

4.Gin HTML 模板渲染

4.Gin HTML 模板渲染 Gin HTML 模板渲染 1. 全部模板放在一个目录里面的配置方法 创建用于渲染的模板html templates/index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> …

【GitHub】保姆级使用教程

一、如何流畅访问GitHub 1、网易uu加速器 输入网址&#xff0c;无脑下载网易加速器&#xff1b;https://uu.163.com/ 下载安装完毕后&#xff0c;创建账号进行登录 登录后&#xff0c;在右上角搜索框中搜索“学术资源”&#xff0c;并点击&#xff1b; 稍等一会儿就会跳…

如何在3dMax中使用Python按类型选择对象?

如何在3dMax中使用Python按类型选择对象&#xff1f; 3dMax提供了pymxs API&#xff0c;这是MAXScript的Python包装器&#xff0c;可帮助您扩展和自定义3dMax&#xff0c;并更轻松地将其集成到基于Python的管道中。 pymxs模块包含一个运行时成员&#xff0c;该成员提供对MAXSc…

电子学会C/C++编程等级考试2022年09月(一级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:指定顺序输出 依次输入3个整数a、b、c,将他们以c、a、b的顺序输出。 时间限制:1000 内存限制:65536输入 一行3个整数a、b、c,以空格分隔。 0 < a,b,c < 108输出 一行3个整数c、a、b,整数之间以一个空格分隔。样例输入…

【C++进阶之路】第八篇:智能指针

文章目录 一、为什么需要智能指针&#xff1f;二、内存泄漏1.什么是内存泄漏&#xff0c;内存泄漏的危害2.内存泄漏分类&#xff08;了解&#xff09;3.如何检测内存泄漏&#xff08;了解&#xff09;4.如何避免内存泄漏 三、智能指针的使用及原理1.RAII2.智能指针的原理3.std:…

气相色谱质谱仪样品传输装置中电动针阀和微泄漏阀的解决方案

标题 摘要&#xff1a;针对目前国内外各种质谱仪压差法进样装置无法准确控制进气流量&#xff0c;且无相应配套产品的问题&#xff0c;本文提出了相应的解决方案和配套部件。解决方案主要解决了制作更小流量毛细管和毛细管进气端真空压力精密控制问题&#xff0c;微流量毛细管的…

Flutter:多线程Isolate的简单使用

在flutter中如果要使用线程&#xff0c;需要借助Isolate来实现。 简介 在Flutter中&#xff0c;Isolate是一种轻量级的线程解决方案&#xff0c;用于在应用程序中执行并发任务。Isolate可以被认为是独立于主线程的工作单元&#xff0c;它们可以在后台执行任务而不会阻塞应用程…

C++入门第八篇---STL模板---list的模拟实现

前言&#xff1a; 有了前面的string和vector两个模板的基础&#xff0c;我们接下来就来模拟实现一下list链表模板&#xff0c;我还是要强调的一点是&#xff0c;我们模拟实现模板的目的是熟练的去使用以及去学习一些对于我们本身学习C有用的知识和用法&#xff0c;而不是单纯的…

基于SpringBoot+MyBatis-Plus的校园图书管理系统

基于SpringBootMyBatis-Plus的校园图书管理系统 校园图书管理系统开发技术功能模块代码结构数据库设计运行截图源码获取 校园图书管理系统 欢迎访问此博客&#xff0c;是否为自己的毕业设计而担忧呢&#xff1f;是否感觉自己的时间不够做毕业设计呢&#xff1f;那你不妨看一下…

2023年DevOps国际峰会暨BizDevOps企业峰会(DOIS北京站)-核心PPT资料下载

一、峰会简介 在数字化转型的大背景下&#xff0c;企业选择实践 DevOps 来提升 IT 效能成为常态&#xff0c;BizDevOps 作为企业自身数字化变革的重要主题之一&#xff0c;需要全行业共同努力促进繁荣和发展。从 DevOps 到 BizDevOps&#xff0c;业务与技术如何融合&#xff1…

CentOS用nginx搭建文件下载服务器

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动。在工作中&#xff0c;我们经常会用到需要搭建文件服务器的情况&#xff0c;这里就以在linux下搭…

不会代码也能拿高薪?掌握面试法宝,轻松10000+

快速排序&#xff08;Quicksort&#xff09;是对冒泡排序的一种改进。 快速排序由 C.A.R.Hoare 在 1962 年提出。 它的基本思想是&#xff1a;通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后…

最新版本的橙色前端微信去水印小程序源码

好像最近去水印小程序挺火的&#xff0c;你看这就不来了一个新的去水印小程序。 橙色前端是最近比较流行的&#xff0c;很多小程序也都是这种样式&#xff0c;如果你需要其它颜色的&#xff0c;可以自己修改一下CSS即可&#xff0c;小程序云开发的&#xff0c;无需服务器。 打…