Dialectic Constants

Copyright (c) 2000-2001 by Rich Morin
published in Silicon Carny, March 2000


Over the past thirty years, the *nix community has evolved quite a bit, passing from Murray Hill and Western Electric through the commercial UNIX and System V phases and into the present Open Source era. Some things, however, remain the same...

In reading accounts of the early history of Unix, I am pleased by the spirit of interchange that is reported. Although no official support was available, the folks at Murray Hill were quite willing to help others in installing, porting, and/or modifying the system. Ken Thompson even went off to UC Berkeley for a while to get them started using Unix.

By the time I started going to Unix conferences, however, some clear divisions had started to emerge. As an early "binary licensee", the amount of source code I could examine was sharply limited. A few shell scripts and control files were readable, but that wouldn't take me very far.

Actually, AT&T didn't even encourage much activity there. I recall attending a meeting of Sun User Group and AT&T folks. I tried to find out whether SUG could redistribute modified shell scripts and other source code that happened to be in the Sun distribution.

I was told "there is no source code in the Sun distribution". Upon further questioning, it turned out that all files in the distribution were covered by a binary license, and were therefore binary files, by definition. Understandably, discussion basically stopped at that point.

So, Unix in the early 80's wasn't exactly a free-for-all; it was more like free-for-some, remaining inordinately expensive for others. Those of us in the "out crowd" were forced to make do with opaque binary distributions and manual pages, along with occasional sympathy and/or smirks from the source-licensed "in crowd".

Even for the in crowd, however, things were turning sour. The advent of "proprietary Unix" (or is that "UNIX"? :-) started to poison the well, making improvements and even bug fixes unavailable at times to the community at large.

Most universities continued to send things to Berkeley, and some vendors sent in contributions, as well. Clearly, some very important collaborative work was done during this period. On the whole, however, the early spirit of free interchange was overwhelmed by the pursuit of corporate profits.

Not surprisingly, it was during this period that much of the "incompatible Unix" reputation developed. After all, if each vendor was developing code independently and not giving changes back to the community, how could any true compatibility be maintained?

In fact, it is quite possible that the workstation vendors, for reasons of their own, may never have been very interested in true (e.g., binary) compatibility. Michael Tiemann (now Chief Scientist of Red Hat) notes that this incompatibility had the effect of keeping workstation software prices elevated.

In with the Out Crowd

Meanwhile, outside of the inner circle, assorted vagabonds continued to exchange code freely. The GNU Project, the Software Tools User Group, and assorted user groups (e.g., DECUS, SUG, and Interex) collected software, distributed tapes, and generally kept the spirit (and reality) of interchange alive.

Through brave deeds, careful planning, and Real Work (TM), the folks at UC Berkeley managed to free the vast majority of "BSD Unix" for public distribution. This effort eventually produced the "4.4BSD-Lite" distribution that underlies BSDI's BSD/OS, FreeBSD, NetBSD, OpenBSD, and Apple's Mac OS X (at least the "Darwin" portions).

With so many volunteer organizations being involved, one might expect open interchange and complete compatibility to be the order of the day in this "4.4BSD-Lite" community. One could easily be mistaken, however.

Open interchange is, indeed, nearly universal. Even Apple and BSDI cooperate with the volunteer organizations in making bug fixes and (some) enhancements available. Aside from helping to keep community approval for their efforts, code sharing greatly reduces these companys' support costs.

Complete compatibility does not -- and may never -- exist. Personality differences aside, the volunteer organizations have differing goals, requiring (at times) different development strategies.

FreeBSD is a great system for Intel platforms; it installs easily, runs efficiently and reliably, etc. NetBSD is well engineered and runs on practically anything, using a united source tree for all of its development. OpenBSD provides no-compromise "security by default", including use of strong cryptography, where appropriate.

As a result of OpenBSD's no-compromise approach, however, distribution and some (e.g., cryptographic) development must be done outside of the USA. Similarly, the NetBSD goals impose some complications that the (largely Intel) FreeBSD crowd may be slow to adopt.

Unless Apple can demonstrate some really impressive benefits for its kernel changes (e.g., Mach and IOKit), I wouldn't expect much interest from the other BSDish folks. After all, they know and like their kernel design and code, so it would take a lot to make them change.

This is not to say that the BSDish projects don't cooperate. They do, by and large, just as the Linux developers do. We even see code sharing between BSD, Linux and proprietary vendors, despite some very tricky licensing issues.

Don't be surprised to see them sharing ideas at USENIX, on email lists and newsgroups, and elsewhere. On the other hand, don't expect any of these folks to walk in lockstep; their different goals simply don't allow it.

The Dialectic

Stepping back from the chaos of the OS market, we can see that a very healthy interchange is going on. In fact, what we have is a continuing dialectic: logical argumentation, complete with theses, antitheses, and (at times) syntheses.

In looking at the licensing structures used by the players, therefore, we should look at how they affect this interchange. Will Sun's licensing allow good ideas to migrate efficiently? Do the "ancestral" characteristics of the GNU GPL (General Public License) help or hurt the long-term influence of GNU software?

The licensing structures themselves are involved in the dialectic. Each attempt to create the "perfect" license draws upon (or at least reacts to) earlier attempts. And, as authors choose licensing terms, they inevitably affect the acceptance of their software in both the short and long term.

Whatever; despite the shouting, crowding, and noise, it's a joy to behold this kind of intellectual ferment. We are very lucky to be part of this (r)evolution...

Resources

Apple
http://www.apple.com

Apple - Public Source (aka Darwin)
http://www.publicsource.apple.com

Berkeley Software Design, Inc. (aka BSDI)
Now part of Wind River
http://www.windriver.com

DECUS -
A Compaq Users Group
http://www.decus.org

The FreeBSD Project
http://www.freebsd.org

The GNU Project (aka The Free Software Foundation)
http://www.gnu.org

Interex -
The International Association of Hewlett-Packard Computing Professionals
http://www.interex.org

The NetBSD Project
http://www.netbsd.org

The OpenBSD Project
http://www.openbsd.org

Red Hat
http://www.redhat.com

Sun Microsystems
http://www.sun.com

Sun User Group
Now defunct, sadly

The US Department of Justice and our National Software Interests:
Getting to the Source
Michael Tiemann & Wendell Baker, Cygnus Support, 1994
http://www.cygnus.com/~tiemann/unix-and-law.html
      

About the author

Rich Morin (rdm@cfcl.com) operates Prime Time Freeware (www.ptf.com), a publisher of books about Open Source software. Rich lives in San Bruno, on the San Francisco peninsula.