百科问答小站 logo
百科问答小站 font logo



特斯拉选择 Linux 作为车载系统的原因是什么? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

这个问题下面的回答比较有意思,大概分为两种观点,一种是说Linux打上RT补丁以后性能不差的,另外一种是说特斯拉根本没用Linux做车载系统,Linux是娱乐用的。

抛开技术问题不谈,有些东西是可以查到的,比如特斯拉到底用没用Linux,答案是肯定的:

自动驾驶用的就是Linux,官方网站说的,这总不会是错的吧?另外特斯拉已经开源了相关的代码:

自动驾驶算不算车载系统?我觉得算。虽然主控这一类的firmware里也可以跑一个轻量级的RTOS,也许特斯拉按照其它答案里说的没在这类硬件上使用OS,但把自动驾驶系统排除在车载系统之外,恐怕不合适吧?

所以,至少有一个结论可以确定:特斯拉用了Linux,而且是在比较核心的系统中用了Linux

至于硬件firmware上用的是什么系统,特斯拉没有公开信息,基本可以排除QNX,freeRTOS,VxWorks这些比较大的RTOS,但世界上RTOS这么多,简易RTOS内核也就几百行代码,整个操作系统都是50~100KB的尺寸,不排除特斯拉自己搞一个简单的。毕竟直接跟硬件打交道的firmware的业务逻辑并不复杂,类似VxWorks这种系统太大了,甚至uCOS都太大了。以火星车为例,主控是用VxWorks,很多探测仪器上用的是uCOS或者没有使用操作系统。

剩下的问题就是Linux实时性好不好的问题了,或者换个说法,Linux是否适用于自动驾驶这种应用场景

我觉得这是商业问题而不是技术问题,当年提出RTOS的场景是:在一些硬件性能不足而可靠性要求高的场合,要满足重要业务优先调度的原则。比如飞机、卫星这些芯片性能比民用芯片差很多的硬件上。但车载硬件性能并不差,因为车载系统的环境远远不如卫星和飞机那么恶劣,完全可以用上相对更好的硬件(相对于卫星来说)。所以,实时性不足,拿硬件性能弥补,这种是完全可行的,毕竟并不是所有的应用场景都需要百纳秒以内的抖动时延。

有人说打了RT补丁以后,Linux实时性也很好,这里我觉得是很多人对实时系统不了解,RTOS,既包括RT,也包括OS,内核调度器是RT了,驱动都是原来的驱动,那么整个系统的延迟仍然很大,所以RTOS的实时设计理念不仅仅是调度器、中断这些,还包括实时文件系统,实时网络协议栈,实时设备驱动等等。所以仅仅是一个RT补丁还远远不够,甚至文件系统、网络协议栈都需要重写,我对RT-Linux了解不多,但我不认为RT-Linux把这些都做了改造。

所以,传统RTOS厂商(包括一些车厂)批判特斯拉不够安全,这不是没道理的,即使是RT-Linux,要把整个软件生态改造成RTOS的设计,都是不现实的。所以特斯拉的自动驾驶平台的实时性是存疑的(特斯拉自己说改造过,,在我前面的第一个链接里有说明:Throughput, latency, correctness and determinism are the main metrics we optimize our code for)。对于自动驾驶系统来说,使用Linux的好处就是比传统的RTOS更容易获得自动驾驶的解决方案,毕竟Linux的API和运行库比传统的RTOS要丰富的多,使用Linux必然要比传统RTOS更节约成本。

回到前面的观点,现在的硬件的性能已经很强大了,RTOS是否还是必要的?这个问题更多的是商业问题:特拉斯(马斯克)是一个喜欢打破传统的厂商(个人),传统厂商不愿意做变革,特斯拉愿意。至于这其中的风险,是需要时间来考验的,当然了,任何新生事物都需要时间来考验。

另外,SpaceX的火箭上都用Linux了,至少说明Linux在某些场景跟传统的RTOS比起来不差。而且中国的商业火箭,听说也用的是Linux做主控。




  

相关话题

  怎么看宁德时代三元电池包的针刺实验? 
  特斯拉一体压铸成本降低,为什么其他汽车厂家此前没有类似尝试? 
  Mac上的gcc和Linux上的不一样吗,为啥这段代码运行结果不同? 
  有哪个Linux操作系统推荐? 
  如何评价国产特斯拉 MODEL 3可付费在线激活后排座椅加热功能?这是否说明功能硬件早已植入? 
  怎么看特斯拉突然在华召回超29万辆电动车? 
  特斯拉砍掉公关团队是好还是坏? 
  为什么特斯拉车主都会说特斯拉好? 
  如何看待伊隆·马斯克(Elon Musk)超越亚马逊创始人杰夫·贝索斯成为世界新首富? 
  作为一个 Emacs、终端、浏览器的重度用户,在考虑价格因素的情况下,你是否认为 Mac OS 比 Linux 发行版更值得使用? 

前一个讨论
C语言 乘以0.01快?还是除以100快?
下一个讨论
是否有文档支持Java『volatile int i 在执行 i++ 的底层是非原子性的三步』的说法?





© 2024-04-29 - tinynew.org. All Rights Reserved.
© 2024-04-29 - tinynew.org. 保留所有权利