The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: John Gilmore <gnu@toad.com>
To: Clem Cole <clemc@ccc.com>
Cc: TUHS main list <tuhs@minnie.tuhs.org>, simh@groups.io
Subject: Re: [TUHS] 2bsd tarball -> pdtar, with a side of uuslave
Date: Wed, 29 Jul 2020 06:42:45 -0700	[thread overview]
Message-ID: <26260.1596030165@hop.toad.com> (raw)
In-Reply-To: <CAC20D2NRF2CHESt_Virro2Op4mVDH2JCRBN7g5a2CvU1X=kUAw@mail.gmail.com>

Clem Cole <clemc@ccc.com> wrote:
> 'nuf said ... I hope.

Not quite, Clem!

There was another chapter to the "tar wars" after UNIX and after POSIX.

After I left Sun in about 1985, I worked on a project with GNU and the
BSD folks, to find or write freely available implementations of many
popular UNIX commands.  Since we didn't find a free "tar" program, I
wrote one from scratch, based on the SunOS man page and on running the
tar binary from SunOS 3.3.

This was eventually posted to Usenet's mod.sources as "pdtar" on
1986-12-10, as Volume 7 Issue 88.  A July 1987 version went on the Sun
User Group tape.  A later version was posted to comp.sources.unix on
1987-11-29 as Volume 12, issue 68 in 3 parts.  By then, it built and ran
on SunOS, Xenix, Unisoft, Vax 4.2BSD, V7 and USG systems, MSDOS, and
Minix.  And "Utzoonix", Henry Spencer's customized system.

In the process I discovered various quirks in the Unix tar program.  It
null-terminated some of the fixed-length octal fields in the tar headers
and space-terminated others.  I made my code produce bit-for-bit
identical tar files, except for the leftover buffer garbage at the ends
of files and in the last block after the second end-of-file all-zero
header, which I zeroed.

The UNIX tar program was also reading and writing the files in the file
system in 512-byte reads and writes.  Eg when extracting a file from a
tape with the default blocking factor of 20, it would do 20 writes to
the file rather than a single 10k write.  pdtar did better.

Oh, and by the way, the tar format DID use numerical uid and gid fields,
encoded in ascii numerals in octal.  Thus they were both numeric and
ascii!  What it didn't do was put in the NAMES of the user and their
group; that idea came in with POSIX drafts, and went into separate
fields that had been undefined & ignored in UNIX tar.

I put the pdtar code into the public domain, so it could be widely used.
This produced a variety of support headaches.  In particular, people who
used it on MSDOS kept contacting me over the years about bugs or
documentation or not working with certain hardware.  Those ports were
largely distributed as binaries by other people who never bothered to
include nor publish the matching source code.  So I couldn't support the
users who were having trouble, which was frustrating for both them and
me.  This eventually led me to understand more of the value in using the
GNU General Public License.

When the GNU Project later wanted someone else to enhance tar to satisfy
some of the user requirements from the absence of dump(8), like
incremental backups, they asked if I would mind if they put their
improved version under the GPL.  I had no problem with that, and the
pdtar code became the base code for GNU Tar, which (along with the
simple BusyBox tar) seems to have become the main implementation in the
wild today.

	John
	
PS: In that period, I also wrote the first reliable free implementation
of uucp, called gnuucp.  This code was based on "uuslave.c 1.7 08/12/85
12:04:20" which had been posted to the ACGNJ BBS system at +1 201 753
9758.  Original author unknown.  BSD and I went through a legal
interaction with AT&T to verify that the uuslave code had NOT come from
any proprietary UNIX code.  The uuslave code barely limped (and had CP/M
ifdef's), but it did point out the basics of the 'g' protocol.  Once I
got it working on UNIX, I ran it for a few weeks with my friends at
lll-crg in Livermore, CA, then posted it to net.sources on 1987-03-25,
article-id hoptoad.1925.  By this time it had been ported to MSDOS by
Tim Pozar.  Soon it became the backbone of Tim's FIDOnet <-> Usenet
gateway (UFGATE) software, which enabled thousands of (largely teenage)
FIDOnet nodes to join the Usenet and swap email with UNIX machines and
thus with the early Internet.  Many years later, Ian Taylor wrote a
complete free replacement for uucp, called Taylor UUCP, which seems to
be what people were using last time I saw anyone using uucp.  By
coincidence, Ian also later worked with me at Cygnus, the first company
doing commercial support for free software.

A modern web search turns up this about uuslave's BBS:

  http://bbslist.textfiles.com/201/oldschool.html

  "201-753-9758   ACGNJ BBS #2 	(1983-1990)	Kevin Tillbrook 	RBBS

  "I used to run an RBBS system for the Amateur Computer Group of NJ
  (ACGNJ) for a number of years. It was run on a Zenith PC w/20 meg HD
  and later using DesqView for multi-tasking (which was way too slow on
  that hardware). I had a BBS running before that, but this is what I am
  noted for." - Kevin Tillbrook

Does anybody here (from New Jersey perhaps) know where uuslave came
from?  It's always been a mystery to me.

  parent reply	other threads:[~2020-07-29 13:43 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-28 23:03 [TUHS] 2bsd tarball Will Senn
2020-07-29  0:09 ` Warner Losh
2020-07-29  0:19   ` Clem Cole
2020-07-29  0:45   ` Will Senn
2020-07-29  0:46   ` Will Senn
2020-07-29  0:21 ` Clem Cole
2020-07-29  9:50   ` [TUHS] [simh] " Johnny Billquist
2020-07-29 13:52     ` John Cowan
2020-07-29 14:30       ` Johnny Billquist
2020-08-11 23:41       ` Dave Horsfall
     [not found]     ` <5A12E0BB-4FFF-4C3E-B486-D4E852FAA97F@comcast.net>
2020-07-29 14:29       ` Johnny Billquist
2020-08-11 23:55         ` Dave Horsfall
2020-07-29 13:42   ` John Gilmore [this message]
2020-07-29 15:40     ` [TUHS] 2bsd tarball -> pdtar, with a side of uuslave Clem Cole
2020-07-29 19:34       ` Richard Salz
2020-07-29 19:42         ` Warner Losh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=26260.1596030165@hop.toad.com \
    --to=gnu@toad.com \
    --cc=clemc@ccc.com \
    --cc=simh@groups.io \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).