在低端硬件上运行 Linux
我在一个研究实验室工作,那里有很多 Unix 工作站。我的问题是这些工作站几乎所有时间都专用于研究。我们的系统管理员没有时间来支持像我这样的人,我们想要比传统的拨号电子邮件阅读更多的功能。当然,终端 非常有用,但我是一个传统主义者。
你看,我在家运行 Linux。我在家里拥有 Unix 机器的全部功能,我不满足于仅仅把它当作终端来拨号连接到服务器。我想要自己的电子邮件!
在 Unix 的早期,在互联网出现之前,机器通过电话线互相呼叫来完美地传输电子邮件、新闻和文件 [好吧,相当不错,无论如何——编者注]。一台机器可以有几十个调制解调器,并接受呼叫,并定期使用名为 uucp—Unix-to-Unix 复制的系统呼叫其他机器。人们使用“公共 uucp”而不是通过匿名 ftp 获取文件。我心想,与其编写一些噩梦般的脚本来呼入、传输文件、挂断并处理它们,为什么不使用 uucp 呢?
所以我开始寻找一台机器来使用。大约在那个时候,我的一个朋友被雇用了,我们在他的办公室里找到了一台旧电脑。那是一台旧的 16 MHz 386SX。在它的前世,它运行 Procomm,并且是一台全职的 终端。我们心中有一个多么大的转变啊——我们把它变成了一台多任务的 Unix 服务器!它有 4MB 的 RAM,这足以运行 Linux。但是硬盘没什么可炫耀的——40MB。我们把它命名为 “trappen”。
trappen 的目的是双重的。首先,我们希望与我们家里的 Linux 机器建立 uucp 连接。其次,我们想为自己提供匿名 ftp 和 http;并不是说我们非常需要它(虽然它会很方便),但更多的是因为拥有自己的个人 Unix 服务器很有趣。
我们决定将磁盘分成两半——20MB 用于系统和交换空间,20MB 用于文件存储。现在,它需要大约 5MB 的交换空间,那么我该如何将 Linux 系统压缩到 15MB,并且仍然有足够的空间存放新闻、电子邮件和可通过 ftp 获取的文件呢?
多年来,我已经安装了许多 Linux 系统,但我总是简单地使用以太网将我的设置复制到目标计算机上。(我几乎创建了自己的发行版。)但是我的系统需要几天时间才能精简到 15MB。我不得不求助于使用别人的发行版。
在早期,Linux 发行版并不是很花哨。它们给你文件,然后你就只能靠自己了。如果你不是 Unix 专家,你可能会陷入守护进程、配置文件和奇怪程序的泥潭中。但我知道安装程序正在变得越来越好,所以我决定值得一试。
我抓取了最新的 Slackware 发行版并查看了磁盘内容;我可以做到。我不需要任何编程库,我也不需要 X-Windows 或任何花哨的东西。只需要基本的东西。大约 20 分钟后,我拥有了我见过的最小的 Unix 系统!我继续安装了我需要的一切,它占用了 14MB!我拥有我需要的所有二进制文件:新闻阅读器、邮件阅读器和 uucp。下一步是配置一切。
现在我预计有很多东西需要配置。我们有 smail、匿名 ftp 和其他东西,但是 Slackware 系统在设置默认配置文件方面做得很好,以至于大多数东西都可以开箱即用。我 确实 花时间做的是 smail 和 uucp。我设置了 uucp 将东西路由到我们家里的两台 Linux 机器,并配置 smail 使用它。然后我们仔细检查并剥离了任何我们不需要的功能,以使系统更小。
为了支持我们,我们在实验室的网络管理员同意为我们的家用电脑设置 DNS MX 记录,指向 trappen。这将允许发送到我们家用电脑的电子邮件被发送到 trappen,trappen 将处理并假脱机它,并在我们连接时将其转发给我们。
通过 trappen,我们现在可以在家中使用电子邮件了——不仅是我们,而且是任何在我们机器上拥有帐户的人。我的全家都可以访问,他们正在学习使用电子邮件和新闻。(在家存储新闻需要相当多的磁盘空间,但我只有几个组,而且我不保留文章很长时间。)
Trappen 对于它的所有任务来说都有足够的动力,尽管它的交互速度很慢。但是我们有它的控制台,以及办公室里的 Wyse 终端。我们决定最大限度地利用控制台和终端——作为连接到其他更强大的机器的 telnet 终端。我们决定编写一个程序,该程序会询问要 telnet 连接的主机,这将允许 trappen 充当终端服务器。事实证明这很容易,这要归功于 getty_ps 软件包。Getty_ps 非常通用,以至于我们能够设置配置文件,使其不生成登录,而是生成 telnet。我们相应地更改了登录提示,瞧!Trappen 的 VGA 控制台是我们大楼里最快的终端,尤其因为它通过以太网运行。连接到它的串行终端非常方便用来查看电子邮件。
一切都完美运行!我们一周都不用碰 trappen。事实上,当我们有时间时,我们决定添加一些增强功能。我们添加了一个 uucp-ftp 网关。任何人都可以匿名 ftp 并将文件放置在名为 computer 的目录中,trappen 将自动将文件复制到具有该名称的机器上的目录中。
然后我们真的全力以赴了。我们不想在 trappen 上安装整个 X-Windows 环境(它性能不足),但它确实有一张 VGA 卡。我们获得了 X-Windows 服务器程序和所有 X-Windows 字体并将它们复制过来。然后我们使用 -query 选项运行 X-Windows,这使得它成为另一台机器的 X 终端,在本例中是我们实验室中的一台高性能机器。它奏效了!Trappen 没有足够的性能在本地运行 X-Windows 应用程序,但作为图形终端来说还不错。我们最终认为它太慢了,但它确实有效,并且不需要太多磁盘空间。
Trappen 仍然运行良好,在它“诞生”一年多之后。它现在允许我们的家用机器进行 slip 访问。CPU 的性能受到严重限制,并且在交互使用期间,它非常慢,但是通过 trappen 将文件和 telnet 会话传输到其他机器几乎是瞬间完成的。Trappen 现在支持几个用户使用它来访问互联网。
UUCP 几乎完全是防错的,所以当我想在家和工作之间传输文件时,我会 uucp 它。Trappen 不会立即呼出,但机器每隔几个小时连接一次。即使它不能立即连接也没关系;uucp 最终总会成功,我知道当我回到家时,文件会在我的传入目录中等待。
Trent Tuggle 是中佛罗里达大学的工程系学生。他的另一份工作是在仿真与培训研究所编程虚拟现实模拟。在这两份工作之间,他没有任何时间,所以他热衷于水上运动、模型飞机和音乐合成器。他的电子邮件地址是 tuggle@vsl.ist.ucf.edu。