当前位置: 首页 > news >正文

特斯拉的操作系统是用什么语言编写的?



总目录链接==>> AutoSAR入门和实战系列总目录

文章目录

  • 特斯拉车辆操作系统
  • 特斯拉GitHub中使用的语言
    • Ruby和Go
    • Python
    • Swift 和 Objective C
    • Qt

我们知道操作系统至少需要一些非常低级的代码,这些代码在系统首次启动时运行,必须使用接近硬件的语言编写。
在这里插入图片描述

特斯拉车辆操作系统

特斯拉有两个车辆操作系统 :

一个用于汽车底盘控制,动力系统的操作系统(显然如果信息娱乐系统崩溃,汽车必须保持完美运行)在,这是一个非常低级的实时操作系统,他们基于符合MISRA的C语言编写,比如他们理汽车驾驶相关系统的部分是基于VxWorks的RTOS©。

用于运行娱乐系统等的用户界面的操作系统是基于 Linux 的,特别是 Debian/Ubuntu,Linux操作系统主要是用 C 语言编写的,虽然核心操作系统显然是其他人的作品,但特斯拉似乎确实在维护自己的操作系统linux 分支和一些他们自己的 linux 实用程序和代码。

特斯拉GitHub中使用的语言

Ruby和Go

查看特斯拉公共 GitHub(其中仅包含一些项目,并且不是完全最新的),特斯拉使用了大量的 Ruby 和 Go,当然还有一些 C++,但是他们在 GitHub 上没有 Python 项目。

Python

根据工作列表判,他们的“信息娱乐”系统似乎确实涉及一些 Python 代码(断),但 Python 似乎不太可能是它的主要语言。但这并不意味着他们不经常使用 Python。他们似乎经常将它用作内部系统的语言,包括一般业务和特定于他们工厂和建筑系统的事物,他们还使用 Python 进行机器学习开发工作(尽管实际部署在客户车辆上的机器学习被转移了到 C++),主要的做法是:Python 进行快速原型设计和训练机器学习模型,然后用 C++ 重新编码以提高效率。

Swift 和 Objective C

他们也使用 javascrip,尤其是 React。并且他们开发移动应用程序,因此使用 Swift 和 Objective C 等语言用于 Apple 和 Android 的等效语言。他们在整个公司都有各种应用程序,尤其是网络应用程序,供一般业务使用,并且似乎很乐意使用最适合许多任务的任何语言。

Qt

信息娱乐系统及其外围设备(摄像头、音响系统等)基于 Linux ©。用户界面组件是使用 C++ 中的 Qt 编写的。

一句话就是没有最最好的语言,只有最合适的语言,也没有绝对的标准,只有是适合自己的标准,他们摈弃了AutoSAR繁琐的标准,并重视对现有开源软件代码的重构。

相关文章:

  • 自主HttpServer实现(C++实战项目)
  • 【数据库】什么是 PostgreSQL?开源数据库系统
  • 为什么基础矩阵F的自由度是7
  • 防火墙的NAT技术
  • Pyspark_结构化流3
  • 【云原生】Kubernetes(k8s)部署 MySQL+Dubbo+Nacos服务
  • Linux使用:环境变量指南和CPU和GPU利用情况查看
  • 自学大数据第13天~Hbase数据库操作
  • FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(三)
  • Java 基本数据类型
  • 做了个springboot接口参数解密的工具,我给它命名为万能钥匙(已上传maven中央仓库,附详细使用说明)
  • ChatGPT如何批量撰写最新的热点自媒体文章
  • 虚拟动力数字人技术亮相第六届文创产业大会,探见元宇宙 驱动新文创
  • 内存优化小结
  • Android复习总结
  • php的引用
  • 「译」Node.js Streams 基础
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • CentOS7简单部署NFS
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ESLint简单操作
  • JavaScript 一些 DOM 的知识点
  • JavaScript新鲜事·第5期
  • Just for fun——迅速写完快速排序
  • LeetCode18.四数之和 JavaScript
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Material Design
  • mongodb--安装和初步使用教程
  • PHP 小技巧
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Service Worker
  • vue-router 实现分析
  • 给Prometheus造假数据的方法
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #WEB前端(HTML属性)
  • #考研#计算机文化知识1(局域网及网络互联)
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (四) 虚拟摄像头vivi体验
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET Standard 的管理策略
  • @Transactional 详解
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [acm算法学习] 后缀数组SA
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [CF226E]Noble Knight's Path
  • [CTF]php is_numeric绕过
  • [Day 16] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • [HNOI2008]水平可见直线
  • [java后端研发]——文件上传与下载(2种方式)
  • [LeetCode] 626. 换座位