网络新闻的想法诞生于 1979 年,当时两位研究生 Tom Truscott 和 Jim Ellis 想到使用 UUCP 连接机器,以便在 Unix 用户之间进行信息交换。他们在北卡罗来纳州建立了一个由三台机器组成的小型网络。
最初,流量由许多 shell 脚本处理(后来用 C 语言重写),但它们从未公开发布。它们很快被“A News”取代,“A News”是新闻软件的第一个公开发行版本。
A News 的设计目的不是为了处理每个组每天超过几篇文章的情况。当数量持续增长时,Mark Horton 和 Matt Glickman 对其进行了重写,他们称之为“B”版本(又名 B News)。B News 的第一个公开发行版本是 1982 年的 2.1 版本。它不断扩展,并添加了几个新功能。其当前版本为 B News 2.11。它正在慢慢过时;其最后一位官方维护者已转向 INN。
Geoff Collyer 和 Henry Spencer 重写了 B News,并在 1987 年发布了它;这就是“C”版本,即 C News。自发布以来,C News 出现了很多补丁,其中最突出的是 C News 性能版本。在承载大量组的站点上,频繁调用 relaynews(负责将传入的文章分发到其他主机)所涉及的开销非常大。性能版本为 relaynews 添加了一个选项,使其可以在 守护进程模式下运行,程序通过该模式将自身置于后台。性能版本是当前大多数 Linux 发行版中包含的 C News 版本。我们将在 第 21 章中详细描述 C News。
所有直到 C 版本的新闻发布版本主要针对 UUCP 网络,尽管它们也可以在其他环境中使用。在 TCP/IP 或 DECNet 等网络上高效地传输新闻需要一种新的方案。因此,在 1986 年,引入了 网络新闻传输协议 (NNTP)。它基于网络连接,并指定了许多命令来交互式地传输和检索文章。
网络上提供了许多基于 NNTP 的应用程序。其中之一是由 Brian Barber 和 Phil Lapsley 开发的 nntpd 软件包,您可以使用它为本地网络内的多台主机提供新闻阅读服务。nntpd 的设计目的是补充新闻软件包(例如 B News 或 C News),为它们提供 NNTP 功能。如果您想将 NNTP 与 C News 服务器一起使用,则应阅读 第 22 章,其中介绍了如何配置 nntpd 守护进程并将其与 C News 一起运行。
支持 NNTP 的替代软件包是 INN,或 Internet News(互联网新闻)。它不仅仅是一个前端,而是一个独立的新闻系统。它包含一个复杂的 News relay 守护进程,可以高效地维护多个并发的 NNTP 链接,因此是许多 Internet 站点的首选新闻服务器。我们将在 第 23 章中详细讨论它。