拉脱维亚政府使用 Linux

作者:Dmitrie Komarov

最近我发现了一个 Linux 的新的不寻常的用途,我在工作中成功地使用了它。以下是我必须使用的机器和软件列表

  • 本地以太网网络

  • Novell NetWare 4.10 文件服务器

  • 大约 15 台 DOS/Windows 工作站

  • Linux 服务器作为 IP 路由器、邮件服务器等

  • 一个用 Clipper 为 MS-DOS 编写的数据库应用程序,包含超过 40 万条记录

问题

这个数据库应用程序大约五年前是为一个独立的 DOS 工作站编写的,当时我们最强大的计算机是一台配备 2MB 内存的 386SX。在某个时候,我们对这个程序进行了修补,以增加一点网络支持。主数据库迁移到了 NetWare 文件服务器,程序就像访问本地驱动器 (Z:) 一样访问服务器。每天都有数据添加到这个数据库中,它已经增长到超过 300MB 大小。现在有 15 个用户连接到它,但程序本身仍然和五年前一样。

每次用户搜索数据库时,他的工作站会产生大约 30 到 100MB 的网络流量。NetWare 服务器显示 100% 的利用率,搜索可能会持续数小时。有一天(确切地说,那是一个美丽的春日早晨),我的老板要求我再连接 10 个工作站到数据库,并通过互联网和拨号连接添加对数据库的远程访问。我差点心脏病发作。

需要做什么

当然,我们需要从头开始重写我们的数据库,使其支持客户端-服务器和内联网。是的,我们必须这样做,但我们是一个预算非常有限的政府组织。当我向当地软件开发商询问重写的可能成本时,他们告诉我,因为它将是一个任务关键型的客户端-服务器应用程序,具有扩展的网络和互联网支持以及维护,价格将在 20,000 美元到 40,000 美元之间。现在我的老板要心脏病发作了。还不止这些——我们的数据库非常特殊。它是为非常特定的任务编写的,并且经过了长时间的测试,在实验期间添加了错误修复。我们根本无法承担从头开始自己编写这样一个应用程序的费用,再次经历所有相同的问题。更重要的是——我们需要立即为数据库添加远程访问,所以我们需要另一种解决方案。

解决方案

我使用我们的 Linux 服务器以以下方式解决了一些这些问题

  • 我将数据库从 NetWare 文件服务器移动到了 Linux。

  • 我安装了当时可用的最新版本的 DOS 模拟器 (dosemu-0.64.3)。

  • 在配置并启动 dosemu 后,我将包含数据库的目录作为本地磁盘 (Z:) 挂载到 dosemu 中,并安装了应用程序。

  • 我启动了应用程序以确保它能工作——它确实工作了。

  • 我配置了 dosemu 以使用我的应用程序所需的精确内存量,并且我检查了 dosemu 配置文件中特定于终端的配置行。

  • 我建立了到我站点的 TELNET 连接,并使用我的应用程序启动了 dosemu——这也奏效了。

  • 我建立了到 Linux 的拨号连接,并从 shell 提示符下使用应用程序启动了 dosemu——它再次工作了。

  • 我使用 xdos 启动了 X——又一次成功。哎呀,现在我同时运行了四个应用程序副本。

  • 最后,我通过 Samba 或 MARS_NWE(Linux 的 NetWare 服务器模拟器)共享了数据库目录,将其作为普通数据库磁盘挂载到其他工作站上,它也以这种方式工作。

感知到的收益

我们的 DOS/Windows 工作站可以继续以旧方式使用数据库。所有改变的是,数据库的文件服务器现在是 Linux,客户端不仅可以通过 NetWare 协议连接到数据库,还可以通过使用 Samba 的 Microsoft 网络连接——还不错。

由于可以在 Linux 上一次运行多个 DOS 模拟器副本,因此用户可以从 Linux 控制台、X Window 系统、X 终端、串行终端、远程 TELNET 连接和远程拨号连接访问数据库。请注意,如果数据库应用程序是从 dosemu 启动的,它的运行速度会快 10 倍,因为在这种情况下,它使用的数据不是来自网络,而是来自本地驱动器。

在使用此配置大约两个月后,我发现从 Linux 上的 dosemu 运行应用程序比从 Windows 3.11 运行更稳定。有一些技巧可以防止在与 dosemu 的远程连接断开时数据丢失。顺便说一句,在试验 MARS_NWE 时,我发现它非常稳定、强大且快速。通过 MARS_NWE 从 Linux 传输数据的速度几乎与从原生 NetWare 4.10 文件服务器传输数据的速度一样快,因此从 DOS/Windows 工作站连接的用户看不到太大差异。而所有这一切都是在一个晚上完成的,无需任何编程或额外的资本投资。

Latvian Government Uses Linux
Dmitrie Komarov 是拉脱维亚里加警察局的网络和系统管理员。他 11 岁时用 BASIC 编写了他的第一个程序,当时他甚至还没见过电脑。自内核 1.2.13 以来,他一直是 Linux 的粉丝,并希望永远保持下去。可以通过电子邮件 dmit@rgpp.gov.lv 与他联系。
加载 Disqus 评论