Published on (
 See this if you're having trouble printing code examples

Bostic on the BSD Tradition

An interview with BSD veteran Keith Bostic

   Keith BosticKeith 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.

by Dale Dougherty

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).

O'Reilly: How much of the technical advantage stems from the original BSD code or from the newer developments coming from the FreeBSD team?

Bostic: Both. Certainly some of it is the original BSD code. Both the network stack and the filesystem work came from the original BSD code. Doing a good network stack is a very difficult project -- the BSD stack has at least 15 years of development in it now, and lots of very bright people spending serious research time on making it work. Linux and Microsoft both started from scratch, and it showed.

"Linux is still very much directed by a small core, while FreeBSD has pushed the core developer group out into a larger set of people."

That said, FreeBSD has done a much better job of leveraging the community for quality than Linux has. Note the phrase "for quality" -- that's what makes that sentence correct. Linux is still very much directed by a small core, while FreeBSD has pushed the core developer group out into a larger set of people. One of the things I admire most about Jordan Hubbard is the job he's done in herding the cats and pushing FreeBSD's quality forward. He's done a better job of distributed management than we ever did at UC Berkeley (although, in our defense, he has better tools and infrastructure than we ever had at UC Berkeley, for example, the Web and high-speed networking).

O'Reilly: Was the original idea behind BSDi to find a way to continue development of BSD outside the University and allow its developers to be paid commercially for the work they were doing?

Bostic: To find a way to continue development of BSD outside the University, definitely. To pay the developers, no, not really.

Mike Karels, Kirk McKusick and I have long been accused of leaving Berkeley for BSDi because it was a commercial opportunity, and it's obviously not true. We could have all left and closed down UC Berkeley's development and never released 4.4BSD. Instead, we stayed at the University, did additional work and releases, and gave it all away to anyone that wanted it, as the University had always done.

The only key developer that went to BSDi was Mike Karels, and he didn't go until a year or so after BSDi was founded. Mike left before Kirk and I did because he wanted to return to Minnesota to live, and the fact that BSDi needed a system architect made it a natural and easy move for him. (And, I should point out, he and other BSDi employees continued to work on the 4.4BSD release as well as their own release, so BSDi to some extent funded the 4.4BSD release.) Kirk and I stayed at UC Berkeley for a couple years after that, then I took a year off and spent a couple of years at BSDi. Kirk has never been a BSDi employee, although he's consulted for them and is now chairman of their board.

The bottom line is that, had there been continued funding at UC Berkeley, we would all have stayed there, probably forever. Universities are really, really, nice places to work. But, all of us were engineers, and none of us had any interest in spending our time fund-raising, and the University no longer had any real interest in keeping us there. So, we looked around for some way to continue doing what we liked to do.

And we wanted BSD to continue to move forward. It was our baby; we wouldn't be human if we hadn't. But that was an engineering goal, not a money-making one. We were never in it for the money; if so, we sure wouldn't have been working at UC Berkeley!

O'Reilly: I recall Rick Adams as the driving force in organizing BSDi.

Bostic: Rick was a big founding force -- it wouldn't have happened without him. (I think that the original idea for BSDi came out of a discussion he and I had in his office, although I suppose it might have been obvious to anyone thinking about engineering and operating systems at the time. Especially after the OSF group was created. When OSF was first being founded, a group of folks approached the Hamilton Group and offered to create a clean-room implementation of Unix for not a lot of money. Given the eventual success of the OSF group, they should have taken us up on that offer! But, that's another story.) Anyway, Rick was the person that put together the actual structure of BSDi, more than any other single individual, I think. Rob Kolstad came later, first as a technical manager and then as the president, not in a founding role. At least, that's how I remember it.

O'Reilly: What interests me is that BSDi is an early attempt to start a company by and for engineers.

Bostic: Yeah -- what a spectacularly bad idea. See above: Marketing is all that matters. Once you come to terms with that you can relax more when you see Microsoft dominate.

O'Reilly: As the Open Source movement progresses, learning about the formative experiences of BSDi could be relevant.

Bostic: I think BSDi is a reasonable case study, but it's not a shocking fact: Engineers generally aren't good or experienced in the 90 percent of the work that is necessary to make money from the 10 percent of the work which is the writing of the code. (And, there's no reason that they should be good at it, I suppose.)

O'Reilly: Was BSDi technically smart but not market savvy?

Bostic: Yes.

O'Reilly: So let's suppose that Walnut Creek CD, which has been reasonably successful at selling a FreeBSD packaged product, can bring some of the marketing expertise that's been missing. The new BSDi will be competing with Linux companies that have a lot of marketing dollars. Still, do you believe there's a good future for FreeBSD and BSDi, especially as they converge on a unified code base?

"There are good reasons for the Open Source movement -- it's not that we're a bunch of random zealots crying in the wilderness because we had authority problems with our parents."

Bostic: Absolutely. I'm pretty optimistic about FreeBSD/BSDi, Linux, and Open Source in general. It's important to remember that there are good reasons for the Open Source movement -- it's not that we're a bunch of random zealots crying in the wilderness because we had authority problems with our parents. Open Source software has distinct advantages over closed software, and I think we'll be pleasantly surprised at how useful those advantages turn out to be in the marketplace and the future of software development.

I think the interesting question right now is if commercial Open Source companies can succeed and grow over the long term. It is difficult and often impossible to make money from Open Source software, that is, from the software itself. You make your money from proprietary software wrapped around the Open Source software, from packaging, from support, that is, from things that are ancillary to the Open Source software itself. This doesn't match the traditional business model of selling the intellectual property inherent in the software, and the revenue streams scale in completely different ways. I'm just not sure how that's going to play out.

Discuss this article in the O'Reilly Network General Forum.

Return to the BSD DevCenter.


Copyright © 2009 O'Reilly Media, Inc.