Subject: Sun, BSD, and GNU
From: John Gilmore <gnu@toad.com>
Date: Sat, 29 May 1999 18:12:25 -0700

> What I can't figure out is just where all those billions of dollars
> came from, that can be credited to the BSD-style licenses,
> when the BSD'd code was available *to the public* for *free*, as BSD
> advocates constantly point out. 

It's hard for people today to see the Sun/BSD/GNU situation as it was
back then.  In the grand clash of philosophies it's useful to remember
that our job was to ship a working product...

  * The BSD software was NOT publicly available, nor freely available.
It was available only to AT&T Unix Licensees.  To buy the tape from
Berkeley, you had to send them a copy of your AT&T license.  A major
effort, started by me and Laura Creighton in 1987 as "Radio Free
Berkeley Unix", later renamed the "Sift" project, attempted to sift
the UCB-copyright code out from the AT&T-copyright code.  Our specific
intent was to allow the code to be used by GNU.  Mike Karels and Keith
Bostic at UCB (and many others around the Unix community) helped a lot
with this.  The UCB folks identified and marked the source files that
were not AT&T's with a different license paragraph, and produced the
"Networking Tape" which contained only non-AT&T code and was available
to the public.  In March '88 I spent a few weeks at UCB, porting their
entire source tree through GCC so they could drop the PCC compiler.
(This port found about ten bugs in GCC and hundreds in Unix.  There
was still code in there from before C had pointers!!!)

  * When Sun started, there *was* no GNU project.  I worked on porting
the first GNU software (GNU Emacs) to the Sun when it first came out,
because I had used and liked ITS Emacs and Gosling/Unipress Emacs.

  * Sun never could figure out in the early days whether people bought
their boxes because of the fast cheap hardware, or because of the high
quality (bug-fixed & enhanced) Berkeley Unix software.  Had they
decided it was the hardware, I could see them being willing to ship
the source code of the software.  Remember, the company was started by
grad students!  Bill Joy had in fact made his reputation by building
great software at Berkeley and selling it in full source code with
full rights to redistribute (subject to AT&T restrictions that he
couldn't control).

> Putting the most positive spin on the case for the BSD-licensed
> software, let's say Sun couldn't possibly have gotten a release
> out in time to make some marketing window for its products
> without using the BSD'ed code.

In actual fact, Sun shipped a few hundred units with a Unisoft V7 Unix
port (a variant of the original MIT 68000 port of V7 Unix).  But its
customer base -- largely Vax users at universities, looking for good
graphics and cheaper boxes -- wanted Berkeley Unix, and with Bill Joy
a founder it was a foregone conclusion that once BSD 4.1c was solid,
we'd be shipping it.

The situation back then was that *Unix* itself gave any hardware
company a huge leg up.  Without Unix, a hardware company would have to
write its own operating system, and then get people to write
applications for it.  This would be a multi-year process without
revenues.  (Apollo -- later bought by HP -- went that way, a few years
before Sun started.)  With Unix, you could build good hardware and
have Unix running solidly on it in six months, letting you ship it to
customers and get revenue six months after the hardware worked.  And
applications would port almost trivially from other Unix versions;
you'd usually just have to fix a couple of minor bugs where the code
would dereference a zero pointer.  (On early Vax BSD's, location 0 was
in the address space and contained a zero, so those bugs often weren't
detected on the Vax.  Early 68000 MMUs couldn't map the kernel
separately from the user, so the 68k interrupt vectors had to be at
location 0, marked kernel-only).

Once a hardware company had decided to go with Unix, the question of
which Unix wasn't nearly as critical -- AT&T's own, Berkeley's, or
various other flavors from academia or small software companies.
In those days there were dozens of little companies shipping Unix
on 68k's; most in fact took the "conservative" choice and shipped
AT&T's Unix, or the "cheap" choice and shipped Unisoft Unix.

However, Sun distinguished itself with strong support for Ethernet
(eventually resulting in "diskless workstations" which reduced the
cost, noise, and sysadmin load of a multi-computer shop dramatically).
Sun could've shipped a Unix without UCB code, but it would have been
very painful for the customers.  Remember, AT&T was the phone company
and didn't understand squat about networking.  Their research people
had stopped working on Unix versions that customers could get.  Their
Unix releases included only modem networking for years -- uucp -- and
by the time they deigned to support Ethernet, their "3Bnet" support
was a mishmash of poorly implemented, proprietary, feature-limited
protocols.  You couldn't just plug them into the campus Ethernet and
have them talk to another University over the ARPAnet or NSFnet.
There were two implementations of TCP/IP for Unix -- one by BBN, one
by Berkeley -- so Sun could conceivably have licensed the BBN version.
But everyone there had experience with Berkeley Unix due to its
widespread success on Vaxen, and didn't see a need to do anything
different.

(Note that DARPA showed great foresight in funding UCB to implement
TCP/IP in Berkeley Unix and give it away.  This essentially caused
the Internet of today to happen.  Yes, Virginia, free software *did*
start the Internet.)

> And, of course, it couldn't have earned anywhere near the revenue if
> it had shipped the sources to its products GPL-style, as would have
> been required if those BSD sources had been GPL'ed instead.

The prevailing model was that the Sun source code was the "family
jewels", along with the hardware designs that let 68000's run at 10MHz
with no wait states for DRAM.  (Amazingly, most 68K vendors had really
sloppy hardware designs that ran up to 5x as slowly.)  We did sell
the source to universities because they demanded it; they were used to
it with Berkeley Vax Unix.  We sold it to a few large businesses like
ComputerVision, who wanted to be protected if Sun went under.  But
mostly we shipped binaries, because you could sell binaries to anybody
for about $20 under the AT&T license, while you could only sell
sources to people who already had an AT&T source license ($40,000 and
up, but $1000 for universities).

> (So if Sun had shipped all the sources anyway, the GPL could just as
> well have been used, but I assume that's not the case.)

If a good quality GPL Unix had been available, Sun could've shipped it
and would probably still have succeeded.  Most of Sun's competitors
failed because they weren't very good at what they were doing.  Sun
had very talented engineers, experienced venture financing, really
good people in manufacturing, incredible sales folks (John Gage was
the very first!), honest and shrewd senior management, etc.  It took
them a few years to find a really good marketing person, but they
survived on the university market while they figured it out.  They
kept churning out newer, better systems every nine months or year,
eating their own lunch rather than waiting for some competitor to eat
it.  Their systems were in such demand that we had a 6-month order
backlog at almost all times.

In the market shakeout that followed, those factors were much more
important than whether competitors could use their source code.  Sun
never ran out of cash (it was profitable from the 2nd quarter, but ate
cash like crazy for manufacturing & inventory) and kept being able to
deliver and support increasing volumes of increasingly cheap and
capable products.

> >At least so far, the BSD style license wins hands down for the
> >first case.  There have already been scads of companies who've
> >made billions as a result of work put out under BSD style
> >licenses.  Sun Microsystems, for instance.
> Further, I agree, a few people made tons of money by shipping
> proprietary software that they derived from free software.  That
> doesn't mean the *value* of that free software is higher than the
> value of otherwise-equivalent GPL'ed software, viewed from a
> more "holistic" (global) perspective.

Speaking as the one of the engineers of Sun's products, and as
recipient of a significant but tiny fraction of those billions,
Berkeley's advantage was that it had running code when Sun needed it.
If running GNU code, and an understanding of the market dynamics of
free software, had existed in 1981, I believe Sun could have made
those billions by using GPL software.

	John

PS: Sun has about 3/4 the annual revenue of Microsoft -- roughly
twelve billion dollars.  Sun could transition to GPL software, since
GPL doesn't threaten most of Sun's revenue.  Microsoft could not; most
of Microsoft's revenue is directly derived from duplicating software.
This may be a good reason for Sun to move to GPL, since it would put
pressure on Microsoft that Microsoft can't easily resist.  Note that
Microsoft is actively buying into hardware companies (e.g. AT&T and
cable TV companies), probably as a hedge against a completely
software-based revenue stream.