Monthly Columns
 

NetBSD, FreeBSD, OpenBSD: Why I Choose OpenBSD.

Copyright © 1999 Rodney Hopkins

I've pretty much always run mainstream operating systems. I've worked in computer support and administration for most of my professional career. The companies I've worked for don't use much UNIX on the desktop. In fact, they don't use much UNIX on the server either. The point is, I've always felt I needed to have at home, something that would be compatible with what I'm doing at work. It just makes my life easier. So I never paid much attention to the Linux movement when it started up, much less the BSDs. A friend of mine showed a fairly early version of Linux to me a few times. I had to admit, a free OS with XWindows was pretty appealing, but whenever my friend tried to demonstrate it to me, invariably the program he was attempting to show me would crash, or his sound wouldn't work, or his X display would get hosed. Anyway, I wasn't very impressed. "There's a reason that's free," I told him, "No one in their right mind would pay for it!" That pretty much summed up my attitude towards free OS projects for several years.

Then one bright fall afternoon, a neighbor of mine was having a yard sale. Being a computer geek and recognizing several old computers, I strolled over and checked things out. The only thing he had worth having was an old Macintosh SE/30. It was complete and he said it booted. He only wanted $2. I handed him the $2 and headed across the street to find out how much my two bucks had bought me. It turned out I had a fully functional SE/30 with 8M of RAM and an 80M disk. A few cheap upgrades later and I had 20M of RAM, a 230M HD and an Ethernet card. Unfortunately, I didn't have a use for the thing. I primarily use PCs and the days when a Mac SE/30 was a powerhouse machine were long gone.

Eventually, I hit the web, looking for useful things to do with my nearly free Mac. As it turned out, one of the few interesting things I came across were free, open-source UNIX ports to the Mac. There were three at the time, NetBSD, OpenBSD and Linux-m68k. After a little research, it turned out I only had two choices. The Linux-m68k project was very new, just barely had a kernel running on some models of Macs and the website for the project was AWOL.

So I hit the websites of the NetBSD and OpenBSD projects. The OpenBSD project immediately appealed to me. Its claims of security and code correctness piqued my interest, especially since I would be connecting this to an unsecured connection to the Internet. So I gathered up my courage and started downloading the files to install OpenBSD 2.1 on my little SE/30.

I've been around hardware and software quite a few years. I've installed countless copies of DOS, Windows, Windows 95 and NT. I've programmed in C, C++, Pascal and Lisp under UNIX, DOS and VAX-VMS, but until then I'd never had to install UNIX. I'd be lying if I told you it was easy. It was not. I asked countless questions on the port-mac68k@netbsd.org and misc@openbsd.org lists. Eventually, I got it right and I got OpenBSD installed and running on my Mac. I was king of the world. Then using the resources at http://www.macbsd.com/, I brought up the network. The whole thing was very cool. I played with the system, tried out the games, read various man pages and compiled several ports including the infamous EMACS. I really thought it was cool to be able to run EMACS on my SE/30. The system was very stable. But soon, OpenBSD 2.2 was released. I acquired a larger HD for the SE/30 and I decided a new install was in order.

Around this time, I discovered that the mac68k port on the OpenBSD side wasn't very well supported. There was no dedicated list for the mac68k port on OpenBSD. In addition, the people on the NetBSD port-mac68k list seemed much more numerous and much more friendly and responsive. So I figured I'd give NetBSD a try on my little Mac.

The install was much smoother, but only because I had already gone through a nearly identical process with the OpenBSD install. I can tell you what turned me away from NetBSD in one word: adduser. More specifically the lack of an adduser script. When I, as an almost totally new UNIX sysadmin had to use kludgey vipw to create an account for myself, I was instantly turned off. After using adduser in OpenBSD, vipw seemed very primitive. I never got over that. I tried; I left NetBSD on my system for about a week. But I could never find anything about it that counteracted the vipw incident. I could find no other significant difference between the OpenBSD/mac68k and NetBSD/mac68k. Since I couldn't find any compelling reason to keep NetBSD and since I had two good reasons to go back to OpenBSD, security and an adduser script, I installed OpenBSD 2.2 on my little SE/30 and never looked back.

I ran OpenBSD 2.2 and 2.3 on my SE/30 and at one point the machine was up for 120+ days. It was very stable. Eventually, however the little SE/30 came down because I needed the hard drive for an i386-based machine. The little SE/30 has yet to come back up. It sits faithfully in my closet and awaits its next call to duty. Maybe someday, I'll give it a ring.

When I finally pieced together a spare i386-based machine, OpenBSD seemed a natural to run on it. I'd had excellent luck with it on my Mac. Why change? But I was curious about FreeBSD, so I hit the website, downloaded the disk images and set about installing it. Once again, I had problems. The install procedure seemed overly convoluted and complex. When it came time to FTP the tar files onto my system, I had big-time problems. I later found out this was an issue with my ISP, but that's a different story. When I got the system installed and running, it worked. It seemed pretty similar to OpenBSD. I do not specifically recall what version of FreeBSD I installed, nor do I specifically recall it not having an adduser script. My assumption is that since I don't specifically recall it not having an adduser script, it probably did have an adduser script, or something similar. I do recall not being able to get XWindows working. At this point, I don't recall any error messages or symptoms. I do recall subscribing to a FreeBSD list and being inundated with messages. I unsubscribed rather quickly and similarly quickly FreeBSD was removed from my system.

I went back to the old standby, OpenBSD. I downloaded the disk images and installed OpenBSD 2.3 on my -386 system. The install was easy and straightforward. Options to set specific device interrupts and so on are available, but the user is not forced to deal with them. The install kernel does a good job of auto-detecting most devices so complexity for the installer is reduced. Once installed, the system came up and ran well. The welcoming e-mail gave some good hints and the man afterboot man page explained a lot of what needed cleaning up and configuring. On this system, I did manage to get X working, but was never able to get my serial mouse to work. I eventually got a PS/2 mouse and was able to get both X and my mouse working. I compiled several ports and the system just worked. It was smooth, stable and usable.

From my perspective here are some things that differentiate NetBSD, OpenBSD and FreeBSD.

  • Size: The NetBSD group is fairly large. The FreeBSD group is quite large. The OpenBSD group is much smaller than the other two.
    Ports: The NetBSD group has packages, maybe 500-750 total. The FreeBSD group has nearly 2,200 ports. The OpenBSD group has a fairly small number of ports, I'd guess around 500.
  • Documentation: The NetBSD group has a good website with a lot of online documentation available to answer installation and configuration questions. The FreeBSD website also seems to have a lot of online docs and FAQs. The OpenBSD group used to have virtually nothing worthwhile on their website regarding installation and configuration assistance. Recent efforts have improved this situation dramatically.
  • Platforms: The NetBSD group has a port going for darn near any computer system you can name. The FreeBSD group currently supports only i386 to my knowledge, though I have heard rumors of a port to the Alpha architecture. OpenBSD supports more architectures than FreeBSD and fewer than NetBSD.
  • The last thing I'll mention is people. The NetBSD group has great people. When I was asking questions on port-mac68k@netbsd.org, I got great responses from friendly people who were very patient. I cannot tell if this is specifically a port-mac68k thing or if it reflects the entire project in general, but my feeling is it's probably the whole project. FreeBSD I can't comment on, because I've never asked a question on their list servers. OpenBSD has very knowledgeable people, but some are also very opinionated and very loud. If you ask the wrong question on the wrong day, you may get ignored. That's the best case. Worst case, people will jump down your throat and make you feel knee-high to a grasshopper and about as intelligent as your average bowling ball. On the other hand, I have asked questions on the OpenBSD lists and gotten a polite, accurate response within minutes. My point is, you sort of take your chances with list server support on OpenBSD.

So why do I use OpenBSD? My main reason is of course its security and correctness of code. I just feel better running a system that I know has been, and continues to be, audited for security and code correctness. Another reason is performance. OpenBSD has always performed well for me. It has installed easily and it has run reliably once it was installed and configured. Still another reason is familiarity. OpenBSD was what I started with in the open source movement. I'm more comfortable with it and the way it does things than I am with either NetBSD or FreeBSD. Does that mean I will never run anything but OpenBSD? No. I haven't tried NetBSD nor FreeBSD for a few releases and it's about time I gave them a look again once I free up some hardware. If NetBSD or FreeBSD offers something OpenBSD doesn't, one of the two may well become my OS of choice, but until that happens it's OpenBSD for me.

Rodney Hopkins, rhopkins@sunflower.com