13. Usenet 软件:历史回顾

本节包含摘自一份著名的 Usenet 定期发布文档的节选,该文档最后一次更改是在 1998 年 2 月。我们的这份旧文档副本来自

ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/news/software/b/Usenet_Software:_History_and_Sources

我们认为在其他地方也能找到这份文档的其他副本。FTP 服务器上的物理文件最后一次修改时间似乎是 1999 年 12 月 29 日。存档文件的开头几行提供了有关本文档的来源及其作者的信息

Date: Tue, 28 Dec 1999 09:00:19 GMT
Supersedes: <FMMECL.58s@tac.nyc.ny.us>
Expires: Fri, 28 Jan 2000 09:00:19 GMT
Message-ID: <FnG10J.HAo@tac.nyc.ny.us>
From: netannounce@deshaw.com (Mark Moraes)
Subject: Usenet Software: History and Sources
Newsgroups: news.admin.misc,news.announce.newusers,news.software.readers,news.software.b,news.answers
Followup-To: news.newusers.questions
Approved: netannounce@deshaw.com (Mark Moraes)

Archive-name: usenet/software/part1
Original-from: spaf@cs.purdue.edu (Gene Spafford)
Comment: edited until 5/93 by spaf@cs.purdue.edu (Gene Spafford)
Last-change: 9 Feb 1998 by netannounce@deshaw.com (Mark Moraes)
Changes-posted-to: news.admin.misc,news.misc,news.software.readers,news.software.b,news.answers

我们从九十年代初开始就一直在news.announce.newusers新闻组中看到这份文档作为定期发布内容,它一直是我们在 Usenet 服务器软件历史方面的最终参考资料。我们在下面重现了摘录,保留了讨论服务器软件的部分,并删除了有关客户端软件、新闻阅读器、非 Unix 操作系统软件等等的讨论。所有引用的部分都未经编辑地重现,只是将 FTP 文件路径更改为现代 URL 格式。我们以单独的段落添加了我们强调的评论。我们认为,对于任何对 Usenet 服务器软件感兴趣的人来说,这里捕获的信息都是必读的。

如果有人能指出我们这份文档的更新版本,以防它仍在维护,我们将很乐意参考该版本而不是这个版本,尽管我们怀疑读者不会因为四年的差距而受到影响;无论如何,下面重现的大部分信息都是历史性的。

13.1. 引用的摘录

目前,Usenet 阅读器使用许多软件包和程序与新闻进行交互。本文提到了重要的软件包和程序及其历史,提供了您可以在哪里查找更多信息的指针,并在最后给出了一些关于“外国”和“过时”软件的特别说明。最后是一个可以从中获取 Usenet 软件当前版本的站点列表。

...

13.1.1. 历史

Usenet 诞生于 1979 年末,在发布带有 UUCP 的 V7 Unix 后不久。北卡罗来纳州杜克大学的两名研究生 Tom Truscott 和 Jim Ellis 想到将计算机连接在一起,以便与 Unix 社区交换信息。北卡罗来纳大学的研究生 Steve Bellovin 使用 shell 脚本编写了新闻软件的第一个版本,并将其安装在最初的两个站点上uncduke。1980 年初,该网络由这两个站点和phs(杜克大学的另一台机器)组成,并在 1 月的 Usenix 会议上进行了描述。Steve Bellovin 后来将脚本重写为 C 程序,但它们从未在uncduke之外发布。此后不久,Steve Daniel 用 C 语言完成了另一个实现,用于公开发行。Tom Truscott 进行了进一步的修改,这成为了“A”新闻发布版本。

1981 年,在加州大学伯克利分校,研究生 Mark Horton 和高中生 Matt Glickman 重写了新闻软件,以增加功能并应对不断增长的新闻量——“A”新闻最初仅用于每个组每天几篇文章。这次重写是“B”新闻版本。第一个公开发行版本是 1982 年的 2.1 版本;1.* 版本都是 beta 测试版。随着网络的发展,新闻软件得到了扩展和修改。Mark 主要维护和发布的最后一个版本是 2.10.1。

1984 年,Rick Adams 在地震研究中心接管了 B 新闻软件的维护和增强的协调工作,发布了 2.10.2 版本。到那时,不断增长的新闻量已成为一个令人担忧的问题,并且在 2.10.2 版本中,软件中添加了审核组的机制。审核组的灵感来自 ARPA 邮件列表和其他公告板系统的经验。1986 年末,发布了 B 新闻的 2.11 版本,其中包括许多更改,以支持新闻组的新命名结构、增强的批处理和压缩、增强的ihave/sendme控制消息和其他功能。

B 新闻的最终版本是 2.11,补丁级别 19。包括 Rick Adams 在内的许多人已宣布 B 新闻“已死”,并且不太可能进一步升级;大多数 Usenet 站点都在使用 C 新闻或 INN(请参阅下一段)。

1986 年 3 月,发布了一个软件包,使用网络新闻传输协议 (NNTP)(如 RFC 977 中指定)实现新闻传输、发布和阅读。该协议允许主机通过 TCP/IP 连接而不是使用传统的 UUCP 交换文章。它还允许用户从无法或选择不安装 Usenet 新闻软件的机器上读取和发布新闻(使用修改后的新闻用户代理)。读取和发布是通过 TCP/IP 消息完成的,发送到运行 Usenet 软件的服务器主机。拥有许多工作站的站点(如 Sun 和 SGI 以及 HP 产品)发现这是一种方便的方式,允许工作站用户阅读新闻,而无需在每个系统上存储文章。许多同时在 Internet 上的 Usenet 主机都使用 NNTP 交换新闻文章,因为 NNTP 的负载影响远低于 UUCP(并且 NNTP 可确保更快的传播速度)。

我们的评论:关于 UUCP 和 NNTP 相对负载的这种说法不再适用于更快的机器和网络,以及大幅增加的流量。如果流量可以得到限制,那么今天的台式计算机,更不用说服务器,都可以轻松处理 NNTP 和 UUCP 负载。这部分是由于 Taylor UUCP 中体现的 UUCP 性能增强,部分是由于处理器速度大大提高。

NNTP 源于 1984-1985 年 Brian Kantor 在加州大学圣地亚哥分校和 Phil Lapsley 在加州大学伯克利分校的独立工作。主要开发工作是在加州大学伯克利分校由 Phil Lapsley 在 Erik Fair、Steven Grady 和 Mike Meyer 等人的帮助下完成的。NNTP 软件包(现在称为参考实现)在 4.3BSD 发行磁带上分发(尽管那是 1.2a 版本且已过时),也可以通过匿名 FTP 在许多主要主机上获得。当前版本是 1.5.12.2。它包括 NOV(新闻概述——见下文)支持,并在各种系统上运行。它可以从ftp.academ.com:/pub/nntp1.5/nntp.1.5.12.2.tar.gz获得。对于那些可以访问 Internet 上的万维网的人,WWW 页面http://www.academ.com/academ/nntp.html包含有关 NNTP 的描述和新闻。另一个变体,称为 nntp-t5,实现了 INN 提供的许多扩展(包括 NOV 支持)。它可以从ftp.uu.net:/networking/news/nntp/nntp-t5.tar.gz.

一个广泛使用的新闻版本,称为 C 新闻,由 Geoff Collyer 和 Henry Spencer 在多伦多大学开发。此版本是对新闻最低级别的重写,旨在提高文章处理速度,减少文章过期处理,并通过更好的锁定等来提高新闻系统的可靠性。该软件包于 1987 年秋季发布到网络。有关更多信息,请参阅“新闻不必慢”一文,该文章发表在 1987 年冬季 Usenix 技术会议论文集中。该论文也可以从ftp://ftp.cs.toronto.edu/doc/programming/c-news.*,获得,建议所有新闻软件程序员阅读。C 新闻的最新版本是 1994 年 9 月的“清理版本”。C 新闻可以通过匿名 ftp 从其官方存档站点获得,ftp.cs.toronto.edu:pub/c-news/c-news.tar.Z.

我们的评论:据我们所知,C 新闻不再由任何人维护,除了我们自己。但是,在修复了源代码中剩余的错误后,我们发现没有必要进行进一步的维护。Brian Kantor 和 Phil Lapsley 的 NNTPd 也处于相同的状态,但我们正在努力增强源代码的访问控制和其他功能。

另一个 Usenet 系统,称为 InterNetNews 或 INN,由 Rich Salz 编写(rsalz@uunet.uu.net)。INN 旨在在具有套接字接口的 Unix 主机上运行。它针对大多数流量使用 NNTP 的大型主机进行了优化,但它确实提供完整的 UUCP 支持。INN 非常快,并且由于它集成了 NNTP,许多人发现更容易仅管理一个软件包。该软件包于 1992 年 8 月 20 日公开发布。有关更多信息,请参阅“InterNetNews:Internet 站点的 Usenet 传输”一文,该文章发表在 1992 年 6 月的 Usenix 技术会议论文集中。INN 可以从许多地方获得,包括 4.4BSD 磁带;其官方存档站点是ftp.uu.net在目录/networking/news/nntp/inn。Rich 的最后一个官方版本是 1993 年 12 月的 1.4sec。

我们的评论:Rich Salz 关于 INN 的原始论文,他在其中提出了另一种 Usenet 服务器软件的设计,对于对 Usenet 服务器软件感兴趣的读者来说是必读的。C 新闻作者的论文也是如此,前面已经引用过。Rich Salz 在论文中提出的关于 C 新闻的大多数问题在当时非常重要。今天,随着当前版本的 NNTPd 以及消息 ID 守护程序和 NOV 的加入,这些问题不再重要,而选择 C 新闻 + NNTPd 还是 INN 现在更多地基于源代码的维护水平、熟悉程度和个人偏好,而不是核心设计因素。

1995 年 6 月,David Barr 开始了一系列基于 1.4sec 的 INN 非官方版本发布,集成了各种错误修复、增强功能和安全补丁。他的最后一个版本是 1.4unoff4,可以在ftp://ftp.math.psu.edu:/pub/INN找到。该站点也是 INN 和其他新闻管理工具的贡献软件的所在地。

INN 现在由 Internet 软件联盟维护(inn@isc.org)。INN 的官方主页现在是http://www.isc.org/isc/,最新版本 (1.7.2) 可以从ftp://ftp.isc.org/isc/inn/.

我们的评论:上面 INN 主页的 URL 可能不正确。请尝试 http://www.isc.org/products/INN/。

在 1992 年末,Geoff Collyer 实现了 NOV(新闻概述):一个数据库,用于存储所有到达的新闻文章的重要标头。这旨在供新闻阅读器的实现者使用,通过对文章标头进行排序和“线程化”来提供快速的文章呈现。(在 NOV 之前,新闻阅读器如trn, tinnn都带有自己的守护程序和数据库,这些守护程序和数据库使用了大量的系统资源)。C 新闻、INN 和 NNTP-t5 完全支持 NOV。大多数现代新闻阅读器都使用 NOV 来获取有关其线程和文章菜单呈现的信息;新闻阅读器使用 NOV 非常容易,因为 NOV 带有示例客户端线程代码。

...

有关 MSDOS、Windows 和 OS/2 系统的许多其他邮件和新闻阅读器的详细信息,请参见发布到comp.os.msdos.mail-news.

  <ftp://rtfm.mit.edu/pub/usenet/comp.os.msdos.mail-news/intro>
  <ftp://rtfm.mit.edu/pub/usenet/comp.os.msdos.mail-news/software>