Oct 2, 2011

NetBSD: Designed to Fail

While FreeBSD and Linux are hard to shake, I gave NetBSD a glance recently and found some serious problems that not only made me secure in my choice to stay with FreeBSD and Linux, but also compelled me to write this mini-review of NetBSD.

I'm a Unix guy and have been since the mid-Nineties, when Linux was taking off and BSD was shaking off its lawsuits. I currently use FreeBSD on our servers in our local library system and we have Linux desktops light end-use, and I use a highly-tweaked FreeBSD installation at home.

Every few years I feel I owe it to myself to do a high-level reevaluation of my unices of choice and see if the market hasn't shifted to produce something better for what I do so that our library can serve its users better.

For serious unix system administrators, FreeBSD has the best uptime, period. It has the longest average uptime for both personal and server usage, the longest uptime between urgent patches, and the least amount of kernel panics. It's also hard enough that it can handle the most amounts of data per system memory and per clock-cycle, and also happens to handle the data most efficiently against performance-per-watt.

When I went to check NetBSD's numbers, however, I found that it had the worst placements in these stats or, worse, no place at all—meaning that no one was using it for serving.

Digging deeper, I started looking at hardware support, specifically x64, multicore, and large memory installation support. And after checking NetBSD's hardware support page, it became clear why it was so absent on best-of benchmarks: NetBSD's hardware support is a mismanaged nightmare.

For instance, there are eight tier-I hardware platforms, meaning that each gets high-priority attention during development and testing. That means that ARM evaluation boards get the same amount of priority that high-end x64 servers and workstations do. Which, I don't think I have to point out, is complete nonsense.

There are only three platforms that deserve tier-I support, and those are x64, x86, and Xen, which is simply x64 and x86 for virtual platforms. ARM is anything but high-end and can't really support full operating systems or their services, and MIPS, POWER, and SPARC are all has-been serving platforms that have been dying for well over a decade.

Intel's x64 is it as far as serious computing goes nowadays and into the foreseeable future; x86 is important because of its installed user-base that's not likely to fade any time soon. Giving tier-I priority to anything else is sheer insanity, especially when you're dealing with a bunch of unpaid volunteers.

By contrast, there are 49 ports with tier-II status. While I would argue that five of the eight tier-I ports should be tier-II priority, having so many tier-II ports also belies a serious mismanagement of project priorities. All of them are obscure, and many of them are downright obsolete and ought to be made tier-III or just dropped entirely.

For example, the BeBox is a tier-II platform? Really? The BeBox ran dual 66 MHz PowerPC 603 chips, later upgraded to 133 MHz. At the time this was novel but fell short of being a big deal; 14 years later, it's at best a footnote. But not for NetBSD. It's tier-II support status! Man the decks! Compile the kernel! We've got to get this support for all 1,800 BeBoxes that were ever shipped! Go go go!

As a system admin whose time is valuable, I have no patience for NetBSD unless it gets serious about what's important. It's almost like NetBSD is designed for failure. And this isn't even touching on some of its other serious. For instance, NetBSD 6.1 is over a year late.

When Matt Thomas and company get their heads together, they might leave the world of hobbyists and people like me will adopt their toy-like operating system.

In the meantime, FreeBSD and Linux are it for me and my library's IT department and NetBSD is relegated to the scrap-heap. I urge other system administrators and end-users to, at best, try it out under virtualization. NetBSD just doesn't belong on anyone's serious hardware deployment right now. NetBSD is designed to fail.


  1. Isn't the POINT of NetBSD that it supports all those architectures? Not everyone has a rack full of modern servers and runs a bunch of web servers. Some people do "oddball" things on "oddball" hardware. NetBSD is directed towards those folks.

    I ran it on a student computing cluster at Caltech in the mid-90s, and sure, I wouldn't do that today. But when we did a research project involving designing a new MIPS-compatible processor, guess what? There comes NetBSD to the rescue. When I was experimenting with an old VAX.. NetBSD...

    NetBSD is great for that kind of stuff and my guess is that the unpaid volunteers of NetBSD are also interested in precisely that kind of stuff. Not that strange after all, and certainly not useless!

  2. But in your previous article you recommended
    NetBSD as an alternative to OpenBSD?

  3. Just as Anonymous #1 said, the point of NetBSD is to run on older hardware. Got 9-track tapes? NetBSD is perfectly at home with them. Have an old DEC Alpha-based box? No problem.

    I recently used NetBSD to convert a bunch of QIC-02 tapes written in the mid 80s.

    A lot of our modern history is still buried on old machines and media.

    Heck, a lot of systems using NetBSD can't even display graphics.

  4. Homo Baggins, that's the problem with people who are trolls. You can't tell when they are being serious and when they are being trolls. He says he has $100,000 dollars to donate to netbsd.

  5. Hey, library tech support pays big money.. I see librarians racing sports cars all the time. I imaging the that they might pay the tech support a good chunk less but still well into the 6 figure range.

    ok librarians don't get paid jack, but being tech support for a library seems like a pretty chill retirement gig.

  6. I agree with most of your conclusions. I cannot fathom why any operating system would seek to run on something like the 68k Next boxes, or the sun-3 or on any of the other long-dead platforms that persist only in museums and landfills. Yet that is what they are doing.

    I'm not sure what the goals of the NetBSD project are other than to have an OS that they can claim runs on as many different platforms as possible. If that is their goal, then they should rethink it because that achievement does nothing to provide value to anyone, including the developers themselves.

    I do disagree when it comes to ARM and other viable embedded architectures. My phone is running Android, which is a tweaked version of Linux. They world is not comprised of servers and desktops alone. Embedded devices are at least as important, and are growing more important every day. This is one area where NetBSD might have the potential to shine. But odds are they'll piss away the opportunity.

    The NetBSD project should throw all of their effort and attention to making the best OS they can for the extant architectures, including those used in embedded devices, and abandon the dead hardware.

    In truth I think this will happen on its own simply because no one will be willing to support these systems. I once fired up NetBSD 1.3 on a Quadra 700 that I found sitting out next to a dumpter, just to see what it would do. It worked.....SLOWLY. There is no value in trying to run NetBSD on such a system, even among die hard mac fanboys.

    To be fair, NetBSD is a volunteer effort, a labor of love, and it is not place to tell anyone else how they should spend their free time. If someone truly enjoys writing kernel code for ancient hardware then that is their right. However, if someone is doing this with a purpose in mind beyond mere enjoyment, then they are truly wasting their time.

  7. Troll Hunter9/24/12, 7:19 AM

    The fundamental argument is as spurious as saying, "I cannot take Dulux(R) white emulsion seriously, because it can be applied to so many different surfaces."

    As a troll, I presume that you restrict yourself to sitting under only one specific type of bridge, and eating only one particular breed of goat!!!

  8. This whole article is biased.

  9. Based only on the amount of hardware platforms you claim that NetBSD is “Designed To Fail”? The BSDs, as I've always understood them, break down as follows. FreeBSD is focused solely on very high performance on common commodity hardware, OpenBSD is the fanatical security BSD, DragonflyBSD is focused on distributed computing (the HAMMER filesystem is fascinating), and NetBSD is the ultra-portable release. So, shock, it supports a very large amount of hardware. That being said, since the 5.0 release the NetBSD people have seriously revamped the kernel for scalability. In a range of benchmarks its comparable to Linux and FreeBSD while in previous releases it couldn't scale as well. NetBSD 6.0 almost certainly can scale quite well. NASA uses it in various capacities. Is it a very widely supported server platform? Unfortunately, no, but it could be. There are no technical barriers. Since release 5 it can scale up to very large systems with lots of cores quite well. Past releases had a single giant lock and couldn't scale effectively beyond two cores. It has a modern 64-bit journaling filesystem, volume management, and more. NetBSD is however used in the wild. Lots of network equipment run a re-named variant of NetBSD, your wi-fi router may run it. Various (non-smart phone) cell phones have run it including the once popular Sidekick. Universities certainly run it. I think the primary reason it isn't widely used in the enterprise is, of course, support. FreeBSD suffers the same problem though there are sources of support out there. I have used NetBSD in the past and in fact plan on using it again on a future project. It is just as solid, high performing, and ultra stable as FreeBSD. Based on your “review” it doesn't even sound like you installed it. Try it, you may like it.

  10. Support for many architectures makes proper code design, encapsulation, etc imperative because same programming practices that make code portable make it correct. For that reason NetBSD's code could arguably be the best written of any OS. Their TCP/IP implementation, for example, is widely considered /the/ reference implementation.

    If this post is serious, you have not only completely misunderstood the goals and philosophy of the project but also grossly underestimated NetBSDs abilities. That would be completely forgivable except that you're potentially propagating your confusion to others with this post.

    If you'd like NetBSD to offer some hardware support that it's not, you're welcome to contribute to the project.

  11. For what it's worth, I became a NetBSD user because of their support for obscure systems. I'm grateful they exist, or old hardware that is still useful to me wouldn't be. Do I need to be running that old hardware? Not really. But I like it, and I've really enjoyed learning what NetBSD has had to teach me about what goes on under the hood of a unix like operating system. I'm going to start using it on newer commodity hardware as well for this reason.

  12. Me Chinese me play joke me put peepee in your Coke.

  13. "NetBSD doesn't cater to my narrow, Wintel-centric desires for computing, so it must be bad." -- This article in a nutshell