Subject: USENET Software: History and Sources
From: [email-masked] (Gene Spafford)
Date: 25 Jul 91 23:15:56 GMT
Newsgroups: news.admin,news.announce.newusers,news.software.readers

Original from: spaf@purdue (Gene Spafford)
[Most recent change: 6 Jun 1991 by [email-masked] (Paul Eggert)]

Currently, Usenet readers interact with the news using a number of
software packages and programs.  This article mentions the important
ones and a little of their history, gives pointers where you can look
for more information and ends with some special notes about "foreign"
and "obsolete" software.  At the very end is a list of sites from which
current versions of the Usenet software may be obtained.

History
-------
Usenet came into being in late 1979, shortly after the release of V7
Unix with UUCP.  Two Duke University grad students in North Carolina,
Tom Truscott and Jim Ellis, thought of hooking computers together to
exchange information with the Unix community.  Steve Bellovin, a grad
student at the University of North Carolina, put together the first
version of the news software using shell scripts and installed it on
the first two sites: "unc" and "duke." At the beginning of 1980 the
network consisted of those two sites and "phs" (another machine at
Duke), and was described at the January Usenix conference.  Steve
Bellovin later rewrote the scripts into C programs, but they were never
released beyond "unc" and "duke." Shortly thereafter, Steve Daniel did
another implementation in C for public distribution.  Tom Truscott made
further modifications, and this became the "A" news release.

In 1981 at U. C. Berkeley, grad student Mark Horton and high school
student Matt Glickman rewrote the news software to add functionality
and to cope with the ever increasing volume of news -- "A" News was
intended for only a few articles per group per day.  This rewrite was
the "B" News version.  The first public release was version 2.1 in
1982; the 1.* versions were all beta test.  As the net grew, the news
software was expanded and modified.  The last version maintained and
released primarily by Mark was 2.10.1.

Rick Adams, at the Center for Seismic Studies, took over coordination
of the maintenance and enhancement of the B News software with the
2.10.2 release in 1984.  By this time, the increasing volume of news
was becoming a concern, and the mechanism for moderated groups was
added to the software at 2.10.2.  Moderated groups were inspired by
ARPA mailing lists and experience with other bulletin board systems.
In late 1986, version 2.11 of B News was released, including a number
of changes to support a new naming structure for newsgroups, enhanced
batching and compression, enhanced ihave/sendme control messages, and
other features.

The current release of B News is 2.11, patchlevel 19.  Article format
is specified in RFC 1036 (see below).

A new version of news, becoming known as C News, has been developed at
the University of Toronto by Geoff Collyer and Henry Spencer.  This
version is a rewrite of the lowest levels of news to increase article
processing speed, decrease article expiration processing and improve
the reliability of the news system through better locking, etc.  The
package was released to the net in the autumn of 1987.  For more
information, see the paper "News Need Not Be Slow," published in The
Winter 1987 Usenix Technical Conference proceedings.  The current
version is labeled 24-Mar-1991.

ANU-NEWS is news package written by Geoff Huston of Australia for VMS
systems.  ANU-NEWS is complete news system that allows reading,
posting, direct replies, moderated newsgroups, etc.  in a fashion
closely related to regular news.  The implementation includes the RFC
1036 news propagation algorithms and integrated use of the NNTP
protocols (see below) to support remote news servers, implemented as a
VAX/VMS Decnet object.  An RFC 977 server implemented as a Decnet
object is also included.  The ANU-NEWS interface is similar to
standard DEC screen oriented systems.  The license for the software is
free, and there are no restrictions on the re-distribution.  For more
info, contact [email-masked] (Geoff Huston).  ANU-NEWS is
available for FTP from kuhub.cc.ukans.edu.  Contact
[email-masked] for more info.

A port of C News for the Commodore Amiga under AmigaDOS (NOT Unix), is
available.  The port was done by Frank J. Edwards <[email-masked]>,
and available from Larry Rosenman <[email-masked]>.  Also,
Matt Dillon <[email-masked]>, has greatly improved the
UUCP clone for AmigaDOS, currently V1.08D, also available for
Rosenman.  The package also includes a newsreader very loosely like
the real rn.

Several popular screen-oriented news reading interfaces have been
developed in the last few years to replace the traditional "readnews"
interface.  The first of these was "vnews" and it was written by
Kenneth Almquist.  "vnews" provides a "readnews"-like command
interface, but displays articles using direct screen positioning.  It
appears to have been inspired, to some extent, by the "notes" system
(described below).  "vnews" is currently distributed with the standard
2.11 news source.

A second, more versatile interface, "rn", was developed by Larry Wall
(the author of Perl) and released in 1984.  This interface also uses
full-screen display with direct positioning, but it includes many
other useful features and is very popular with many regular net
readers.  The interface includes reading, discarding, and/or
processing of articles based on user-definable patterns, and the
ability of the user to develop customized macros for display and
keyboard interaction.  "rn" is currently at release 4.3, patchlevel
54, with a major re-release under development by "rn"'s current
maintainer, Stan Barber of Academic Consulting Services; release 4.4
is expected in July 1991.  "rn" is not provided with the standard news
software release, but is very widely available due to its popularity.

A variant of "rn" is "trn" by Wayne Davison. Trn adds the ability to
follow "threads of discussions" in newsgroups; its latest version
1.0.3 is based on rn 4.3.54. It uses a Reference-line database to
allow the user to take advantage of the "discussion tree" formed by an
article and its replies.  This results in a true reply-ordered reading
of the articles, complete with a small ascii representation of the
current article's position in the discussion tree. Trn can be obtained
from caesar.cs.montana.edu in the /pub/trn directory, from uunet in
the news subdirectory, and from many other archive servers world-wide.

xrn is an X11-based interface to NNTP that was written by Rick
Spickelmier and Ellen Sentovich (UC Berkeley).  The current version is
6.15.  xrn supports many features, including sorting by subject,
user-settable key bindings, graceful handling of NNTP server crashes,
and many of the features of rn (including KILL files and key bindings
similar to rn).  xrn is actively supported by the authors with bug
fixing and feature addition support from many of the users.  xrn can
be retrieved from most of the popular FTP sites (gatekeeper.dec.com,
uunet.uu.net, expo.lcs.mit.edu) and is on the X11R4 distribution from
MIT (in the contrib section).

There are two popular macro packages named "GNUS" and "Gnews" that can
be used with the GNU Emacs text editor.  These allow reading,
replying, and posting interaction with the news from inside the Emacs
text editor.  Client code exists to get the articles using NNTP rather
than from a local disk.  Copies can be found on most archive sites
that carry the GNU archives.

"nn" is yet another reader interface, developed by Kim F. Storm of
Texas Instruments A/S, Denmark, and released in 1989.  nn differs from
the traditional readnews and vnews by presenting a menu of article
subject and sender-name lines, allowing you to preselect articles to
read.  nn is also a very fast newsreader, as it keeps a database of
article headers on-line.  (I.e. it trades space for time.  A good rule
of thumb is that the nn database size is 5%-10% of your news spool.
So up to 110% of your news spool is the amount of space news and the
nn database will take.)  The current version of nn is 6.4.16.  nn can
be obtained via anonymous FTP from dkuug.dk, uop.uop.edu,
mthvax.cs.miami.edu or various other sites; European sites should
request the sources from their nearest backbone site.  

"notes" is a software package popular at some sites.  It uses a
different internal organization of articles, and a different
interchange format than that of the standard Usenet software.  It was
inspired by the notesfiles available in the PLATO system and was
developed independently from the Usenet news.  Eventually, the "notes"
network and Usenet were joined via gateways doing (sometimes
imperfect) protocol translation.  The interface for "notes" is similar
to "rn" but implements different features, many of which are dictated
by its internal organization.  "notes" was written in 1980-1981 by Ray
Essick and Rob Kolstad, (then) grad students at the University of
Illinois at Urbana-Champaign.  The first public release of "notes" was
at the January 1982 Usenix conference.  The current release of notes
is version 1.7.

In March 1986 a package was released implementing news transmission,
posting, and reading using the Network News Transfer Protocol (NNTP)
(as specified in RFC 977).  This protocol allows hosts to exchange
articles via TCP/IP connections rather than using the traditional
uucp.  It also permits users to read and post news (using a modified
version of "rn" or other user agents) from machines which cannot or
choose not to install the USENET news software.  Reading and posting
are done using TCP/IP messages to a server host which does run the
USENET software.  Sites which have many workstations like the Sun and
Apollo products find this a convenient way to allow workstation users
to read news without having to store articles on each system.  Many of
the Usenet hosts that are also on the Internet exchange news articles
using NNTP because the load impact of NNTP is much lower than uucp
(and NNTP ensures much faster propagation).

NNTP grew out of independent work in 1984-1985 by Brian Kantor at U.
C.  San Diego and Phil Lapsley at U. C. Berkeley.  It is now in
release 1.5.11 dated 11 february 1991, with the next planned release
at 1.6.  NNTP includes support for System V UNIX with Excelan Ethernet
cards and DECNET under Ultrix.  NNTP was developed at U. C. Berkeley
by Phil Lapsley with help from Erik Fair, Steven Grady, and Mike
Meyer, among others.  The NNTP package is distributed on the 4.3BSD
release tape (although that is version 1.2a and out-of-date) and is
also available from the various authors, many major hosts, and by
anonymous FTP from lib.tmc.edu, mthvax.cs.miami.edu and uunet.uu.net.

Reader NNTP clients for VMS are also available, including VMS/VNEWS
(current release 1.3-4.1) and an upcoming reader only version of
ANU-NEWS.  VMS/VNEWS is available from [email-masked].  Although the
current release of ANU-NEWS is usable as a reader it can be difficult
when used with a UNIX server.

An NNTP newsreader for Macintoshs is available called HyperNews.  It
is implemented as a HyperCard stack and depends on MacTCP.  It is
available from many Mac archives, including apple.com and
sumex-aim.stanford.edu

There is also an NNTP-based netnews reader for Symbolics Lisp Machines
(under Genera 7) available for anonymous FTP from ucbvax.berkeley.edu
[128.32.133.1] in pub/nntp-clients/lispm written by Ian Connolly
<[email-masked]> and maintained by Richard Welty
<[email-masked]>.  In addition, another NNTP-based news
browser is available running under Genera 7 and Genera 8.  It provides
mouse driven hierarchic browsing of newsgroups and articles, with
support for X11 servers on remote machines.  It is available for
anonymous FTP on flash.bellcore.com [128.96.32.20] in the directory
pub/lispm/news-reader/.  It is written and maintained by Peter
Clitherow <[email-masked]>

A TOPS-20 reader was developed by Dave Edwards of SRI
<[email-masked]>, but current availability is unknown.  An NNTP reader
suite for PC's running MS-DOS and having Excelan boards is available
for ftp from ames.arc.nasa.gov; get the pcrrn files.  There are two
MS-DOS news readers that can be obtained from bcm.tmc.edu in the "nfs"
directory.  They both require PC-NFS (from Sun) to work.  They will
both work under PC/TCP from FTP Software early this year.  Source will
be provided at that time.

At least one IBM VM/SP (CMS) version of the Usenet software is
available.  It is known as PSU NetNews, and it is maintained by Linda
Littleton ([email-masked]/psuvm.psu.edu).  Version 2.4 of the
software is available from LISTSERV@PSUVM.  PSU NetNews supports only
3270 terminals, and uses XEDIT as its screen driver.  Most major VM
sites appear to use this package.  NetNews supports locally-stored
news, not NNTP reading.

There is NNTP support for PSU NetNews for bulk news receipt: NNTPXFER
will poll another site for news, and NNTPRCVR will receive news sent
from a Unix NNTPXMIT process.  Either program sends the news articles
to NetNews for processing.  Contact Andy Hooper ([email-masked]
or qucdn.queensu.ca) for more information, or obtain them from
listserv@qucdn in PUBLIC FILELIST.  These programs are provided with
source, and require IBM's FAL TCP/IP and Pascal.

There are at least two NNTP news-readers for VM.  One requires IBM's
ISPF product.  Contact Satish Movva ([email-masked]) for
information.  The second uses XEDIT as its screen manager.  Contact
Paul Campbell ([email-masked]) for information.  Both programs
require IBM's FAL TCP/IP and Pascal.

Special note on "notes" and pre-2.11 news
-----------------------------------------
Users of these systems may note problems in their interactions with the
Usenet.  In particular, postings may be made by "notes" users to
moderated groups but they will not usually propagate throughout the
entire Usenet.  The same may happen to users of old B news software.

Users of "notes" or old B news software wishing to post to moderated
groups should either mail their submissions to the moderator, as
listed in the monthly posting of "List of Moderators" in the group
"news.lists", or else they should post from a system running
up-to-date B news software (i.e., 2.11).  "notes" users may obtain
some patches from the comp.sources.unix archives which enable recent
versions of "notes" to interact with moderated groups properly.

Users of old B news and "notes" are also not able to take advantage of
some other current B news features, such as the "checkgroups" message.
"notes" continues to be a "foreign" system, and B news versions before
2.10.2 are considered "obsolete."  The various maintainers of the
Usenet software have never expressed any commitment to maintain
backwards compatibility with "foreign" or obsolete news systems and
are unlikely to do so; it is the responsibility of the users to
maintain compatibility of such software if they wish to continue to
interact with the Usenet.

Software versions & availability
--------------------------------
You can obtain the version number of your news software by issuing the
"v" command in either "vnews" or "readnews."  The "rn" version is
obtainable by typing the "v" command to the top level prompt.
Type "V" to see the version number of "nn".

Current software is obtainable from almost any major Usenet site.
Source to the 'rn' newsreader program is also widely available.

The following sites have sources to the current news software
available for anyone needing a copy:

		Site		Contact
		----		-------
		munnari		[email-masked]
		osu-cis		[email-masked]
		philabs		[email-masked]
		pyramid		[email-masked]
		rutgers		[email-masked]
		tektronix	[email-masked]
		watmath		[email-masked]

Sources for news 2.11, C News, "rn", and "trn" are also available in
the comp.sources.unix archives.  European sites should request the
sources from their nearest Eunet backbone site.

Standards
---------
News programs communicate with each other according to standard protocols,
some of which are described by RFCs.  An RFC is a Request For Comment, a
de facto standard in the Internet Community.  It is a form of published
software standard, done through the Network Information Center (NIC) at SRI.
Copies of RFCs are often posted to the net and obtainable from archive sites.
Current news-related RFCs include the following:

    RFC 822 specifies the format of messages; RFC 1036 uses this.
    RFC 977 specifies NNTP, the Network News Transfer Protocol.
    RFC 1036 specifies the format of Usenet articles.
    RFC 1123 amends RFC 822.
    RFC 1153 specifies the digest format some moderated groups use.

Newsgroups
----------

The following newsgroups cover issues discussed in this article, and can
be consulted for recent developments.

gnu.emacs.gnews		News reading under GNU Emacs using Weemba's Gnews.
gnu.emacs.gnus		News reading under GNU Emacs using GNUS (in English).
news.software.anu-news	VMS B-news software from Australian National Univ.
news.software.b		Discussion about B-news-compatible software.
news.software.nn	Discussion about the "nn" news reader package.
news.software.notes	Notesfile software from the Univ. of Illinois.
news.software.readers	General discussion about news reading software.

Acknowledgements
----------------
The preparation of this article (and Usenet itself!) was greatly
enhanced by the contributions and assistance of the following persons:
Steve Bellovin, Ray Essick, Mark Horton, Brian Kantor, Phil Lapsley,
Bob Page, Tom Truscott, and Larry Wall.  Thanks, folks.

-- 
Gene Spafford
NSF/Purdue/U of Florida  Software Engineering Research Center,
Dept. of Computer Sciences, Purdue University, W. Lafayette IN 47907-1398
Internet:  [email-masked]	phone:  (317) 494-7825