Your browser doesn't seem to support CSS, which this page uses for all styling. Don't be surprised if it looks kinda boring.

[Jump to nav]

Why do I run BSD?

It Just Works. When I install the system, a set group of pieces are there. Period. When I go through the upgrade process, it works. When I install an addon package, it works.

It supports practically every piece of hardware I've thrown at it in close to a decade of use. And that support Just Works, it doesn't flake out or fail from one version to another.

I can choose whether to stick with tried and tested release versions, to track the -STABLE branch, to track the -CURRENT branch... however close to the edge I want to live. And even the bleedingest edge usually works just fine. I can take a system that hasn't been touched in 3 years, and bring it up to date with minimal pain.

When a problem comes up, whether it's security or stability or performance or even just aesthetics, it gets fixed. And because of the development methodology, I can get those fixes later that same evening. All the time. When a new feature gets added, I can grab it right now, not wait a week or a month or 6 months until the next release. I can see, whizzing by in my email, every change as it's made. Or, when something breaks, I can fix it myself, and be able to send the fix right off to somebody who can get it incorporated into the system right away. I've done it before, I'll do it again, and so have thousands of other people.

It's designed to all fit together. Not just munged after-the-fact to go together OK, but designed from the ground up to be a single coherent system. And when something doesn't fit, it's a bug to be fixed, not just "part of the game".

It's had quirks. It's had vagaries. It's had out-and-out bugs. It's had bizarreness. It's had inexplicable behavior. It's given me misleading error messages. Sometimes, it out-and-out breaks things that worked yesterday. And all those will happen again in the future. But, every time, somebody goes right ahead and notices, and discusses, and fixes it. I read the mailing lists, and I see these things go by. I see the problem brought up, I see the people who know the area discussing it, I see solutions proposed and discarded and tested and agreed upon, and I see them committed into the main repository. And usually by the time I see it happen, I can already get my hands on it.

It's just a level of consistency and transparency and usability lightyears beyond anything else I've seen. Its development path is aimed at technical merit and correct solutions, not just sexy features and workable hacks. And I think that's the only way to be sustainable long-term.

Why should you run BSD?

Well, I don't know. Does what you have now meet your needs? Then you probably don't have an urgent need to change anything.

There're plenty of essays and rants on there about why X works better than Y, for any values of X and Y. I don't want to write another one. If and when you do get time or inclination or resources to try BSD, I want this essay to help you understand why some of those differences are there, and what the result of those differences is.

More info

All the BSD's sites (FreeBSD, NetBSD, and OpenBSD) have extensive documentation available on their systems. Because the base system is integrated, all things dealing with it can be authoritatively documented in a single place. They describe the strengths and weaknesses of the individual systems, how to install them, how to upgrade them, how to admin them... Everything you need.

In the FreeBSD docs in particular, the article on Explaining BSD is similar to this essay, in that it describes BSD and its historical context. There's all kinds of documentation, from introductory documents describing the basics of FreeBSD and Unix-type systems, to detailed descriptions of the inner workings of the kernel, and everything in between. Scroll down the page.

And, of course, the FreeBSD Handbook, and the FreeBSD FAQ are both stuffed with information you never even knew you needed. Don't leave home without it.

The BSD's also all have mailing lists and newsgroups available for asking questions. They're usually very responsive, and full of people who have gone through the same learning process you'd be going through. See the individual sites for further information.

The End

It can be tough trying to figure out BSD when you're used to Linux, because so many basic differences can trip you up. Even though both systems are remarkably similar due to their Unix heritage, the development and implementation strategies vary wildly. I hope I've helped give you a better idea of how the BSD systems work and are put together.

Please feel free to email me if there's something in here you don't understand or think you can improve on; it's an eternal work-in-progress, like everything else in the world.

Computers are fun. Enjoy yourself.


I've also added another page onto the end, containing some responses to criticisms that have been leveled against this essay.

  1. Intro
  2. Dramatis Personae
  3. Design :: The Base System
  4. Design :: The Ports Tree
  5. Technical :: Releases
  6. Technical :: Upgrading
  7. Technical :: Ports
  8. Philosophy
  9. Myths
  10. Conclusion
  11. Responses