先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注go)
正文
① 安全车载操作系统
安全车载操作系统主要面向经典车辆控制领域,如动力系统、底盘系统和车身系统等,该类操作系统对实时性和安全性要求极高,生态发展已趋于成熟。
安全车载操作系统主要是实时操作系统RTOS,主要应用对象是 ECU。ECU对安全车载操作系统最基本的要求是高实时性,系统需要在规定时间内完成资源分配、任务同步等指定动作。嵌入式实时操作系统具有高可靠性、实时性、交互性以及多路性的优势,系统响应极高,通常在毫秒或者微秒级别,满足了高实时性的要求。
目前,主流的安全车载操作
前言
软件定义汽车背景下,操作系统是汽车生态发展的灵魂。随着汽车电动化、智能化、网联化的发展,汽车操作系统已经成为车辆中重要的组成部分之一,一定程度上决定了车辆的安全性、舒适度、智能化水平和整体性能。
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成员已超过280个(数据截至2021.04)
截至目前,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标准进行软件和产品开发。
CASA联盟组织架构
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
联盟组织架构
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-l7QmbVKh-1713568893057)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!