Bostic on the BSD Tradition

An interview with BSD veteran Keith Bostic

Keith Bostic

 One of the senior technical members of the Computer Systems Research Group at the University of California, Berkeley, which developed and distributed the popular 4BSD Berkeley Unix operating system release.

 Founder and President of Sleepycat Software, providing embedded database technology and services to professional software developers.

Keith Bostic joined the Computer Science Research Group at Berkeley in
1986 where his first job was finishing up a port of 4.3BSD to the PDP-11.
He was later one of the principal architects of the Berkeley 4.4BSD and
4.4BSD-Lite releases, and instrumental in an expanded public release of
the BSD code, managing an effort to rewrite utilities and libraries based
only on the documentation. These efforts led to the Net/2 release, which
was the basis for 386/BSD, and subsequently FreeBSD, NetBSD and OpenBSD.
Bostic was also one of the founders of BSDi. He currently runs SleepyCat
Software, which develops and supports Berkeley DB, an open source embedded
database.

This O'Reilly Network interview was conducted through several e-mail
exchanges.

O'Reilly Network: Are you optimistic that a common FreeBSD/BSDi release can reinvigorate
the BSD platform?

Keith Bostic: Yes, I am. BSD has always had the best technology, what it has
lacked is timing and marketing.

O'Reilly: Is it important to have this choice or would the market be better
served by getting behind Linux?

Bostic: It's never preferable to have a market owned by a single vendor.
If nothing else, having competition validates the marketplace, i.e., you
can ignore one guy jumping off a bridge, but if two or more are doing it,
well, you have to take notice.

O'Reilly: One might say that Linux is not built around a single vendor, but a
single code base. Is it valuable to have different code bases, then?

Bostic: Well, first, Linux isn't really built around a single code base,
although it is certainly more of a single code base than BSD is. That
said, I don't think it's particularly good or bad to have multiple code
bases, I don't think it matters much.

O'Reilly: Did BSDi make the wrong choice by doing so much proprietary
development instead of going down the Open Source path.

Bostic: I think that's clearly true. When BSDi started (1992), it wasn't
nearly so clear as it is now that Open Source is a viable economic model.
There was a minority at the time that pushed for what would now be called
an Open Source model, but as I said, things were different then.

O'Reilly: You are the person who had the bright idea to rewrite all the
utilities and the C library, to remove any taint from AT&T. What made
you think at the time you could pull this off? Apparently, your
colleagues at Berkeley didn't think this was possible. It's an amazing
achievement.

Bostic: I wouldn't say I had the idea. It's been an awfully long time,
but I think that John Gilmore originally suggested it. And, of course,
Richard Stallman had obviously been doing similar things for a long time,
and he would periodically drop by CSRG to borrow a terminal and we'd argue
back and forth about the why and how of free software. I can probably
take the credit for making it happen at Berkeley, but like most things,
it's hard to point to a single Eureka! moment or person who had the idea.
I suppose if we'd truly understood how hard it would be, both in terms of
time and legal hassles, we probably wouldn't have tried to do it. But
there were lots of goals along the project path that were good in and of
themselves, and so it was easy to gradually work our way to the point
where we looked around and said "Hey, we're almost done."

O'Reilly: You say that FreeBSD is technically better than Linux. What evidence
is there for this opinion? Or what areas of FreeBSD are significantly
different from Linux as to make this case? If a technical person wanted
to investigate this argument, where would you look to start?

Bostic: The obvious examples are the network stack and the filesystem
support. It's been at least a year since I really looked at the Linux
kernel, so you have to take this for what it's worth, but at that time the
various BSD kernels were still significantly better engineered than the
Linux kernel. For example, the Linux filesystem can lose data if you
crash at the wrong moment. That's not acceptable. The Linux NFS support
was pretty bad (not that BSD's was all that wonderful).

To be perfectly clear -- I'm not a Linux basher. Everybody that works on
Linux or runs Linux is my good friend, we're on the same side and have a
lot more shared goals than differences. That said, there was a clear
technical differentiation between the BSD and Linux systems at the time.
Now, to be fair, there's also a clear technical differentiation between
BSD and Solaris, i.e., Solaris is currently a better engineered kernel.

Whether these kinds of technical differences matter at all in the larger
scheme of things, well, that's a harder argument to make. Unix is
infinitely superior to Windows, and look which one dominates the
marketplace.

Sure, the technical quality of the systems matters to me, because I'm
an engineer. However, as an engineer, it's important to look yourself in
the eye in the mirror every morning, and remind yourself that "marketing
is everything," and engineering doesn't matter a tinker's damn. Once you
get to "good enough," any further engineering work you do is fun and
rewarding, but has nothing to do with how well the product will do in the
marketplace. The surprising fact that came out of the 1980's was just
how low a standard "good enough" was. People really didn't care that they
had to reboot their Windows boxes every morning. People really didn't
care that the user interface was horrible (Apple never did figure that
out).