在90年代,德国空中交通管制软件的一部分在Emacs上运行

2021-02-21 07:44:20

上世纪90年代初期,在戴文德之后以及东西德的统一我是从事艰苦工作的人,或者是没人愿意做的人,所以我发现自己一个星期一早上在DASA工厂登记入住(DASA首先是德国航空航天公司,然后是戴姆勒航空航天公司,现在是空中客车公司的一部分) )。该项目由DASA和HP作为主要承包商,以取代这两个国家。具有统一的ATC系统。因此,我们有两家大型公司和一份政府合同,像我的雇主这样的商店也得到了一些多汁的零工。实际上,这里有两个Emacs故事。

首先:那天星期一早上,我请开发人员帮忙。他们在一个充满奇妙物品的实验室中-HP / UX上最新的HP工作站,以及一堆HP顶级服务器,冰箱大小和接近7位数字的标价。我之所以被叫来的原因是:它们无法在系统上工作。他们是VMS开发人员,完成了一个不同的项目,应该在VMS上用C编写整个系统的一部分(我忘了哪个)(这确实是个主意,因为C不太适合VMS,但是& 39;是另一回事)。无论如何,他们得到了自己的工作站和手册,并被告知vi是编辑器,祝您愉快。

我们到了:十几个人在用Vi键入代码时苦苦挣扎。并不是说它们很愚蠢,而是VMS编辑器(TPU,IIRC,但这很久以前)的肌肉记忆确实不能很好地转换为Vi。

我回到家(比办公室更近),将所有GNU源代码加载到QIC磁带上,返回,并启动了当时众所周知的例程:按顺序在某些供应商Unix上编译GNU工具链。以便能够编译包括Emacs在内的实用工具。 GCC花费了最长的时间,在拥有可靠的编译器之前,您需要三个或四个构建阶段,但是一天之后,我在HP / UX上安装了Emacs。从那里开始是下坡路:我做了VMS工作,所以我整理了一个init.el,它尽可能紧密地映射到VMS编辑器,并将其部署到工作站。简短的介绍后,他们几乎拥抱了我:)。

几周后,我接到第二间办公室的电话,他们赶不上时间表,需要多帮忙。由于我不知道的原因,我们不得不-在VMS上运行4GL的microVAXen上的ATC工作站,但是他们努力通过网络传送消息-4GL是面向终端的,不知道什么是网络,但是ATC消息(例如飞机从飞机场到飞机场或Eurocontrol的移交)需要到达本地消息路由器,再从那里到消息目的地。我们正在谈论没有互联网此处-所有X.25和专线,零便利。

好吧,我开始工作,并发现使VMS使用TCP / IP比使用HP / UX使用DECnet更容易,因此我进行了设置,然后选择了炙手可热的新技术DCE进行消息传递。我为4GL做了很多C扩展,所以VMS方面在几天之内就完成了。然后他们告诉我与负责实际消息路由器的Doktor某某先生谈话。

在德国,Doktor先生永远是对的(他们已经原谅了Moses,因为他们在石碑上没有空格,但这确实是第11条诫命)。在认识一种编程语言Lisp之前,他曾在Symbolics工作。由于&p34; complex"他想用Lisp编写消息路由器。 (meh)要求,但是HP / UX没有Lisp(或预算中没有Lisp),所以他被困住了。我告诉了他关于Emacs的信息,给了我我的录音带,也许这是一个错误;-)

一周后-在此期间我帮助完成了4GL UI并完成了消息传递协议-他很高兴地打电话给我。 他向我展示了Emacs Lisp的代码-一页接一页,注释正好为零,因为Lisp是自我记录文档。 我很害怕,毕竟这是一个空中交通管制系统,但我不是Herr Doktor,所以我为Emacs整理了DCE本机代码,进行黑客攻击,使其在消息路由器服务器模式下无头启动,并且我们收到了消息。 流动。 我进行了代码移交,几天后开车回家。 “自我记录” 据我所知,代码至少已经投入生产了一段时间,德国的所有ATC消息路由都是通过Emacs完成的。 专家提示:政府制定安全关键系统时,请不要在厨房看。 我一阵子害怕飞过德国...