The Daemon, the GNU and the Penguin

~ by Peter H. Salus

Chapter 10. SUN and gcc

The company we think of as Sun Microsystems began with Andreas Bechtolsheim and some other graduate students at Stanford emulating Motorola's 68000 CPU cheaply. Stanford licensed a single board: the Stanford University Network board -- SUN.

Soon companies began licensing the board: Codata, Fortune, Dual, Cyb, Lucasfilm, and others. Machines began appearing. Each was "just another workstation" -- JAWS.

The first UNIX workstation had been the Z8000 ONYX, hardly a VAX on a chip. John Bass demo-ed it at the USENIX Conference in Boulder, CO, 29 January to 1 February 1980.

The system we took to Boulder was on three boards about 15 by 22 inches [Bass told me]. Its performance and architecture was more like a PDP-11/45 or 11/70 ... segmented memory, no paging. ... That aside, the ONYX was the first table-top system designed to run UNIX. With eight serial ports [users] and at under $25k, it made a great short-term alternative to PDP-11 UNIX systems.
But then came those JAWS -- some of them at under $10k. And all of them ran AT&T's System III or 4.1BSD.

System III was AT&T's commercial variety of V7. Though its official release date was 31 October 1981, it reached some of the purchasers earlier and the general public in 1982.

Berkeley 1 issued 4BSD in October 1980. It included a faster file system, job control, auto reboot, delivermail (soon to be renamed sendmail), and Franz Lisp. In June 1981, 4.1BSD, which had autoconfiguration and some minor improvements, was issued. Just why it was 4.1 (leading to 4.1a, 4.1b, 4.1c, 4.2, 4.3, and 4.4) is another of the silly consequences that licensing restrictions forced upon developers.

Bill Joy made a 10-day visit to DEC in early 1981, working with Armando Stettner (who had gone to DEC from Bell Labs as "a sort of UNIX ambassador") on porting 4BSD to the VAX.

We made a dump tape [Armando told me] and Bill packed up and went back to California. [Bill] Shannon and I took the disk pack and brought it up on decvax -- a 780, our main system. Bill Joy called a couple of days later and said, "Hey, there's going to be a lot of hassle with the license if we do another release. So why don't we call it 4.1BSD?"
4.1a, 4.1b, and 4.1c were all "test releases." 4.1a included TCP/IP and the socket interface and was sent to a number of ARPANET sites. 4.1b included the new "fast file system" and new networking code. It was only used on the Berkeley campus, once in a graduate OS class. 4.1c was almost 4.2BSD, lacking only the new signal facility. It was sent to about 100 sites.

System III was distributed by AT&T without source. It was the first version of UNIX to be issued that way. But those customers who were unhappy merely obtained V7 from Western Electric or used the Berkeley editions...which came with source.

The June 1982 issue of ;login: (the newsletter of the USENIX Association) carried an article headlined:

Interesting Developments:
Bill Joy of UCB moving to Sun Microsystems

Bill took a tape of 4.1cBSD with him. It became the basis for SunOS.2 4.2BSD became DEC's Ultrix.

For half-a-dozen years, improvements in BSD were incorporated into subsequent versions of SunOS. But in 1988 AT&T announced a major investment in Sun Microsystems and thereby startled the UNIX community. (Ostensibly, the purpose was to merge the AT&T and Berkeley strains of UNIX. Most saw a far darker purpose.) I'll return to this in the next chapter (11).

gcc

The GNU C Compiler (gcc) was Richard Stallman's first free software "hit." There were many C compilers available (at least four or five of them written by Whitesmiths, P.J. Plauger's software company3, but they were all proprietary. Stallman's was unencumbered -- and it worked well. (gcc now stands for GNU Compiler Collection, and comprises compilers for C, C++, Objective-C, Fortran, Java, and Ada, and a large number of libraries; a two-CD set still costs only $45.)

Remember, the USENIX community had been issuing free distribution tapes for a decade, and Rich Morin, one of the founders of the Sun User Group, had emulated this practice. When Stallman's compiler came out in 1987, Morin recognized that the hassles he had encountered in getting permissions from contributors were resolved by the GPL. And he recognized that the GPL made what he was engaged in a possible business. Morin's "service" became Prime Time Freeware.

In 1990 I became Executive Director of the Sun User Group. That December I headed for San Jose for SUG's Eighth Annual Conference and Exhibit. It was a very tense meeting. In the first few hours I was at the hotel and the Convention Center, I became aware of the fact that there were two separate (though overlapping) sets of irate users.

One of these was made up of those who had bought a Sun 386i, Sun's sole venture into the Intel world. Though it was a business failure, the decision to end support for the machine was not greeted with huzzahs. (At the "Meet the Executives" session, Ed Zander explained that Sun wasn't "abandoning" the users and that an external firm would support the 386i for (as I recall it) "up to five years." The faithful were not appeased.

The second group was irate because Sun had "unbundled" its software. That is, rather than getting all of Sun's developer tools together, they had to be purchased separately. And of course, they cost more this way.

But wait. Why purchase the C compiler from Sun, when you could get a better one for less money from the FSF? That's what a large number of Sun's users asked themselves. And the net result was a real jump in CD sales at the FSF. (Several years later, when I organized the Freely Redistributable Software Conference [February 1996] and then was Vice President of the FSF, I realized more fully just how much Sun had benefited the FSF. I'm certain this was not a foreseen consequence.)

The GNU C compiler was not the first piece of freely redistributable software, but it was the first widely circulated product of Stallman's project.


1 I owe most of the BSD version chronology to Keith Bostic.

2 Sun was always a UNIX company, but the Sun-1 ran on UniSoft's v7.

3See my interview with Plauger, Quarter Century of UNIX, pp. 174-176.