Linux 在战壕中

作者:G.W. Wettstein,
罗杰·马里斯癌症中心;依赖 Linux

我仍然记得在我办公室一台低端的 80386sx 显示器上,当它第一次启动 Linux 时,孤零零的美元提示符亮了起来。那个单一美元符号的出现,已被证明可能是罗杰·马里斯癌症中心历史上,以及我职业生涯中最具开创性的时刻之一。这个自由操作系统的诞生,在一个以前由商业软件主导的环境中,将对我们工作人员为患者提供的护理质量和效率产生深远的影响。

我饶有兴趣地关注了 Linus 在网络上发布的关于他正在编写的一个名为 Linux 的 Unix 克隆的早期公告。由于工作和开发压力缠身,我没有让自己沉迷于摆弄这个新产品,因为害怕又陷入另一个永恒的时间黑洞。最终,出于好奇心的驱使,我决定冒险尝试并研究 Linux。我们的经验远远超出了我们的预期;Linux 确实是一个美妙的时间黑洞……

实际的动机和决定转向自由/开放系统方法来满足我们的信息处理需求发生在更早的时候。1988 年,我被招募加入一个团队,该团队的目标是开发一个综合癌症护理机构。我唯一要求的福利是一台基于 80386 的计算机,因为我的直觉告诉我,这款微处理器进入个人计算机市场将彻底改变桌面计算。

我们的医疗主任保罗·埃策尔博士对我的要求很感兴趣,想知道我为什么这么认为。我告诉他,“因为它能够像应该的那样进行多任务处理并处理大量内存。”他很兴奋,并告诉我他一直梦想着为他的癌症中心建立一个专门的患者信息系统。有了这个授权,一台 16Mhz 80386sx ALR 和一个 Xenix 2.3.3 开发系统,我们开始着手设计新的解决方案来解决门诊癌症护理服务中的问题。我们提供的护理让患者能够接受治疗,并且仍然能够过上某种“正常”的生活方式。

那是在 1988 年。罗杰·马里斯癌症中心现在已发展成为一个主要的区域治疗和转诊中心。每天为大约 125 名被诊断患有癌症或血液病(血液)的患者提供医疗护理、化学疗法和放射疗法。共有 13 名医生提供癌症护理,并由大约 100 名员工和 25 台 Linux 工作站提供支持。癌症中心是 MeritCare 医疗集团的一个独立服务部门,该集团由大约 250 名医生和 2000 多名员工组成,为一家中心诊所、一家 400 张床位的医院和 25 家区域诊所提供支持。对于所有渴望在商业环境中使用 Linux 的人来说,我们已经非常商业化了。

当第一个 Linux 美元提示符出现时,我们的癌症中心对自由软件并不陌生。我已经将许多 GNU 工具移植到 Xenix,试图创建一个合适的开发环境。那时,我们的癌症中心由两台 33Mhz 80386dx(Gateway-2000)提供支持,ALR 已经被仁慈地淘汰了。

然而,与编译器、编辑器和实用程序相比,操作系统是完全不同的野兽。当我坐在屏幕前,思考着一台以前被判刑为 MS-DOS 的机器现在正在安静地进行多任务处理时,我甚至不敢相信我眼前所见。我从芬兰某个遥远的地方免费 ftp 下载的东西,真的能够在我们的开发计划中发挥作用吗?

在我们的早间咖啡会上,我隔着桌子看着埃策尔博士,平静地评论说,我可能偶然发现了一些可能对癌症中心产生深远影响的东西。

Linux 产生了深远的影响,因为它为我们打开了许多扇门。我们的医疗主任是一位真正的有远见的人,他知道医学的面貌将发生根本性的变化。正如他的预测,美国医疗界正面临着提供高质量、高性价比护理的巨大压力。如果我们的癌症中心要生存下去,更不用说在这个环境中蓬勃发展,那么创新和快速适应至关重要。Linux 产生如此深远影响的原因在于,它为我们提供了这种进化过程所需的工具。

可能不用说,点对点网络工作站的分散系统与公司数据处理部门为我们设想的愿景不同。公司完全基于集中式大型机处理,公司车轮正转向网络解决方案,但这种网络的主要目的是将数据流从大型机传输到无盘工作站;昂贵的终端通过昂贵的布线连接。我们的愿景是独立的、能够在不需要网络连接的情况下运行的工作站,但也能够利用网络在其日常任务中享受极大的协同作用。

如果这就是我们的福音,那么就由 Linux 为我们宣讲。愿景上的二分法确保了我们的工作不会有资金可用。Linux 和自由软件提供了在没有官方支持的情况下实施我们的策略的工具。由于 Xenix 且没有资金用于升级,因此没有 X-windows 的潜力,最重要的是没有资金用于 TCP/IP 网络,而 TCP/IP 网络是我们开发策略的核心。

这并不是说 Linux 是一种神奇的解决方案,可以在一夜之间彻底改变我们的患者护理方法。第一个美元提示符实际上来自启动盘/根盘组合(我在这里暴露年龄了),它是 1992 年初的版本 0.95a(那些非常奇怪的版本号之一)。在当时的开发阶段,Linux 远非现在的这种工作站竞争者。我在 Xenix 机器上拼命开发应用程序软件,同时培养一个稳定的 Linux 环境。我们的大部分应用程序代码都是 PERL/TeX/C,我知道这些代码只需一段时间就会在 Linux 上可用。

Linux 上的所有开发都是在一台 20Mhz 80386sx(Gateway-2000)上完成的,该机器配备了一个 120MB 磁盘驱动器。这台机器通过串行端口与其中一台 Xenix 机器背靠背连接,后者的 300MB 硬盘驱动器为开发源代码提供了安全的避风港。这真实地证明了 Linus 和其他开发人员的努力,我们在开发过程中从未经历过文件系统崩溃或数据丢失。事实上,最初的 20Mhz 机器仍在服役,仍然使用写入其硬盘驱动器的原始 Minix 根文件系统 0.96a。

直到大约 0.96c 版本,Linux 才真正开始承担运营责任。这主要是因为 0.96c 是第一个其串行驱动程序能够可靠地承受 UUCICO 会话的版本。我们当时的“网络”概念是通过 UUX 进行文件中继和远程执行,这使得可靠的串行通信至关重要。

在 0.95-0.96 阶段,我们的开发工作重点是组装在今天的术语中所谓的发行版。现实情况决定了,如果要将多台机器投入使用,就需要一种可靠的复制和更新 Linux 的方法。在此期间,我编写了第一个版本的 StopAlop [StopAlop 代表“Stop Alopocea”(脱发的医学术语)或“Stop A lot of problems”(停止很多问题)]。StopAlop 允许我们将 Linux 打包成一系列模块,这些模块可以独立、可靠且具有版本控制地安装、验证和更新。我们的安装以“基本”模块为中心,该模块是独立于 UUCP 的 Unix 工作站所需的一切。附加模块提供了我们的应用程序代码、emacs、开发环境、文本处理 (TeX),以及最终的网络和 X11。

当可靠的内核到来时,我们已经准备好了一个经过充分测试的、可靠的系统环境。我们的应用程序软件已经在 Xenix 下成熟并运行。当我们开始部署 Linux 时,我们的医疗主任开始了谈判,最终提供了必要的硬件资源,以制定我们的点对点分布式计算环境。他的努力很大一部分集中在为我们羽翼未丰的项目争取公司生存。

Linux 开始对我们的运营产生深远影响,这增强了他的努力。由于不再受限于两个操作系统许可副本的限制,我们能够立即部署另外四台工作站。这些机器上托管的我们的应用程序软件为基本上是非自动化的患者护理环境提供了患者信息、患者跟踪、药物历史数据库、药房支持和自动化患者图表。

我们对批评者(他们声音很大)最有力的论据是,正在实施的系统运行良好,根据我们的应用程序需求进行了调整,大大提高了生产力,并且除了硬件成本之外没有花费任何费用。最令人震惊的一点是,完成这些壮举的工作站是从成为无盘 DOS 网络客户端的命运中拯救出来的……

从那时起,我们取得了进步,并取得了一些值得注意的里程碑。在第一台 Linux 机器开始跟踪患者六个月后,通过从使用多个虚拟控制台更改为 X,用户界面发生了重大转变。在 Prime 计算机(托管实验室信息)和 Linux 工作站之间建立了串行连接。接待员和工作人员有时需要处理三台不同的计算机和/或终端,现在可以通过同一显示器上的多个 xterm 与不同的信息源进行交互。

最重要的里程碑发生在集中器插入的那一天,它通过 10baseT 以太网连接了所有工作站。通过工作站之间的高速 TCP/IP 连接,我们点对点分布式信息支持环境的目标和愿景得以完成。根据 Linux 的福音被命名为 Perceptions;这个名字是为了体现我们冒险的设计目标,即提供一个统一的资源,使罗杰·马里斯癌症中心的工作人员能够清楚地了解他们正在照顾的患者的信息。1993 年 12 月,“红色大开关”被拉下,最后一台 Xenix 机器停止运行,我们的癌症中心及其运营完全依赖于 Linux。

Linux 和 Perceptions 的故事是关于为什么我认为“自由”软件可以在商业市场中发挥重要作用的最真实的例子。我们能够实现目标的速度,直接归功于我们创新和响应环境需求的能力。我们成就的障碍仅限于我们个人能够开发和支持的东西。我们发号施令,我们做出决定,如果出现问题,我们就修复它。正是这些经历促使我们形成了座右铭:“我宁愿花 10 个小时阅读别人的源代码,也不愿花 10 分钟听 Musak 等待没有用的技术支持。”

我们成功的真正基础,部分在于使我们所做的事情成为可能的庞大而分散的 Linux 积极分子网络。当您拥有良好的数据来做出决策时,总是很容易做出良好的设计决策。我阅读了数千篇 Usenet 文章,以确保我知道关于内核稳定性、哪些软件有效和哪些软件无效的一切知识,最重要的是,如何修复无效的软件。基于数百或数千人的经验,我做出了良好的设计决策。良好的设计决策导致成功的实施,这确实是我们生存的底线。正如埃策尔博士恰如其分地指出的那样,“与有效的东西争论总是很困难的。”

Linux 和 Perceptions 的故事远未结束。我们总体设计计划中只实施了基础部分。我们信息系统的基本设计原则之一是跨多个主机的并行数据库并发性。我们的系统被设计为能够承受(并且已经承受了)网络连接中断,而最终用户不会知道事件发生。当前的研究兴趣是跨广域网络的锁定和更新的额外工作。数字文档存储和检索是一个极端的兴趣和活动领域。我们确信能够应对未来医疗保健领域的挑战,因为我们拥有一个稳定的开放式操作环境,可以在此基础上制定我们的信息策略。

因此,罗杰·马里斯癌症中心的 Linux 故事实际上是 Linus Torvalds 和 Linux 积极分子运动的成功故事和证明。我希望运动中的每个人都和我一样有成就感。我非常高兴地告诉访客,由于一位(当时)来自芬兰的 23 岁计算机科学专业学生的保护模式编程实验,我们能够更好地照顾癌症患者。

1. StopAlop 代表“Stop Alopocea”(脱发的医学术语)或“Stop A lot of problems”(停止很多问题)。

格雷格·韦特斯坦 (greg@plains.nodak.edu) 是一位药剂师,他选择这个职业是因为它只需要两个季度的数学。他现在是一位量子化学博士和理论药物设计师,他不会离开美国中西部地区,因为他喜欢团队套索和养牛胜过波函数和汉斯方程,并且在他最好的朋友的建筑公司里,他会在“空闲时间”驾驶装载机和卷轴卡车(进入坑洞)。

可以通过以下方式联系到他:G.W. Wettstein, Ph.D., Oncology Research Division Computing Facility, Roger Maris Cancer Center, Fargo, ND 58122。

加载 Disqus 评论