拯救阿波罗14号!那些伟大太空计划背后的计算机工程师们

简介: 外太空旅行近一周后的凌晨,回程中的阿波罗14号突然面临一个严峻的问题:它可能没办法正常降落了。问题出在其计算机工程师Don Eyles编写的一个应急程序上,他必须在很短的时间内破解自己写出的程序。

1971年1月31日,阿波罗14号发射。

外太空旅行近一周后的凌晨,回程中的阿波罗14号突然面临一个严峻的问题:它可能没办法正常降落了。

问题出在其计算机工程师Don Eyles编写的一个应急程序上,他必须在很短的时间内破解自己写出的程序。

事情的经过是这样的:

Don Eyles在登月舱Antares中设计了一个用于极端紧急情况的转换开关——Abort按钮。如果登月舱在下降到月球表面的过程中出现任何问题,宇航员可以随时推动转换开关,通知计算机反转发动机——将登月舱从月球上炸开,重新进入轨道。

但在阿波罗14号上,由于开关被意外堵塞,计算机收到了扭转登月舱航向的错误指令,而Eyles需要以最快的速度扭转这一切。

“我们必须编写一个新程序,来让计算机看不到切换,”Eyles说。

Eyles最终在登月舱降落前10分钟的时候完成了他的任务。他的解决方案中涉及了26组五位数的数据,经他的同事检查后由宇航员输入计算机,成功绕过了转换开关的代码。

这段惊现的故事出现在Eyles今年3月出版的回忆录Sunburst And Luminary中。在书中,他还回忆了自己作为多个NASA太空任务的计算机工程师时发生的故事,其中涉及到1969年第一次载人登月的阿波罗11号、1969年第一次精确登月的阿波罗12号以及刚刚提到的阿波罗14号。

image

麻省理工学院仪器实验室的“非主流”工程师

Eyles从小就喜欢设计和制作东西。尽管他后来在波士顿大学主修数学,仍对艺术仍有着深刻的兴趣。

20世纪50年代后期,上高中的他作为戏剧制作的技术人员,参加了一个“伟大的图书”读书俱乐部,并经常收听大都会歌剧院的广播节目。在波士顿大学,最令他难忘的课程之一是“一个中世纪的艺术课,让我设计哥特式建筑的外观。”

这种多样化的背景为他的职业生涯带来了很多好处,教会了他如何从不同的角度来看问题并解决问题。

1966年,Eyles在波士顿“破旧的Fenway社区”租了一套公寓。他没有具体的职业目标,也没有写过任何计算机代码,但他就是认为自己可能喜欢计算机编程,因为他“喜欢谜题”。

在一个闷热的天气里,他偶然发现了查尔斯河河岸附近的麻省理工学院仪器实验室(the MIT Instrumentation Lab)。

这个实验室在20世纪60年代末和70年代初致力于利用政府拨款开展大规模的开拓性项目:“建立登月的航行和导航系统”。这个项目也是其最着名的成就之一。

项目负责人有着科学界的传奇名字,比如Charles Stark“Doc”Draper,“惯性导航之父”;Hal Laning,1952年发明了第一个编译器的人,以及众多计算机编程书籍的作者George Cherry等等。

而Eyles也成为了其中的一员,就此开始了他航天工程工程师的生涯。

他负责月球着陆工作:“阿波罗任务中最复杂的,也是最危险的阶段”。月球着陆的设计工作面临一系列特别棘手的问题:月亮的“块状”引力场问题,在厚厚的月球尘埃云中如何降落的问题,以及未知地形的考验等等。

正如Eyles所说:“连汽车那么大的巨石都太小了,无法从轨道上拍出来。”

但Eyles和他的同事们最终还是将这些问题解决了,包括阿波罗14号的突发情况。

阿波罗14号顺利降落月球后,Eyles立即成为了名人。报纸和广播电台的记者不停地给他打电话,波士顿大学和麻省理工学院的校长也都给他发来贺信。

image

甚至他的身影也出现在了很多电视荧屏之中。“我还记得在1996年的一个电视剧中,一个演员扮演我一边走进实验室,一边说‘我要咖啡’。而事实是我要是真以他的语气说话,根本就不会得到任何东西。”这也让Eyles笑了很久。

而除了工作,Eyles还有很多“非主流”的想法和行为。

比如Eyles和他的朋友试图让办公室变得更美:把它漆成紫色、绿色和红色,而不是白色和棕色,尽管实验室维修人员对此表示了强烈抗议。

他也曾设计一个迷你时间胶囊:Led Zeppelin在波士顿茶话会上举行他们的第一次美国巡演,Erich Leinsdorf指挥了波士顿交响乐团,并在波士顿鱼码头的无名餐厅用餐。

Eyles甚至还成为了一名摄影师和雕塑家。他的作品包括古帝国的坠落系列、101种角度看ZAKIM大桥系列等等。

Don Eyles个人网站:
https://www.doneyles.com/supersymandala.html

image

image




image



image



Eyles还是坚持Consciousness III 的科学家和技术人员之一,他们崇尚个人自由和平等主义,主张自由发挥想象力,乐于探究太空探索的宇宙意义。

“电脑编程是一门很好的手艺,有朝一日会被提升为一门艺术。”Eyles说。

幕后的英雄们

事实上,在阿波罗登月计划中曾付出过艰辛努力并取得辉煌成绩的,绝不仅仅是Eyles一人。

比如负责“阿波罗”号计算机飞行软件的“代码女皇”玛格丽特·汉密尔顿(Margaret Hamilton)。


image

在人们还不知道软件到底是怎么一回事的时候,玛格丽特和她的同事们就开始为世界上第一部便携式计算机写代码了,同时,他们也创造了计算机编程的核心理念。

她所编写的 “阿波罗11号”登月项目计算机制导系统的源代码也在2016年被公布出来,这段以汇编语言编写的代码即便是对今天的程序员来说,也堪称教科书般的存在。

有趣的是,当时阿波罗号的工程师们在敲入这段代码时还加入了大量自己的吐槽。若按现在的视角再去品味,它们就像是上世纪60年代的那些计算机极客们留给我们的时间胶囊。

而软件工程这个由玛格丽特引领的概念,从人类登月开始,已经进入了我们生活的方方面面。

再比如曾提名第89届奥斯卡最佳影片的《隐藏人物》(Hidden Figures)中的原型玛丽•杰克逊(Mary Jackson)、凯瑟琳•约翰逊(Katherine G. Johnson)和多萝西•沃恩(Dorothy Vaughan)。这三位美国国家航空航天局(NASA)的黑人女性工程师都曾默默为美国的登月计划做出巨大贡献,但不被外界所留意。

image

1903年,莱特兄弟的第一架飞机试飞成功;1957年,第一颗人造卫星升空;1961年,人类第一次进入太空;1969年,人类第一次登上月球;2001年,首次太空旅游成功。近百年来,人类对于太空的探索始终不曾停歇。

而无数的人为之付出过不懈的努力,甚至是生命的代价。

这其中也包括Eyles,包括玛格丽特,包括无数计算机工程师们。

相关报道:
http://www.wbur.org/artery/2018/03/01/sunburst-and-luminary-review
https://www.rollingstone.com/politics/politics-news/don-eyles-extra-weird-looking-freak-saves-apollo-14-40737/

原文发布时间为:2018-07-29
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”。

相关文章
|
2月前
|
JSON 小程序 安全
一文读懂:微信小程序云数据库直连原理与使用指南
本文详解微信小程序云开发模式:前端通过`wx.cloud`直接调用云数据库(MongoDB),依托微信私有协议自动鉴权与安全规则实现免后端开发。涵盖原理架构、调用流程、CRUD示例及权限配置,适合MVP及轻量应用,兼顾高效性与安全性。(239字)
585 1
|
存储 算法 C语言
【C语言】字符常量详解
字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。
1457 11
【Typora】如何恢复关机前编写好的内容
博主在typora中编写内容时,关机没有提前保存,重新开机数据没有保存,因此写一篇博客进行讲解,如何恢复没有保存的数据 恢复 电脑关机前 typora软件没有保存的内容 一、恢复方法 1.点击左上角的文件,选择偏好设置 2.点击偏好设置 3.找到要恢复的文件即可
719 0
|
机器学习/深度学习 人工智能 安全
利用 AI 进行代码优化:智能化代码审查的新纪元
【10月更文挑战第24天】本文探讨了AI在代码优化和审查中的应用,介绍了AI如何通过静态代码分析、代码风格一致性、历史数据学习和实时反馈等功能提升代码审查效率。文章还介绍了几款智能化代码审查工具,如SonarQube、DeepCode和GitHub Copilot Security,并提供了实施AI代码审查的最佳实践,帮助开发者提高工作效率和代码质量。
|
人工智能 自然语言处理 机器人
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
如今,大模型层出不穷,这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是,普通人使用大模型还是有一定门槛的,首先大模型通常需要大量的计算资源才能进行训练和推理。这包括高性能的图形处理单元(GPU)或者专用的张量处理单元(TPU),以及大内存和高速存储器。说白了,本地没N卡,就断了玩大模型的念想吧。 其次,大模型的性能往往受到模型调优和微调的影响。这需要对模型的超参数进行调整和优化,以适应特定任务或数据集。对大模型的调优需要一定的经验和专业知识,包括对深度学
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
|
搜索推荐 安全 物联网
智能家居技术的未来:集成化与个性化的融合
本文将深入探讨智能家居技术的发展趋势,特别是集成化和个性化如何成为未来智能家居系统设计的核心。文章将分析当前智能家居技术面临的挑战,并展示通过集成化提高系统效率、降低成本的方法。同时,讨论个性化服务在提升用户体验方面的重要性,以及如何通过数据驱动和人工智能技术实现这一目标。最后,文章将预测未来智能家居技术的发展方向,包括物联网设备的进一步整合、安全性的提升,以及智能家居技术在健康监测和环境可持续性方面的应用潜力。
510 1
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
942 4
|
安全 数据安全/隐私保护 网络虚拟化
亲测有效:注册谷歌邮箱账号gmail的最新教程
谷歌邮箱,也被称为 Gmail,是由谷歌公司开发的一项电子邮件服务。自 2004 年首次推出以来,Gmail 迅速成为全球最受欢迎的电子邮件服务之一。截至 2023 年,Gmail 拥有超过 18 亿活跃用户。Gmail 以其简洁易用的界面、强大的功能和高可靠性著称,成为个人、企业和组织广泛使用的电子邮件平台。
5108 1
|
网络架构 Python
在Flask中,如何定义路由并处理HTTP请求的不同方法(GET、POST等)?
【4月更文挑战第25天】在Flask中,使用`@app.route()`装饰器定义路由,如`/hello`,处理GET请求返回'Hello, World!'。通过添加`methods`参数,可处理不同HTTP方法,如POST请求。单一函数可处理多种方法,通过检查`request.method`区分。动态路由使用 `<variable_name>` 传递URL变量到视图函数。这些基础构成处理HTTP请求的Flask应用。
590 1

热门文章

最新文章