Here's the next installment in our history of Free and Open Source by Dr. Peter H. Salus. This is the chapter Peter wished to rewrite after having an opportunity to interview Andrew Tanenbaum at USENIX recently.
Earlier chapters for those who missed them:
*******************************
The Daemon, the Gnu and the Penguin
by Peter H. Salus
Chapter 6. 1979
In Chapter 3, UNIX V6, John Lions, and the ports of
UNIX to the Interdata 7 and the Interdata 8 were
mentioned. We're about to move on to V7. But first,
a note about names and dates.
Names. By and large, Unix users refer to
"Sixth Edition" and "V6" interchangeably. At Bell
Labs, there was a continually changing version of
Unix running. Only when Doug McIlroy caused the
first "UNIX PROGRAMMER'S MANUAL" to be written, did
there appear to be a fixed form. So, the manuals
were listed by "Edition," and the system referred
to was the "Version."
Dates. Every AT&T manual carried a date.
This is the set.
- First Edition - November 3, 1971
- Second Edition - June 12, 1972
- Third Edition - February 1973
- Fourth Edition - November 1973
- Fifth Edition - June 1974
- Sixth Edition - May 1975
- Seventh Edition - January 1979
- Eighth Edition - February 1985
- Ninth Edition - September 1986
- Tenth Edition - October 1989
V7. The wonder of V6 was that it was under 10,000 lines
of code. (But it had no full-screen editor, no
windowing system, etc.) V7 was much larger. And
it contained much more.
V7 accommodated large filesystems; it did not restrict the number
of user accounts; it had improved reliability. Steve Johnson
referred to V7 as "the first portable Unix. It also had a large
number of new commands. Among these were:
COMMANDS:
at, awk, calendar, cb, cd, cpio, cu, deroff, expr, f77, find,
lex, lint, m4, make, refer, sed, tail, tar, touch, uucp, uux
SYSTEM CALLS: ioctl
SUBROUTINES: malloc, stdio, string
GAMES: backgammon
awk (=Aho-Weinberger-Kernighan; a pattern scanning and processing
language; gawk [GNU AWK] is the most employed version), lint
(Johnson, a C program verifier), make (Feldman, a utility to
simplify the maintenance of other programs), and uucp (Lesk)
would have been enough, but there was much more. The V7 manual
had grown to over 400 pages, with two 400-page supplementary
volumes. V7 contained a full Kernighan-Ritchie C compiler; a
far more sophisticated shell (sh), the Bourne shell; Dick
Haight's find, cpio and expr; and a large number of include files.
Dated "January 1979," the title page of the Seventh Edition
UNIX PROGRAMMER'S MANUAL bore neither Dennis' nor Ken's
name. It was headed: UNIXTM TIME-SHARING SYSTEM.
Along with all this, V7 came with a major drawback: its
performance was poorer than most V6 systems, especially those
that had been "tuned." The users went to work.
Bill Joy (at Berkeley) changed the size of the data blocks on
the VAX 11/780. (Jeff Schriebman ported that to the PDP-11/70
in April 1980, having gone to UniSoft from Berkeley.) In December
1979, Ed Gould moved the buffers out of kernel address space.
Joy changed the stdio library on the VAX and Tom Ferrin (at UCSF)
ported those changes to the PDP-11. Tom London (in Holmdel, NJ)
improved the movement of output characters from user space to
kernel space. John Lions (at UNSW in Australia) proposed a new
procedure for directory pathnames. UNSW also provided new code
for process table matches. Bruce Borden (at the RAND Corporation)
provided the symorder program. Ferrin also rewrote parts of
copyseg() and clearseg(). (The entire set of improvements was
made available to the community on a PDP-11 distribution: 2.8.1BSD
-- it was announced by Ferrin at the USENIX Conference in January
1982 in Santa Monica, CA.
The users had enhanced V7's performance dramatically.
But I've gone too far ahead.
USENIX. Ron Baecker of the University of Toronto
hosted the USENIX Association meeting in Toronto, June 20-23.
There were about 400 attendees.
Al Arms, an AT&T lawyer, announced the new licensing terms for V7.
In addition to a fee schedule that increased the costs of the
various licenses, the academic/research license no longer
automatically permitted classroom use. As Greg Rose (who was
one of John Lions' students at UNSW and is now with Qualcomm) told me:
It seems that in so many stages of Unix's evolution, an action that
AT&T took in order to stifle something actually caused the opposite
to happen.
Supressing Lions' commentary led to wholesale Xeroxing. Here it led
to something truly unforeseen.
Andrew S. Tanenbaum of the Vrije Universiteit in Amsterdam had
been using V6 in his classes on operating systems. It now appeared
that he would not be able to employ V7. "It was the new licensing
restrictions," he told me.
When AT&T released Version 7, it began to realize that UNIX
was a valuable commercial product, so it issued Version 7
with a license that prohibited the source code from being studied
in courses, in order to avoid endangering its status as a trade
secret. Many universities complied by simply dropping the
study of UNIX, and teaching only theory. [Operating
Systems (1987), p. 13]
Andy was not to be deterred: he created an operating system like
Unix for use on Intel's new x86 architecture: Minix. 1
MIT. In 1974, Robert Greenblatt at the MIT AI Lab began
the Lisp machine project. His first machine was called CONS (1975). 2
This was improved into a version called CADR (1977). 3 CADR was the direct
ancestor of both Lisp Machines, Inc., of which Greenblatt was
the founder and president, and Symbolics.
And Symbolics, in several ways, forced Richard Stallman to form
the Free Software Foundation and the GNU Project. I'll discuss
these in Chapter 8.
Berkeley. Though I will go into detail concerning the
Computing Systems Research Group (CSRG) at Berkeley in the next
chapter, I think it important to note here that 3BSD, the first
Berkeley release for the VAX, came out at the end of 1979. But
this was not based on V7, but on 32V. Berkeley utilities and
modifications from 2BSD (including the C shell) had been added,
as well as a virtual memory system done by a number of Berkeley
graduate students, including Bill Joy.
It was an exciting year.
32V. Before going on to Berkeley, I should say something
about 32V, the UNIX port to the VAX.
Nearly four years passed between V6 and V7. But, as I noted,
things didn't stand still at the Labs. In fact, what we think of
as V7 was available internally nearly a year prior to the
publication of Seventh Edition.
Things hadn't remained static at DEC, either, and the first
VAX (Virtual Address eXtension), a 32-bit computer, was
pre-announced in 1977 and went on sale in 1978. Dennis, Ken
and Steve Johnson felt alienated by DEC, for a variety of
reasons. And Dennis and Steve were working on the port to
the Interdata 8. So when DEC offered them a VAX, they just
said "no." DEC then turned to Bell Labs in Holmdel. I spoke
to Charlie Roberts, who was to manage the project.
DEC came to us in Holmdel. We were clearly the
second-string. Tom London and John Reiser were interested
and so was Ken Swanson, and we got the VAX in early '78.
I didn't do any of the technical work. In fact, I devoted
a lot of energy and time to getting the management to let
us do it. It wasn't research you see. However, they let us
take the time. And in about three months my small group
ported Version 7 to the VAX. We got the machine in January;
they had it running in April; and by August it really worked.
By then folks knew what we were doing. I had had calls from
about six universities -- Brown, UCLA, Berkeley, Waterloo.
I can't recall the others. So I went to Roy
Lipton and Al Arms in Patents and Licensing about getting it
out. After a lot of back-and-forth, they decided that we
could give it to one university for research purposes and
that Al would set up a "special research agreement" with
that institution.
I had met [Bob] Fabry at a couple of conferences and I had
been out in Berkeley and given a paper and talked to
[Domenico] Ferrari as well as Emmanuel Blum and Bill Joy.
So, with the blessings of BTL area 11 management, we sent
32V to Berkeley. It was in October or November 1978.
With that background, let's go cross country to Berkeley.
1 I'll return
to Minix in Chapter 9. But it's important to note that some
universities went along with AT&T. The first of these was Carnegie
Mellon. Clem Cole told me that he and Dan Klein had gone on a
hunger strike until CMU purchased a "full" $20,000 license.
2
This was a pun on the list construction operator in Lisp.
3 In Lisp,
cadr returns the second element in a list.
Dr. Salus is the author of "A Quarter Century of UNIX" and several other books, including "HPL: Little Languages and Tools", "Big Book of Ipv6 Addressing Rfcs", "Handbook of Programming Languages (HPL): Imperative Programming Languages", "Casting the Net: From ARPANET to INTERNET and Beyond", and "The Handbook of Programming Languages (HPL): Functional, Concurrent and Logic Programming Languages". There is an interview with him, audio and video,"codebytes: A History of UNIX and UNIX Licences" which was done in 2001 at a USENIX conference. Dr. Salus has served as Executive Director of the USENIX Association. This work is licensed under the Creative Commons
Attribution-NonCommercial-NoDerivs License. To view
a copy of this license, visit
http://creativecommons.org/licenses/by-nc-nd/2.0/
or send a letter to Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.
|