This document does contain things which could be called newsgroup
lists, like the other documents in this series, but unlike those it
also includes considerable text by me, situating the lists and trying
from them to form conclusions about the earliest Usenet newsgroups.
For those who don't want to read in detail this fairly confusing
document, here's a summary:
List contained in a software distribution, circa June 5, 1980:
NET.general, NET.v7bugs, NET.news.
An essay in which I conclude that NET.general was first, that
NET.v7bugs and NET.news were probably created in early to mid-May,
1980, and were second and third, and that the rest of the NET.* groups
probably appeared after June 5.
List contained in an announcement of a renaming, May 12, 1981:
fa.arpa-bboard, fa.info-cpm, fa.sf-lovers, fa.human-nets,
fa.info-terms, fa.info-micro, fa.arms-d, fa.energy, fa.unix-wizards,
fa.teletext, and fa.home-sat.
Appendix: Thirteen posts from 1980.
Joe Bernstein
The following script is part of an A News distribution available at
- after you've obtained a.news.tar.Z and worked the relevant changes
on it, this script is under the filename news.install in the directory
news.
The file a.news.tar is also available at my website,
.
There is a note in the FTP directory at ftp.std.com claiming that the
A News distribution is that provided at the Delaware Usenix. At
several places within the distribution, a date is given, and that date
is invariably in the neighbourhood of June 5, 1980, a date consistent
with comments I've seen in unreliable sources about the Delaware
Usenix.
The relevant lines are rather more than halfway down, following the
comment line that reads "If no .ngfile, make one."
BEGIN QUOTED SCRIPT
if test "$#" != 3
then
echo "usage: $0 newsdir nuser ngroup"
exit 1
fi
NEWSDIR=$1
NEWSUSR=$2
NEWSGRP=$3
: Get name of local system
SYSNAME=`grep sysname /usr/include/whoami.h | sed 's/.*\"\(.*\)\".*/\1/'`
if test "$SYSNAME" = ""
then
echo "$0: Cannot get system name"
exit 1
fi
: Ensure NEWSDIR exists
if test ! -d $NEWSDIR
then
mkdir $NEWSDIR
fi
chmod 755 $NEWSDIR
chown $NEWSUSR $NEWSDIR
chgrp $NEWSGRP $NEWSDIR
: Ensure certain files in NEWSDIR exist
touch $NEWSDIR/.uindex $NEWSDIR/.nindex $NEWSDIR/.history $NEWSDIR/.bitfile
: If no .sys file, make one.
if test ! -f $NEWSDIR/.sys
then
cat > $NEWSDIR/.sys << EOF
$SYSNAME:NET.ALL,to_$SYSNAME
duke:NET.ALL,to_duke
EOF
fi
: If no .seq file, make one.
if test ! -f $NEWSDIR/.seq
then
echo '100' >$NEWSDIR/.seq
fi
: If no .ngfile, make one.
if test ! -f $NEWSDIR/.ngfile
then
cat > $NEWSDIR/.ngfile << EOF
general
NET.general
NET.v7bugs
NET.news
test
to_duke
to_$SYSNAME
EOF
fi
: ensure index files are in most recent first order
sort -t: -rn +1 $NEWSDIR/.nindex -o $NEWSDIR/.nindex
sort -t: -rn +1 $NEWSDIR/.uindex -o $NEWSDIR/.uindex
chmod 644 $NEWSDIR/.[a-z]*
chown $NEWSUSR $NEWSDIR/.[a-z]*
chgrp $NEWSGRP $NEWSDIR/.[a-z]*
if test -d $NEWSDIR/.canned
then
chmod 755 $NEWSDIR/.canned
fi
echo reminder: uux must permit rnews
END QUOTED SCRIPT
The only other evidence I know of for the earliest newsgroups consists
of:
1. There's a list of the three earliest newsgroups which I find in:
1) John Quarterman's , 1990, p. 244; 2) Tim Geller's
article about the conflict sparked by AOL's arrival on Usenet, which
was apparently published in the August 1995 issue of
magazine, but which I saw in his own copy, as submitted rather than as
printed, at ;
3) Lee Bumgarner's Great Renaming FAQ (where the list is credited to
Geller, not Quarterman). I've seen no list of the earliest newsgroups
which disagrees with this one, except for the news.install file
reproduced above. See also the NET.* post in this thread, under
NET.test and NET.news.
2. There is an archive of net.v7bugs offered on CD-ROM by an
organisation working to preserve old versions of Unix. The archive
apparently comes from Henry Spencer, the person who kept the
University of Toronto archive that formed the basis of the defunct
A-News Archive (see below) and is now integrated (for the most part)
into Google's archive. I have no reason to think this CD-ROM contains
additional evidence beyond what's mentioned below, but would welcome
it if I were wrong. (To find this organisation, search on
"net.v7bugs" on Google's *web* search page.)
3. I've seen several surviving posts from 1980, dating back as far as
April 26 of that year. These have been available in two places:
a) The A-News Archive that Bruce Jones offered via first FTP and
then HTTP from communication.ucsd.edu contained a number of posts
preceding the archive's real start date of May 11, 1981.
Specifically, it contained *at least* a post to NET.v7bugs dated May
18, 1980; a post to NET.general dated November 11, 1980; and a post to
NET.news dated May 16, 1980, which may or may not represent that
group's creation. (There were also posts dated January 21, 1981 to
NET.micro, announcing that group's creation, and dated April 7, 1981
to NET.unix-wizards, which had not yet been renamed to
fa.unix-wizards. Any other pre-May 11 posts in the archive would have
been in one of those five groups, and would have been later than the
posts referred to here.) These posts appear to be in Google's
archive, but hidden by the fact that the NET.* names were lowercased
and by incorrect dates; see please my previous post (January 5, 2002)
to alt.fan.dejanews, news.groups, and news.groups.questions,
message-ID , in which
at least some of the NET.v7bugs posts are located. The only other
1980 post I've found so far at Google is the November 11, 1980 post to
NET.general, which is also reproduced below.
b) Bruce Jones also offered an archive of the Usenet.Hist mailing
list he ran beginning in 1990. In that archive, which remains
available in various places, is an e-mail from Gene Spafford dated
October 17, 1990. This is, in turn, a forwarding of an e-mail Gene
Spafford got from Steve Bellovin dated October 26, 1987; and *that*
is, in turn, a forwarding of an e-mail Steve Bellovin got from Thomas
Truscott dated October 26, 1987. Thomas Truscott wrote that Cyrus
Rahman, a Duke physics grad student, had recently sent him old data
from a disk on an old computer that had moved to the physics
department, and enclosed two things from the old data, the second of
which was a small archive of thirteen posts. (See APPENDIX below.)
These posts date between April 26, 1980 and November 11, 1980. The
earliest post in this archive to NET.general dates to April 26, 1980;
there are nine other posts to NET.general. The earliest post in this
archive to NET.v7bugs dates to May 27, 1980; there are two other posts
to NET.v7bugs.
One of the posts to NET.general in the second group is unusually long
(for that era, anyway!), announces a bug in V7, and dates to May 13.
If this wasn't a mispost, then we seem to have a suggestion that the
first newsgroups other than NET.general were created in mid-May, 1980
- May 16 for NET.news, assuming the vanished post was, in fact, about
the group's creation, and anytime from May 14 to May 18 for
NET.v7bugs, based on the dates of relevant posts in both archives.
This sequence of events would accord well with the fact that Usenet
first really took off following the Delaware Usenix (which must have
been after June 5, 1980) - before it really took off, what need was
there for many newsgroups? This sequence of events also accords well
with the flood of posts by Mark Horton to NET.v7bugs which I've found
in the Google archives (see a), above), all dated May 18, 1980 as if
Horton had been saving the posts until there was a newsgroup for them.
But there's no guarantee at all that this is really how things
happened; and it's little use to go ask the people who were there,
when the mailing list archive mentioned under b) provides copious
evidence of uncertain memories.
Mark Horton, besides being a prolific poster to NET.v7bugs, is
generally credited with two major events of 1980-81: the creation of
the ARPAnet-Usenet gateways, and the "lowercasing" of the newsgroup
names (from NET.general to net.general, for example). These are both
relevant to the next "list" of newsgroups.
Message-ID:
Newsgroups: net.general
X-Path: utzoo!duke!mhtsa!eagle!ucbvax!mark
From: ucbvax!mark
Date: Tue May 12 12:39:01 1981
Subject: network name change is in effect
X-Google-Info: Converted from the original A-News header
I have renamed all the arpanet newsgroups from NET.whatever to fa.whatever.
This includes arpa-bboard, info-cpm, sf-lovers, human-nets, info-terms,
info-micro, arms-d, energy, unix-wizards, teletext, and home-sat.
If you are a subscriber to one or more of the above, you should use
netnews -s to change your subscription from, for example NET.human-nets
to fa.human-nets.
If you are a system administrator for netnews and you have not already
fixed your .sys file to know about the new names, you should do so
at once, or risk losing news.
Mark
APPENDIX
The posts in the archive labeled b) above follow. Yes, they're still
available in at least two other places; but with the uncertain status
of the early posts in the A-News Archive, I can't help thinking this
is a case of the more the merrier; and anyway, these help document
some of what I say above.
news.articles
>From jte Sat Apr 26 22:02:50 1980
at-bugs : NET.general
"at" cannot schedule execution on March 1 during leap years.
Fix: />59/s//>=59/
"at" cannot schedule an event during the following year
if requested by month and date.
Fix: Unknown
If the shell script produced by "at" includes the assignment
of exported variables with special characters (e.g. $IFS)
the script can fail.
Fix: A fairly good fix is
/fprintf(file, "%s.n", .ep++);/c
++ix;
fprintf(file, "%.*s'%s'\n", ix-*ep, *ep, ix);
*ep++;
.
A better fix would scan *ep to take care of single
qoute marks in a shell variable.
>From jte Mon Apr 28 23:16:57 1980
ac-bugs : NET.general
"ac" as distributed with V7 has several problems.
1) General terminal names are not supported. All terminals
except the console must be named "ttynn". This causes
serious accounting problems as logins on all other terminals
are mapped into the console.
2) Ac looks for "}" to indicate a new date instead of the
correct "{".
3) "Midnight" (-d option) is not always computed correctly.
4) Diagnostic messages are incomplete.
Duke has rewritten ac and fixed these problems.
The new version is available from "duke!~uucp/duke/cmd/ac.c".
>From swd Sun May 4 20:47:16 1980
look bugs : NET.general
look(1) expects /usr/dict/words to be sorted with -d and -f
options. As distributed (on version 7) the wordlist is
not correctly sorted. As a result, "look ba" yields nothing.
Fix: sort -d -f /usr/dict/words -o /usr/dict/words
>From research!dmr Tue May 13 03:27:25 1980
Floating-point bug in V7 Unix: NET.general
J. W. Stevenson of Vrije Universiteit in Amsterdam has
discovered and diagnosed a most interesting bug in
V7 Unix. The problem is that the floating-point registers and
status are sometimes not saved across memory expansion via
sbreak() or stack growth or (less importantly) forks.
The problem only occurs when a swap is needed to
accomplish the expansion.
What happens is that the swap output IO is begun,
and then the registers are saved when the process
calls swtch() from sleep().
It is possible for the image to be written out before
the saving of the registers.
For reasons I do not fully understand situations can
occur in which the bug manifests itself consistently.
It seems to me that the register-saving should be finished
within a few hundred microseconds at most after initiation of IO
while the actual transfer (with ordinary moving-head disks)
will not begin for several milliseconds at least.
Nevertheless we have demonstrated the bug quite consistently;
by the usual sort of coincidence,
one of our machines began showing floating-point problems
the very same week that Stevenson's letter arrived.
(If the controller prefetches a significant amount of
data or if the disk is very fast then the consistency is not
surprising.)
At any rate, as suggested by Stevenson, the problem can be
fixed by adding the following code
if (u.u_fpsaved == 0) {
savfp(&u.u_fps);
u.u_fpsaved = 1;
}
to the following places in sys/slp.c:
before original line 507, "a2 = malloc(coremap, n);", in newproc();
and, after original line 564, "if(a2 == NULL) {", in expand().
>From vax135!ucbvax!mark Tue May 27 23:39:00 1980
uux bug : NET.v7bugs
A bug in uux prevents the - option from working with binary files.
To fix it, in uux.c, search for "fputs". (It's in an if (pipein) {.)
replace the fgets/fputs loop by
while ((c = getc(stdin)) != EOF)
putc(c, fpd);
and declare c somewhere to be an int. (I put the line
register int c;
right after the if (pipein).)
Fixing this bug will allow the new uusend program, which will be released
shortly, to work, allowing the transfer of binary files across indirect
uucp links.
>From unc!smb Thu May 29 19:44:57 1980
at bug : NET.general
The 'at' command insists on creating the spool file in mode 644, regardless
of your umask setting. Thus one is unable to create confidential requests.
>From swd Thu Jun 26 10:58:16 1980
uucp bug : NET.general
In distributed v7 uucp, if the USERFILE grows
to over 15 lines, uucico will die.
Fix: in chkpth.c chg line 14 from
struct userpath Upt[15];
to
struct userpath Upt[MAXUSERS];
As distributed, MAXUSERS is 20. Chkpth will check
and complain if USERFILE has more lines than MAXUSERS.
>From swd Thu Jul 10 10:42:51 1980
mkconf bug : NET.v7bugs
Some time ago a bug was reported in scanf relating to
scanning the format string "%d%c". (This bug is fixed
in the duke version of stdio.)
It seems that mkconf.c REQUIRES this bug in order to work.
Thus we suggest the following fix to mkconf.c:
diff mkconf.c.good mkconf.c.original
107c107
< " trap; br7+10. / 11/70 parity\n",
> " trap; br7+7. / 11/70 parity\n",
739,740d738
< if (n == 0)
< n = sscanf(line, "%s%s%ld", keyw, dev, &num);
>From sid!cf Thu Jul 10 22:33:51 1980
Unix alive on P-E 3240: NET.general
Wollongong Unix has just been installed on a Perkin Elmer 3240
at the University of Melbourne. It is alive and well running
two users. Those tired of VAX delivery times or Unibus Adapter
troubles can take heart.
More info later.
>From vax135!ucbvax!cory:optvax:horton Fri Jul 11 01:11:04 1980
ucbopt lives : NET.general
The optvax at UCB, on the Berknet, has been added to the news network.
This vax is a private vax with a few research projects going on on it.
It is connected off the ucbcory machine, corresponding to the
physical configuration of the Berknet.
Mark Horton
>From trt Wed Aug 13 09:48:33 1980
col : NET.v7bugs
The buffer-flush bug in col(1) that was mentioned in previous news
is due to using an automatic (local) variable for buffering stdout:
char fbuff[BUFSIZ];
should be changed to
static char fbuff[BUFSIZ];
(exit() also works since main() will not return before flushing.)
Col(1) is just one of several V7 programs with this flaw.
In the Duke version of stdio one can bypass the problem with
setbuf(stdout, SYSBUF);
where SYSBUF is a flag indicating buffering is desired.
>From vax135!ucbvax!cory:optvax:jimbo Mon Sep 29 20:40:00 1980
Spice & Splice mail aliases: NET.general
We are creating mail aliases for distribution of occasional messages of
interest and reporting of bugs for both the Spice and Splice circuit
simulation programs. This is not really for user consulting but to
make it easier to report bugs or find out what has been fixed already.
Interested parties who would like to put a name on one or both should
send a note to:
esvax.spice@berkeley (over ARPA-Net)
ucbopt!spice (over "uucp")
or
esvax.splice@berkeley (over ARPA-Net)
ucbopt!splice (over "uucp")
These aliases should be used for all incoming messages.
Jim
>From decvax!shannon Tue Nov 11 17:26:58 1980
DEC on Usenet : NET.general
DEC now has a Unix system on the Usenet uucp network.
Anyone with questions about or problems with DEC hardware
and it's relationship (interaction) with Unix, feel free
to contact us. We are members of the Telecommunications
Industry Group (TIG or Telco) of DEC and are actively
involved with Unix on current and new DEC hardware.
Currently, we are routing all Usenet traffic through duke.
If necessary or desirable, we could poll other systems as
well. For now, mail duke!decvax!person. Our network
names, etc. are below, feel free to contact us.
decvax!shannon - Bill Shannon (formerly of Case Western Reserve Univ.)
decvax!aps - Armando Stettner