崎岖领域的 Linux

作者:Sid Hellman

传统上,地震学家一直使用实验室的 Sun 计算机来分析在野外记录的数据。但是,廉价的基于 Intel 的笔记本电脑和 Linux 的出现使我们能够将工作站从实验室带到野外。这涉及到跨操作系统平台进行代码的例行移植以及内核级开发。经过一年的辛勤工作,隶属于 PASSCAL 仪器中心的科学家们一直在使用 Linux 作为便携式工作站,进行从密苏里州到马萨诸塞州,以及从密克罗尼西亚到坦桑尼亚的地震研究。

与我们名称的含义相反,我们并非一个致力于或隶属于 Pascal 编程语言的组织。PASSCAL,即大陆岩石圈阵列地震研究计划,是 IRIS(地震学研究联合机构)的成员计划,IRIS 是由 90 所美国大学组成的联盟(有许多附属成员,包括外国和国内)。自 1989 年以来,我们一直位于哥伦比亚大学的拉蒙特-多尔蒂地球观测站,而第二个仪器中心于 1992 年在斯坦福大学成立。

在 Linux 系统上显示的科比地震地震数据

在地震学中,科学家通常会进行实验,在相对较短的时间内使用许多昂贵的仪器。让单个科学家花费数十万美元购买设备,却让其 80% 的时间在架子上积灰,在这个财政紧缩的时代毫无意义。此外,很少有科学家有时间掌握和集成来自不同制造商的设备,以构建可靠的数据采集系统。

PASSCAL 团队成员 Bob Busby 在巴基斯坦

因此,PASSCAL 仪器中心成立的目的是为地震界服务——提供功能强大且灵活的便携式仪器,以及只能通过经验获得的专业知识。我们提供后勤和技术支持,负责系统集成和维护,并向制造商提供全面的反馈。由于实验从野外返回了 TB 级的数据,因此开发了一套广泛的程序来协助地震学家进行数据采集和存档,并确保数据质量。该计划的受欢迎程度已增长到 1997 年的实验安排正在进行中的程度。

历史上,PASSCAL 实验使用了两个独立的计算机系统,一个用于数据采集,一个用于数据分析。数据采集系统 (DAS) 由一系列防风雨的灰色盒子(CPU、SCSI 磁盘、电池)、外围设备(太阳能电池板、GPS 接收器)和一个带有 LCD 触摸屏的手持终端组成,用于对 DAS 进行编程和检索数据。运行 SunOS 的标准 Sparcstation 用于数据分析和质量保证,它可能位于或不位于地震站附近。

PASSCAL 仪器的便携性解释了该计划的受欢迎程度,同时也带来了后勤方面的困难。研究人员经常在偏远地区建立站点,使得访问困难和/或昂贵。因此,站点访问不频繁,用户允许 DAS 运行数月,然后才返回检索数据。检索是通过复制到磁带(或备用磁盘)来完成的,然后将其带回实验室进行质量控制、数据分析和存档。在此阶段检测到仪器问题需要再次前往站点。(在我们位于密克罗尼西亚的一个站点,每周只有一班飞往该岛的航班。您飞入,工作 4 小时,等待一周,飞回,检查您的数据,如果出现任何问题,一周后再次飞回。)

1993 年 11 月,我在家安装了 Linux,只是为了拥有一个类似于我在工作中使用的操作环境。我启动并运行了 X,并意外地在我的硬盘上发现了 XView 库。我负责的一个主要代码片段使用 X(通过 XView)来显示地震轨迹,大约 17 毫秒后,我决定将这个程序移植到 Linux,只是为了我可以在家工作。

有一天,我把我的 PC 拖到工作中,向大家展示 Linux 能做什么。我们团队的一名成员评论说,如果我们能在便携式计算机上运行这个系统,我们实际上可以在野外查看原始数据并对数据进行频谱分析,这样还有时间纠正错误。这引出了一个想法,即如果我们在野外拥有一台带有 X-windows 的计算机,我们甚至可以编写一些用户友好且功能强大的软件来对 DAS 进行编程,而不是使用手持终端。

当时,我们实际上正面临着关于 DAS 编程的困境。Epson 制造了手持终端,它运行一个简单的 basic 程序,并通过串行端口连接到 DAS。这个手持终端相当用户友好:只需用手指指向并按下即可。问题是,使用手持终端只能进行初步诊断。有一个基于 DOS 的替代程序,功能更强大(即有许多选项),但“用户友好”不是我们用来描述它的词语。

由于我们的许多用户每隔几年才进行一次野外工作,而且许多用户是新手研究生,因此用户友好性对于保证数据完整性至关重要。将 DOS 程序的强大功能与手持终端的易用性结合到一个美观的 X-windows 程序中的想法非常吸引人。

带着梦想和需求,我们做了你们许多人做过的事情:我们开始寻找资金。推销笔记本电脑的想法实际上很容易;推销 Linux 是另一回事。由于我们所有现有的代码都是在 SunOS 和 X Windows 下运行的,我们甚至没有考虑将我们的代码移植到 MS-Windows 或 OS2。

然而,我自己实际上并没有被 Linux 说服。我第一次使用 PC-Unix 的经验是 Interactive Unix,那时它还归柯达所有。我真的不反对再次与他们(或 SCO,或任何人)合作。我们调查了替代方案,正如你们许多人也发现的那样:Linux 很可能比其他 PC-Unixes 为任何给定的硬件提供更好的支持。在向我们自己和我们的老板证明了这一点之后,我们选择了 Linux。

我们在 1994 年初购买了我们的前两台笔记本电脑,主要是为了研究在野外运行 Linux 笔记本电脑的可行性。当我的同事 Paul Friberg 和 John Webber 以及我开始移植我们代码的主要部分时,我们很快就遇到了第一个瓶颈:SCSI。我们所有的数据都是在 SCSI 设备上采集和存储的,我们的大部分代码都需要数据才能进行测试。我们的快速解决方案是购买一个扩展坞并在其中安装一个 SCSI 适配器。显然,这既不是永久的解决方案,也不是便携式的解决方案,但它足以让我们开始。

我们研究了 PCMCIA SCSI,但当时没有支持。我们认为,鉴于这项技术的起步阶段,不能指望立即获得支持,但很快就会到来。愚蠢的是,我们决定在等待它的同时继续开发我们需要的所有其他代码。

由于我们还深入参与了 Tcl/Tk,我们决定编写一个基于 Tcl/Tk 的手持终端替代品。我们设法将手持终端的点击式易用性与 DOS 程序的功能结合起来。Tcl/Tk 的 BLT 扩展使这个程序变得非常漂亮。

我们还编写了一个程序来实时显示地震数据,允许用户在离开地震仪几个月之前检查地震仪的背景信号。(另一种选择一直是将数据采集到磁盘,运行一些数据转换程序,将数据加载到查看器中,更改仪器并重复该过程。当然,这假设您在地震仪附近有一个工作站。)实时采集和显示同时进行调整的新选项可以轻松节省时间和精力。

此时,我们已经组装了一套相当大的程序,剩下的就是获取数据了。我们再次在网上询问,但没有人知道 Linux 支持的 PCMCIA SCSI 卡。我们的工程师 Gennady Pratusevich 决定为 Linux 编写一个驱动程序,我们决定使用 Trantor/Adaptec 卡。由于大多数其他 Adaptec 卡都得到了很好的支持,我们认为 Adaptec 会向我们提供编程信息。我们大错特错了。

我们开始寻找会向我们提供编程信息的公司的 SCSI 卡。我们发现了一家位于科罗拉多州的小型此类卡制造商,最初他似乎对 Linux 感兴趣,但他再也没有回复我们。我们考虑开发我们自己的卡,这时一些 Linux 新闻组的智慧表明 New Media Bus Toaster 使用了 AIC6360 芯片组。这与 Adaptec 1522 板使用的芯片组相同。我们购买了一个 Bus Toaster,并配备了 Adaptec 1522 驱动程序的源代码、David Hind 的 PCMCIA 代码和一些其他手册,Pratusevich 设法创建了一个功能齐全的 SCSI 驱动程序。随着可加载 SCSI 模块的后续推出,PCMCIA 的真正威力得以实现,使我们能够即时更换磁盘。我们终于准备好迎接黄金时段了。

我想在此指出,如果我们选择了一个不发布源代码的操作系统,这将是我们故事的悲剧性结局。

去年 12 月,我们参加了在旧金山举行的美国地球物理联合会秋季会议,刚刚交付了另外 5 台笔记本电脑。通常我们会将我们的 Sun Sparcstation 放在显眼的位置展示,但今年它们却藏在我们的 Linux 笔记本电脑后面(仿佛一台全尺寸的工作站可以藏在一台 7 磅重的笔记本电脑后面)。Linux 非常受欢迎,每个人都想要一台。

一月的第二周,我们向野外运送了四台笔记本电脑。初步报告令人鼓舞。这些笔记本电脑运行良好,让我们的用户生活更轻松。使用这些机器的人不是 Linux 专家,但这些机器足够易于使用,人们宁愿使用它们,也不愿使用任何当前可用的 DOS 替代方案。

我们最初并没有期望 Linux 会成为我们的出路。显然,移植到 Sparc 笔记本电脑需要的工作量要少得多,但它们的价格令人望而却步。我们还研究了适用于 PC 的 Solaris,但 Solaris 支持的硬件量最少,这让我们望而却步。如果你们中的任何人试图说服你的主管选择 Linux,首先要推销 Unix 的想法,然后让他们将 Linux 与 Solaris 等进行比较。此时,最佳决策变得显而易见。

本文中描述的工作得到了地震学研究联合机构和国家科学基金会在合作协议编号 EAR-9023505 下的支持。本文中表达的任何意见和结论或建议均为作者的观点,不一定反映国家科学基金会的观点。

Sid Hellman 获得物理学硕士学位后不久,膝盖受伤使他转向了编程。自 1990 年以来,他一直是哥伦比亚大学拉蒙特-多尔蒂地球观测站的系统分析师(自 1993 年以来从事地震学研究),他的职责范围从编程到电子学再到野外工作。PASSCAL 仪器中心可以通过 passcal@ldeo.columbia.edu 或通过 WWW 在 www.ldeo.columbia.edu/Passcal/passcal.intro.html 联系。

加载 Disqus 评论