Linux 在喷气推进实验室的使用量激增
很少有技术比设计和运行太空探测器更严谨。例如,每英里 1 英寸的轨迹误差可能导致目标偏差数万英里。现在再加上严格的预算约束,您就可以了解加利福尼亚州帕萨迪纳市喷气推进实验室 (JPL) 的科学家和工程师的日常工作环境。
凭借其基于大型机的悠久计算历史,NASA 的科学家们很快发现了 Linux 的优势。例如,NASA 戈达德太空飞行中心使用 Linux 及其机载扫描雷达高度计来研究飓风。NASA 的 Beowulf 级集群计算项目也多年来一直使用 Linux。此外,一位 NASA 员工维护着一个关于 Linux 在 X 射线天文学家中的应用的网站,另一位员工正在利用它为太空探测器的车载导航计算机提供动力。因此,NASA 的 JPL 现在在两个截然不同的项目中使用 Linux 就不足为奇了:一个项目是构建更好的航天器,另一个项目是确保它们到达正确的地点。
当您身处距离地球 20 亿英里的地方时,您不能只是跑到五金店去买备件。因此,JPL 的高级热和结构技术小组 (ATSTG) 负责确保所有太空探测器组件都能承受太空旅行的严酷考验。ATSTG 致力于热、低温和结构空间系统(包括气球机器人、漫游车、机械冷却器和热管)的先进技术。他们最近将 Linux 集成到构建更好的航天器的业务中。
热工程师在空间硬件的设计中起着关键作用。“热工程提供的设计可以在所有运行模式下以及硬件在太空中的整个生命周期内,将特定空间硬件站点的温度保持在要求的范围内,”技术小组负责人 Jose Rodriquez 说。“电子设备、机械装置、探测器和激光器的温度要求对于任务的成功至关重要。”
ATSTG 使用多种分析工具来开发分析模型,以进行设计权衡研究。目前最好、最便宜、最完整的集成热分析软件包是热合成系统 (TSS)。它允许热工程师在模拟的太空环境中创建硬件的热模型。然后,他们可以更好地了解系统在太空中的实际工作情况。在开发时,TSS 图形界面要求只能通过运行 UNIX 的高端 HP 机器来满足。当 ATSTG 想要一个供自己使用的版本时,唯一可用的免费软件版本是用于运行 UNIX 的 HP 机器或 PC 上的 Linux。考虑到在购买或租用 HP 机器上花费数千美元,或者花费 150 美元购买 Red Hat Linux 和 Accelerated X 之间做出选择,他们选择了 Linux 版本的 TSS。该小组还在两个分包商设施的计算机上安装了 Linux TSS。
TCP/IP 用于在 Linux 和 Windows 计算机之间来回传输数据和模型。“由于 HP 机器价格昂贵,因此必须不断利用它们来产生足够的资源来支付设备费用,”Rodriquez 说。“这是通过尽可能少地保留机器来完成的,这意味着工程师在正常工作时间内无法轻松访问这些计算机,并且必须早晚工作才能完成工作。”拥有 Linux 使 ATSTG 成员能够在需要时直接在自己的 PC 上运行 TSS,从而消除昂贵的停机时间并使项目能够更快地完成。
然而,如果航天器永远无法到达其预定目的地,那么建造更好的航天器将是徒劳的。当有些人难以在城镇中导航时,JPL 的科学家必须绘制一条轨迹,使太空探测器能够拦截一颗距离数十亿英里,并以每小时 15,000 英里的速度运行的行星。如果您在三年旅程后迟到一天,您将错过目标数十万英里。除了难以击中太空目标外,NASA 人员还需要达到预算目标。Linux 是实现这两个目标的关键。“较小的项目(DS1、火星探路者等)正在非常努力地削减成本,同时实现所有科学目标,”JPL 系统部门导航和飞行力学部门技术小组主管 Peter Breckheimer 说。“过去,由于所需的高性能,运行导航系统的计算机非常昂贵。”
Breckheimer 的小组负责在所有飞行项目(伽利略号、卡西尼号、火星、DS1、星尘号等)中设计、实施、交付和维护机构导航系统软件 (INSS)。INSS 包含超过 160 个主要用 Fortran 77 和 C、Perl、Tcl/Tk 和 HTML 编写的程序,包含 450 万行源代码。INSS 旨在易于移植到新平台(尤其是 Linux)。
当 JPL 在 80 年代从大型机切换到 VAX 时,需要 15 人年的软件转换。后来,为了迁移到 HP-UX,工程师仅使用了 Fortran 77 和 C 编译器中的标准功能。因此,可移植性问题很容易解决。因此,从 HP-UX 迁移到 Linux 只需极少的工作,甚至 Perl 和 Tcl/Tk 等工具也能在第一时间正常工作。“我们已经试验了一些将 c-shell 转换为 NT 脚本的工具,但我们尚未成功,”Breckheimer 报告说。“至于 Linux,无需转换。脚本无需任何更改即可正常工作。”
自 1984 年以来,Breckheimer 使用一个名为 nbodyf 的程序对多台计算机进行了基准测试。该程序采用一个初始向量,并将其与太阳系中所有行星的运动方程在五年期间内进行积分。1984 年,一台 DEC VAX 11/780 花了一个半小时才运行完该程序。现在,一台 HP J5000 可以在不到三秒的时间内完成同样的事情。虽然速度很重要,但计算机系统还必须获得正确的结果。因此,使用包含约 100 万行代码的 INSS 子集对答案进行测试。在基准测试中运行时,运行 Linux 的 2500 美元 PC 与在成本超过 3 万美元的 HP 755 上获得的结果相比,表现非常出色。Linux Red Hat 5.0/5.1 版安装在一台配备 64MB RAM 的通用 200MHz PC 上。它运行 nbodyf 程序耗时 14.5 秒,而运行 HP-UX 9.07 的 HP 755/125 则为 13.3 秒,并且击败了 HP J21、HP C110 和 HP 755/99 的时间。在其他测试中,它的运行效果与 755/125 相当甚至更好。后来的测试使用 450MHz PC 运行,其性能大致与时钟速度成比例地提高。“我们观察到的另一个额外好处是精度略有提高,”Breckheimer 说。“从 Absoft 获得的 Fortran 77 编译器为我们的导航软件使用的一些内置函数利用了 80 位寄存器。在所有先前测试的 UNIX 平台上,我们仅限于 64 位算术,因此 Linux 版本的 Absoft Fortran 77 提供了一些明显的改进。”
Linux 正在 NASA 内部获得越来越广泛的认可。考虑到旧系统存在巨额投资,Linux 在短期内不太可能取代 Windows 或 UNIX,但 Linux 在已使用的领域运行良好。“Linux 的桌面功能极大地提高了工程师的效率和速度,”Rodriquez 说。“当工程师拥有现成的桌面分析工具时,项目会大大受益。” 然而,他唯一抱怨的是 Linux 支持的外围硬件数量有限。但是,随着越来越多的计算机供应商现在提供 Linux 以及越来越多的 Linux 应用程序,这种情况正在迅速改变。Breckheimer 经历了 INSS 的多个平台版本,他认为 Linux“为我们支持的许多项目开辟了一条显着更便宜的未来计算之路。虽然 HP、Sun 和 SGI 工作站主导着我们的运营环境,但基于 Linux 的 PC 可能会在不久的将来产生重大影响。随着越来越多的项目接受 Linux,导航系统的计算机成本将继续大幅下降。” 因此,虽然您不必成为火箭科学家也能欣赏 Linux 的优势,但现在即使是火箭科学家也开始采用它作为 Windows 的替代品。
Drew Robb (drewrobb@mediaone.net) 是来自加利福尼亚州图洪加的自由撰稿人,专门研究技术问题。
Joe Zwers 是来自加利福尼亚州格伦代尔的自由撰稿人,专门研究技术和法律。