我们都知道,操作系统至少需要一些非常低级的代码,这些代码在系统首次启动时运行,必须使用接近硬件的语言编写。
特斯拉有两个车辆操作系统:
一个是用于汽车底盘控制,动力系统的操作系统(显然如果信息娱乐系统崩溃,汽车必须保持完美运行)在,这是一个非常低级的实时操作系统,他们基于符合MISRA的C语言编写,比如他们理汽车驾驶相关系统的部分是基于VxWorks的RTOS(C)。
另外,用于运行娱乐系统等的用户界面的操作系统是基于 Linux 的,特别是 Debian/Ubuntu。Linux操作系统主要是用 C 语言编写的,虽然核心操作系统显然是其他人的作品,但特斯拉似乎确实在维护自己的操作系统linux 分支和一些他们自己的 linux 实用程序和代码。
2、特斯拉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)。用户界面组件是使用 C++ 中的 Qt 编写的。
一句话就是没有最最好的语言,只有最合适的语言,也没有绝对的标准,只有是适合自己的标准,他们摈弃了AutoSAR繁琐的标准,并重视对现有开源软件代码的重构。