Bostic on the BSD Tradition
An interview with BSD veteran 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).
Pages: 1, 2