The BSD Family Tree
The BSD Family Tree
The BSD Family Tree
BSD users are often asked, "what are the differences between FreeBSD,
NetBSD, and OpenBSD?" To Linux users and those familiar with Solaris or
other Unix platforms, the differences may seem quite small. Despite sharing
a common ancestry, the BSD family of operating systems provides a number
of complete operating systems packages to meet every need.
Ancient History
William Jolitz began porting BSD to the 386, writing a series of articles in the
process for Dr. Dobb's journal. Simply enough, he called his software
"386BSD." By 1993, though, Jolitz had decided to halt work on an improved
versions of 386BSD. This is the birth of modern BSDs.
FreeBSD
In 1992 and 1993, Jordan K. Hubbard, Rod Grimes, and Nate Williams had
been working on 386BSD and releasing a set of changes known as the
"Unofficial 386BSD Patchkit." Maintaining the patchkit had grown
cumbersome and a new mechanism was needed. The three authors began
working on a new project called "386BSD 0.5" which would contain all of the
fixes and function as a real operating system. However, Jolitz removed his
official approval of the project in early 1993. David Greenman, then at
Walnut Creek, proposed a new operating system based on the patchkit with
a new name: "FreeBSD."
Even Walnut Creek themselves got into the act. In May of 1999, they set a
daily transfer record of 1.39 terabytes from a single server, running
FreeBSD. This record was later surpassed in September of 2000. Then,
TeraSolutions, Inc., who acquired Walnut Creek's massive FTP archive after
Walnut Creek merged with BSDi, served two terabytes of data to Internet
customers using FreeBSD. TeraSolutions's co-founder, David Greenman said
of FreeBSD, "We're very pleased to have servers that we built, running the
FreeBSD operating system, set new milestones like this. It really shows just
how well our large servers can perform in real-world situations using freely
available software.
Perhaps what sets FreeBSD apart most is its technical simplicity. The
FreeBSD installation program is widely regarded as the simplest Unix
installation tool in existence. Further, its third party software system, the
Ports Collection, has been modeled by NetBSD and OpenBSD and remains
the most powerful application installation tool available. Through simple one-
line commands, entire applications are downloaded, integrity checked, built,
and installed making system administration amazingly simple.
FreeBSD governance and development model lead to a very stable and easy
to use system. As one of the most reliable operating systems for the x86
platform, FreeBSD's mark lies in sustaining an air of simplicity and stability.
NetBSD
While Jolitz and others were focusing on 386BSD, others were frustrated at
the pace of work and began a parallel development effort. Additionally,
others at Virginia Tech took the introductory work on 386BSD and the just
released Net/2 and started porting BSD to the Macintosh. The development
effort soon expanded to the Atari ST, Amiga, and PC platforms. As NetBSD
grew, it soon became obvious that FreeBSD's niche would be the i386 and up
Intel systems and NetBSD would provide BSD for any other platform desired.
NetBSD's dedication to portability has led the way for other operating
systems. When the FreeBSD group began porting to the Alpha platform, the
initial work from the NetBSD project provided the foundation. With new
FreeBSD ports to both the PowerPC and SPARC platforms under way, work
from NetBSD is being used again. Linux has benefited from NetBSD's
experience as well. The special booter used by NetBSD on the 68000-series
Macintosh computers was modified and became the Penguin booter used to
launch Linux on these systems. Finally, NetBSD's largest contribution to other
systems lies in acting as a springboard for the OpenBSD operating system.
OpenBSD
In the early 1990s, Theo de Raadt had been responsible for the SPARC port
of NetBSD as well as sundry other pieces of the NetBSD system. However,
after a disagreement between Theo and the NetBSD core team concerning
the direction of NetBSD's development, Theo struck out on his own and
founded OpenBSD.
OpenBSD also advanced the state of code auditing. Beginning in 1996, the
OpenBSD team began a line-by-line analysis of the entire operating system
searching for security holes and potential bugs. Unix systems have been
plagued for decades by the use of fixed-sized buffers. Besides being
inconvenient for the programmer, they have lead to numerous security holes
like the fingerd exploit in 4.2BSD. Other security holes relating to mishandling
temporary files are easily caught. OpenBSD's ground breaking audit has also
discovered security-related bugs in related operating systems including
FreeBSD, NetBSD, and mainstream System V derivatives. However, the
nature of this process allows general coding mistakes not relating to security
to be caught and corrected, as well. Additionally, a number of bugs in Ports,
or third party applications have been discovered through this process.
After leaving Apple Computer in the 1980s, Steve Jobs founded a new
computer company, with a new mind set: NeXT[1]. NeXT's operating system,
NeXTStep, was an object-oriented operating system based on Carnegie-
Mellon's Mach microkernel architecture, which was in turn based on the
4.2BSD release from the University of California. On top of Mach, NeXT
implemented a Unix-like operating system called NeXTStep and replaced
MIT's X Windows System with a new graphical interface called Display
Postscript. Display Postscript allowed for very fine control of the desktop and
graphical environment, however it never caught on outside of NeXT systems.
NeXT eventually quit making hardware and implemented NeXTStep for other
operating systems, changing the name to OpenStep. In 1997, after nearly
ten years of separation, Apple and NeXT merged giving birth to the new
Apple. Apple promised the new operating system would incorporate features
and design aspects from NeXTStep. Throughout MacOS versions 8 and 9,
minor changes reflecting the new NeXT-based heritage started appearing on
the desktop. Apple promised the real goods would lie in MacOS X.
MacOS X is a new operating system which has used code from many
sources. The base is an updated version of Mach from CMU. On top of it is a
microkernel-based BSD system similar to the one used in NeXTStep. All
around, features from previous versions of MacOS have been incorporated
to maintain compatibility with legacy applications. The Unix-land user utilities
were derived from FreeBSD and NetBSD. Additionally, new interfaces, such
as Aqua allow a new generation of programs to be created on this operating
system.
Apple also gave back to the community. By open sourcing the base operating
system, nicknamed Darwin, Apple has given developers a chance to learn
the new system long before its scheduled release date. Apple has also
allowed developers to make changes as they saw fit. Accordingly, it is
possible to build and run Darwin on Intel-based computers instead of only on
Apple's proprietary Macintosh hardware.
MacOS X's greatest triumph will be in bringing BSD and Unix to the mass
market. Apple computer has long held a niche among the least computer-
literate in the marketplace. Presenting the user with an overwhelming and
complicated system would seem like the worst possible solution. Apple's care
and time spent ensuring compatibility with existing applications promises no
current users will be left behind. The effort spent developing a friendly Apple
interface for BSD ensures existing users will understand and follow the new
system paradigm with minimal effort.
Indeed, there are a wide range of BSD versions. As we have seen, each
implementation focuses on a specific market but still borrows concepts and
idea from their brethren. The results have lead to a family of operating
systems designed for every need imaginable.
Often decried, BSD's fragmentation has only helped it and its users in the
quest for the most stable, portable, secure, or usable operating system
available.