我们知道操作系统至少需要一些非常低级的代码,这些代码在系统首次启动时运行,必须使用接近硬件的语言编写。
特斯拉有两个车辆操作系统 :
一个用于汽车底盘控制,动力系统的操作系统(显然如果信息娱乐系统崩溃,汽车必须保持完美运行)在,这是一个非常低级的实时操作系统,他们基于符合MISRA的C语言编写,比如他们理汽车驾驶相关系统的部分是基于VxWorks的RTOS(C)。
用于运行娱乐系统等的用户界面的操作系统是基于 Linux 的,特别是 Debian/Ubuntu,Linux操作系统主要是用 C 语言编写的,虽然核心操作系统显然是其他人的作品,但特斯拉似乎确实在维护自己的操作系统linux 分支和一些他们自己的 linux 实用程序和代码。
查看特斯拉公共 GitHub(其中仅包含一些项目,并且不是完全最新的),特斯拉使用了大量的 Ruby 和 Go,当然还有一些 C++,但是他们在 GitHub 上没有 Python 项目。
根据工作列表判,他们的“信息娱乐”系统似乎确实涉及一些 Python 代码(断),但 Python 似乎不太可能是它的主要语言。但这并不意味着他们不经常使用 Python。他们似乎经常将它用作内部系统的语言,包括一般业务和特定于他们工厂和建筑系统的事物,他们还使用 Python 进行机器学习开发工作(尽管实际部署在客户车辆上的机器学习被转移了到 C++),主要的做法是:Python 进行快速原型设计和训练机器学习模型,然后用 C++ 重新编码以提高效率。
他们也使用 javascrip,尤其是 React。并且他们开发移动应用程序,因此使用 Swift 和 Objective C 等语言用于 Apple 和 Android 的等效语言。他们在整个公司都有各种应用程序,尤其是网络应用程序,供一般业务使用,并且似乎很乐意使用最适合许多任务的任何语言。
信息娱乐系统及其外围设备(摄像头、音响系统等)基于 Linux (C)。用户界面组件是使用 C++ 中的 Qt 编写的。
一句话就是没有最最好的语言,只有最合适的语言,也没有绝对的标准,只有是适合自己的标准,他们摈弃了AutoSAR繁琐的标准,并重视对现有开源软件代码的重构。
本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
由于微信公众号近期改变了推送规则,为了防止找不到,可以星标置顶,这样每次推送的文章才会出现在您的订阅列表里。
猜你喜欢:
分享一份嵌入式软件工具清单!
易懂 | 手把手教你编写你的第一个上位机
实用 | 10分钟教你搭建一个嵌入式web服务器
嵌入式常用通信传输协议动图,收藏!
适用于嵌入式的差分升级通用库!
分享一种灵活性很高的协议格式(附代码例子)
分享几个实用的代码片段(第二弹)
在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总