A few months ago (September, 1994), this column covered Linux, a freeware clone of UNIX. I received a fairly large response from that column, mostly from Linux devotees who felt that the column painted too bleak a picture of their favorite OS. I found this peculiar, as I thought the review was generally quite positive.

Some of the writers said that Linux compares very favorably with SCO's version of UNIX in terms of reliability and ease of use. I am too much of a Berkeley bigot to spend much time on SCO systems, so I can't really evaluate this claim (My own systems tend to run mostly SunOS 4.X). It is clear, however, that Linux is making some folks very happy, indeed.

I also received some mail reminding me that there are other contenders in the UNIX clone arena. When, it asked, are you going to cover the assorted BSD-based variants? (Just what I need; another chance to get in trouble with the faithful!) Well, look no further, because here's my take on the BSD ensemble.

Some History

The version of UNIX that came to UC Berkeley with Ken Thompson was pretty primitive by modern standards. It only ran on 16-bit machines, had a pretty limited file system, no networking capabilities, and a very limited offering of utilities.

On the other hand, it was a very interesting starting point. The essential design ideas were intriguing and the implementation was portable and cheaply available in source code format (at least to universities and research laboratories). So, folks from around the world started adding (and often replacing) modules. The troops at UC Berkeley's Computer Science Research Group (CSRG) folded their own changes and other contributions into a succession of Berkeley Software Distribution (BSD) releases.

Most of today's commercial UNIX systems reflect these additions: a rewritten file system, networking capabilities, virtual memory support, untold numbers of kernel changes, and a plethora of new utilities. The scale of the rewrite was massive; the current Berkeley release (4.4BSD) is an order of magnitude larger than the base release.

The BSD releases still contained some licensed UNIX source code, however, and were therefore available only under license. Many BSD enthusiasts disliked this situation. Why should a small amount of licensed source code keep the remainder from being distributed freely? So, CSRG started splitting up the distribution into licensed and unlicensed code.

The early releases of unlicensed code were known as Net/1 and Net/2. Net/1 contained only BSD-based networking code. Net/2, in contrast, delivered nearly a complete operating system. This code made its way into several freeware UNIX clones, including 386BSD, FreeBSD, and NetBSD. (More on these variants later.)

Unix System Laboratories (now part of Novell) then brought suit, challenging UC's right to distribute parts of the BSD system as freeware. They also sued BSDI, which sells a commercial version of the BSD system. Ultimately, however, the parties worked out an agreement that allowed the vast majority of 4.4BSD to be released on an unlicensed basis. This partial release, known as 4.4BSD-Lite, is now making its way into complete, BSD-based OS releases.

BSD Variants

All of the variants discussed below are available with complete source code. Some or all of the source code is freely redistributable. Some of the distributions are completely free, in financial terms; all are very economical, particularly in comparison to a UNIX source license.

The 386BSD distribution, produced by Bill and Lynne Jolitz from CSRG's Net/2 release, is the oldest BSD-based freeware distribution. Releases like FreeBSD and NetBSD trace their lineage to the Jolitz's early work.

Continuing in their efforts, Bill and Lynne recently produced their 386BSD Reference CD-ROM, Release 1.0 (Dr. Dobb's Journal, Miller Freeman, Inc.; 415-655-4190; sbarnes@mfi.com). Although the CD-ROM contains a bootable operating system for Intel CPUs, it is being released as a research tool, not as a commercial OS.

Instead of following the 4.4BSD-Lite path, 386BSD is exploring new avenues in kernel design. It has a modular kernel (like Solaris), kernel threads (heading towards multiprocessing), dynamic configuration, and a revised, well-documented virtual memory system. Like Mach, 386BSD is lifting considerable code out of the kernel and moving it to the user process domain. Driver additions are now extremely simplified, due to an emphasis on replacing compile-time with run-time binding.

The 386BSD release CD-ROM includes a mixture of BSD and Jolitz code, articles, and what have you. The files are hyperlinked with a global glossary and index to illustrate the structure and interdependence in the discussion of the system files.

Consequently, the CD-ROM release is not freeware, as a whole, though many parts of it are freely redistributable. In particular, the system itself will be available at certain "official" Internet sites, still (unfortunately) to be determined at press time.

I would strongly recommend getting the disc, however, if you intend to play with the 386BSD code. There are 800+ pages of annotations and other text on the disc; it would be silly not to take advantage of this work.

BSDI (Berkeley Software Design, Inc.; 719-593-9445; info@bsdi.com) offers BSD/OS (formerly known as BSD/386), a commercial version of BSD for Intel-based platforms. Like the 386BSD collection, BSD/OS releases are proprietary, but contain pieces of redistributable code. Unlike the Jolitz's work, BSD/OS is promoted as an industrial-strength OS, supported by some of the same folks that produced 4.4BSD itself.

Moving on to the freeware side of BSD, we find FreeBSD and NetBSD. FreeBSD is available in ftp://FreeBSD.cdrom.com/pub/FreeBSD/. NetBSD is available in ftp://ftp.iastate.edu/pub/netbsd/, as well as several other sites around the net. Next month's column will explore these two variants in more detail, along with some upcoming possibilities.

Meanwhile, the best starting point for BSD-related systems is the excellent FAQ (Frequently Asked Questions [about] 386BSD, NetBSD, FreeBSD, and other BSD-derived Operating Systems). It is available in ftp://ftp.iastate.edu/pub/netbsd/FAQ/.