Linux 出海

作者:Randolph Bentson

Randolph: 您的背景是什么?您是如何了解 Linux 的?

Steven: 我在 1987 年至 1990 年就读于牛津大学圣彼得学院,学习数学与计算联合荣誉学位。在那里我首次接触到 Unix (Sun3 配 SunOS 3.5,以及 High Level Hardware Orions 配 BSD 4.2 和一些 4.3 扩展)。

1990 年夏天,我加入了 Papachristidis Ltd.(为 Hellespont Group 执行行政和代理职能的公司),成为三人团队中的一员。由于各种组织变革,我现在负责所有事务...

Hellespont Group 是一家希腊航运公司,总部位于比雷埃夫斯,运营着多艘 ULCC(超大型原油运输船)和 VLCC(超大型原油运输船)油轮——一些海洋上最大的船只,在全球范围内进行贸易。在伦敦也设有办事处,两个办事处通过模拟专线连接,提供两条语音和四条数据电路。在办公室里,我们运行着一个 Unix 机器网络,用户通过哑终端(例如 DEC VT320)和终端服务器访问机器。我们的主要界面很简单,就是用户运行 vi 并创建 roff 文档。诚然,这不是最用户友好的界面,但非常灵活,并且能够在许多 Unix 系统上运行。在此基础上,我们编写了各种 shell 脚本和 C 程序,也具有高度可移植性,并且定义明确的文件树确定了报告和文件的存储位置,与纸质文件归档相匹配。

回到 1991 年 11 月,我刚拿到 Interactive Unix 磁盘(一个非常旧的版本)并将其安装在我的 386DX-20 上,当时我在 comp.unix 的一个群组中听说了关于一个免费的 Unix 克隆以及对 alt.os.linux 的引用。我很快找到了内核的位置,并下载了 Linus 的根磁盘和引导磁盘。我印象深刻。

Randolph: 很明显您喜欢使用 Linux。您是如何说服您的公司考虑 Linux 的?

Stephen: 我向我的希腊和美国同事展示了早期的 Linux 版本,但他们没有留下深刻印象。当 Owen LeBlanc 的 MCC-Interim Release 0.95 发布时,我经历了 0.11 和 0.12 内核。5 张磁盘上有一个可用的 Unix!扔掉了 Interactive(它从未正常工作过)并安装了 Linux。Peter MacDonald 推出了他的 SLS 软件包,我花了一大笔电话费下载磁盘。

在这个阶段,船载项目计划围绕 Sun Sparc 系统(每艘船一个,配 VT 终端)进行。我的同事们认为 Linux 不行。SLS 改变了他们的想法,所以我应该责怪(感谢!)Peter 说服了他们。我提出为英国无法自行下载 SLS 的人提供 SLS 副本,Adam Richter 免费寄给我一张 Yggdrassil CD。现在我有了源代码,我构建了自己的设置,这意味着我可以绕过 SLS 的一些问题。

从那开始,就很容易在办公室进行实验,在我的办公桌上安装一个小型 Linux 系统,并确定它是否可以使用。除了少数网络问题(数据包风暴)外,一切都运行良好。

Randolph: 您能详细介绍一下 Linux 在船上的使用情况吗?

Stephen: 首先,该系统现在处理船舶与岸之间 90% 的文字通信。使用办公室 hub 上的软件,消息可以发送到办公室并中继给第三方,使用更便宜的陆线。通常,一条消息会发送给多个方,因此现在船舶只需向办公室发送一条消息,计算机就会自动将其发送给所有其他接收者。当然,办公室也不仅仅有电传,还使用许多替代方案,但那是另一个故事了。

其次,可以在系统上创建船舶报告,并非常容易地打印、归档、发送到办公室。同样,在办公室编写的报告和程序可以以源代码形式分发到船舶,用于打印和本地存储,这使其成为更新手册的简便方法。

现在我们发送的流量比安装系统之前更多,但与我们的节省相比,增加的成本影响微乎其微……当我们最初在船上安装传真机(多年前)时,由于传真比电传便宜,我们最初看到了成本的降低,但随后当一切都传真时(即使是不需要的东西),成本就爆炸了。相反,电子邮件系统实际上从传真中转移了流量(以固定格式的电子邮件而不是传真发送数据),这更有助于降低成本!我们预计随着我们发送更多数据,成本将略高于当前水平(远低于之前的水平!),但这应该提高效率和办公室更好监控船舶的能力,因此总的来说是有益的。

备件和库存控制已在一艘船上完成——已输入船舶计划中的完整零件清单,以便在需要订购更换零件等时轻松搜索官方规格。

请购单(备件、物料等)已经由一个结构化文档处理,该文档由脚本解析并在办公室打印,而无需将文档从船上发送到岸上。

可能性是无限的。

Randolph: 在船上安装这个需要做些什么?

Stephen: 当时我们有一艘船停在里斯本郊外的干船坞,所以那是测试的完美船只。这艘船不会去任何地方,而且如果我们忘记了什么,我们可以使用岸上设施!

最初的设计要求一台计算机和五个终端,这些终端将放置在船上的战略位置(船长办公室、轮机长、船舶图书馆、货物控制室和发动机控制室),以便需要的人员可以访问主系统。穿过船的布线使用非屏蔽双绞线(3 对)电缆,端接在 RJ12 连接器中,每个位置有两组线。主单元放置在无线电室中。选择这种布线是因为这意味着相同的电线可以用于电话、10baseT 以太网或串行电缆,只需制作正确的模块化电缆即可。

安装非常简单。我的美国同事也和我一起在船上,他花了前一周购买和组装硬件,并确保它实际上能够启动一个最小系统。我也有运行 Linux 的笔记本电脑,所以如果磁带出现问题,我可以构建一个紧急启动软盘集。

这是为期两周的每日查找错误/修复错误循环的开始,我们在这两周都在船上。当我这样做时,我的同事安装了工作文件,使文件树看起来与办公室中的文件树相同。最终结果是一个看起来非常接近办公室运行的系统——在价格昂贵得多的 Sun 计算机上。

之后,我们离开了船去购买一些新设备、一些不同的调制解调器等等,并计划在一个月后在船离开码头之前返回。

当我们返回时,我们将终端更换为更小的 Linux 系统,因此我们现在的设置是一台中央 486DX2-66 和三台客户端机器,它们都运行 X 并通过 NFS 连接在一起。中央服务器充当网络的通信和打印服务器。为了应对服务器机器的故障,开发了一个简单的脚本来更改其中一个客户端上的一些主要配置文件,使其充当服务器。诚然,这是一个没有任何用户文件的服务器,但足以继续通信并完成一些简单的工作。

此后,我们在另外五艘船上安装了类似的系统,这次仅使用 486SX-33 VLB 机器(带有 VESA 显卡)作为客户端;机器价格降至一个水平,以至于使用功率较低的机器没有意义!

Randolph: 您在船上发现了哪些特殊问题?

Stephen: 船舶是我能想到的电气噪声最大的环境之一,但只有最长的电缆产生了噪声——而且只有在从终端拔下插头时才会产生噪声!串行电缆在如此远的距离上工作,给我们留下了深刻的印象。

系统的电源也是一个问题:船舶自行发电:220V,60Hz。为了应对这个问题,我们购买了美国设备,并配备了一个变压器,将 220V 转换为 110V。我们配备了 Triplite UPS 以应对不可避免的电源波动,并配备了 Isobar 以尝试应对任何浪涌。一周前,另一艘船的发电机超速运转,并通过主电源射出了超过 660V 的电压——这不是我想在 PC 上冒险的事情!

将调制解调器连接到系统是一项艰苦的工作。(当在岸站范围内时,我们使用蜂窝电话,当在海上时,我们使用基于卫星的语音通信系统 Inmarsat A。)但这并不是 Linux 的错!主要问题是调制解调器。最终,我们使用 Taylor UUCP 获得了可靠的连接。使用 'g' 协议,我们可以获得 300+ cps 的平均吞吐量。与 v32 应该能够做到的相比,这并不好,但比电传 好得多!当我们升级办公室的 Sun 计算机以使用 Taylor UUCP 时,我们设法使用 'i' 协议获得了 600+ cps 的平均吞吐量。船舶每天在四个固定时间轮询办公室(不同的船舶有不同的时间以减少冲突)。

Randolph: 您如何管理这些远程系统?

Stephen: 基本上,我们为无线电员在办公室中配置与服务器相同的系统上进行一些强化培训。我们向他们展示如何执行基本的管理任务,例如备份、重启、发送电子邮件等等。还向他们展示了硬件、如何重新安装卡等等。船舶上的一个大问题是振动,因此我们预计硬件问题比软件问题更多。这与脚本和 cron 作业一起,可以应对大多数可预见的问题。对于其他问题……嗯,我只是一个电话的距离!

事实上,从我们迄今为止遇到的问题来看,我们对硬件故障是最大问题的预期似乎是正确的。一台 PC 的电源坏了(幸运的是,这发生在当月我们升级调制解调器的第一艘船上,所以我们设置了一台新服务器并同时将其安装在船上)。一台激光打印机无法正常进纸。一个 Boca 板端口烧毁。但是硬件很便宜,备件可以送到船舶预定的港口,无线电员可以执行物理更换。只发生过一个软件问题(不幸的是,由于我还没有找到修复方法,因此会再次发生——从属设备上的打印机守护程序有时会“卡住”)。

Randolph: 您对未来发展有什么计划?

Stephen: 嗯,我们仍在构建网络。我们认为该配置是成功的,并计划在我们的其余船舶上添加类似的配置。

办公室通信 hub 最近已更换为 Linux 服务器,该服务器现在为该组路由大多数消息,包括我们的外部电子邮件连接。一项更长期的计划是升级办公室,用联网的 Linux 机器替换哑终端。

我们 不会 做的一件事是“追逐版本”。我们使用的内核和库已经过时了。但是,当它充分满足我们的需求时,就没有必要升级。如果我这样做,那么我将大部分时间都花在向船舶发送更新上,而无暇做其他事情!

Linux 已经证明自己非常可靠。硬件的廉价意味着我们可以而且确实在船上构建了一个网络,该网络大大优于基于 Sun 设备构建的网络。电子邮件优于电传的额外便利性,以及连接的相对廉价性,意味着船载数据可以以更可用的形式发送到办公室。

由于 Inmarsat A 的成本大约为每 6 秒 1 美元,因此消息大小成为一个重要的考虑因素!我们希望开发一个 8 位干净的系统,该系统允许通过各种媒体(直接 uucp 登录、互联网电子邮件、调制解调器拨号等)路由流量,并提供一个复杂的“回执”系统,以便发送者知道消息何时到达目的地(例如,我们不希望船舶生成回执,因为它会造成额外的船岸流量(昂贵),因此岸基 hub 将在知道船舶已收到回执后生成回执)。由于所有路由都将由我的软件完成,因此它可以确保消息在任何传输限制下都能幸存——例如,对于直接 uucp,它可以 gzip 文件进行发送,对于电子邮件,它可以 uuencode 等。

Randolph: 我什么时候可以参观一下?我住在西雅图。

Stephen: 我们的船只(当它们去美国时)主要在另一边——加尔维斯顿(用于减载,因此它们在近海,您需要乘坐直升机才能到达它们)和 LOOP(路易斯安那州海上石油港——不易到达),因此恐怕不太可能参观船只。当然,它们大部分时间都远离任何可见的陆地,在横跨大西洋,但有时它们会去欧洲港口(例如鹿特丹的欧洲港)。

Randolph: 除了将 Linux 送到海上,您还有哪些其他值得称道的成就?

Stephen: 我是 c.o.l 中“我讨厌 Linus Torvalds”主题的发起人,我在其中说我讨厌他让我升级我的 PC,以便我可以运行他编写的优秀操作系统(并且被许多从未阅读第二页的人批评!幸运的是,Linus 认为这是一个玩笑!)。

我从未抽出时间给他寄出早期版本说明中要求的明信片...

Randy Bentson 自 1969 年以来一直以编程为生——编写的任务内核比他愿意承认的还要多,都是用汇编代码编写的。他的第一个高级语言操作系统是 UCSD P-system。在近 14 年的时间里,他一直在使用 UNIX,在过去一年里,他一直在享受 Linux。Randy 是 Cyclades 串行 I/O 卡的 Linux 驱动程序的作者。

加载 Disqus 评论