【问题标题】:Specific Linux distros for running high-reliability spaceflight software? [closed]运行高可靠性航天软件的特定 Linux 发行版? [关闭]
【发布时间】:2018-04-29 11:45:39
【问题描述】:

为清晰起见进行了编辑:

由于可靠性和容错性非常重要,是否有任何特定 Linux 发行版(或者可能是 Linux 发行版类型)推荐用于运行高可靠性 C++ 软件?

我正在开发 C++ 软件以在 Blue Origin 火箭上执行一些简单的任务(读取串行输入数据、设置输出引脚的逻辑高电平和低电平、拍摄视频(和保存)以及一些浮点数学运算)。该软件将在 Linux 上运行。

感谢您的知识和经验。

【问题讨论】:

  • 这真的取决于你在做什么。 “简单”涵盖了许多不同的领域......
  • 读取串行数据,设置输出引脚的逻辑高低,拍摄视频(和保存),以及一些浮点数学运算。
  • 您很少看到用 C++ 编写的航天软件,原因很明显,抽象背后隐藏着很多东西。尽管在 1989 年 NASA(通过当时的承包商 McDonnell Douglass)将 SVDS(航天飞行器动态模拟器 - 用于模拟航天飞机上/中的上升载荷)移植到 C,但传统上偏好的语言一直是 FORTRAN。在任何任务中都是首要关注的关键软件是验证(和重新验证)每条指令的能力。在当时,C++ 只是一个简单的闪现,但它被有意识地避免了。
  • 一个有趣的旁注,SVDS 源于最初为洲际弹道导弹创建的程序。要进一步深入了解航天建模,请在 "squatcheloid" 上进行搜索。
  • 子系统的过度可靠性毫无意义。 Linux 对于 Pi 来说足够可靠。对于关键的飞行任务,pi 不够可靠。

标签: c++ linux operating-system fault-tolerance


【解决方案1】:

一家名为 Astronoutics 的公司正在生产飞机显示器。他们在 Boing-787 梦幻客机上有一个“电子飞行手册”产品。它们的主要吸引力在于能够运行两组应用程序。高度可靠的应用程序,允许飞行员依赖(认证的应用程序)以及未经认证的应用程序,在同一显示器上运行。

为了实现这一壮举,他们的显示器中有两台计算机。一个运行经过认证的操作系统,另一个可以运行任何东西(通常是 Windows)。

他们运行的经过认证的操作系统是 Linux。但是,它不是您的普通 Linux。它是一个非常精简的版本,只有足够的功能来满足他们的需要,仅此而已。这是因为认证过程本身非常昂贵,而行数对此影响很大。

因此您可以在高可靠性环境中运行 Linux,但它不是通常的 Linux。

【讨论】:

  • 感谢您的洞察力。您是否有具体的例子可以指出(修改 Linux 内核以实现航空级可靠性等)?
  • 我认为有些公司销售他们获得认证的 Linux 版本。不过我不能给你名字。
猜你喜欢
  • 2023-03-30
  • 2014-02-18
  • 2020-02-08
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 2014-10-16
  • 2016-10-19
  • 2010-12-06
相关资源
最近更新 更多