LWN.net Logo

The state of BSD

November 4, 2004

This article was contributed by Joe 'Zonker' Brockmeier.

Being LWN, we understandably tend to focus on Linux distributions and developments in open source that have are interesting from the Linux perspective. However, Linux distributions aren't the only free OSes worth using. Most LWN readers are probably familiar with the "name brands" of BSD distributions, if not the distributions themselves. This week we thought we'd take a quick look at the status of each of the BSD distributions.

FreeBSD

FreeBSD is probably the most widely-used BSD, though it supports fewer hardware platforms than OpenBSD or NetBSD. The FreeBSD project maintains several development branches. The FreeBSD-STABLE branch represents the production-quality release, while FreeBSD-CURRENT is the version in development that's due to become STABLE. The STABLE release, at this time, is taken from the FreeBSD 4.x series, and new development is mostly being done in the 5.x series.

The 4.x series is available for x86 and Alpha, while the 5.x series adds AMD's x86_64, Intel's Itanium, pc98 and Sparc 64-bit chips to the Tier 1 architectures. Ports for PowerPC and MIPS are in development. According to the FreeBSD website, the 5.3 release should mark the first STABLE release taken from the 5.x tree. 5.3rc2 was released on October 31.

The 5.x release includes a number of interesting features and changes to FreeBSD, including SMPng, Kernel Scheduled Entities (KSE), the UFS2 file system, support for Cardbus and Bluetooth devices, and a move to GCC 3.3.x from GCC 2.95.x. The 4.x release included SMP support, but it was not compiled in the GENERIC kernel by default, and SMPng brings some significant improvements to SMP performance.

NetBSD

NetBSD's main claim to fame is portability and the wide range of hardware platforms supported by the OS. Not to disparage Linux or the other BSD distributions, but NetBSD is the undisputed master of portability, with support for everything from x86 CPUs to DEC VAX computers and the Sony PlayStation2. NetBSD also has wide support for emulating other CPU and hardware platforms, including Linux, FreeBSD, Solaris, SunOS, HPUX, Amiga Unix, IRIX, Ultrix and others. FreeBSD and OpenBSD also support binary emulation for many OSes, though not quite as many.

NetBSD releases are broken into NetBSD-release, NetBSD-current and formal releases. A formal release is an "official" release, while NetBSD-release is the formal release plus bug fixes for the next release. The NetBSD-current release is the cutting-edge, development version of NetBSD. The NetBSD team is pushing towards version 2.0. The fourth release candidate for 2.0 was tagged on October 8 with a final release expected soon. The current NetBSD release is 1.6.2, released on March 1, 2004.

OpenBSD

OpenBSD has a reputation as one of the most secure OSes available, and the main OpenBSD page boasts "Only one remote hole in the default install, in more than 8 years!" The OpenBSD distribution also includes a wide range of cryptographic software and support for cryptography hardware. The OpenBSD team is also active in developing OpenSSH.

The OpenBSD team issues a release roughly every six months. OpenBSD 3.6 was officially released on October 29, with a slew of new features, fixes and support for additional hardware. 3.6 adds SMP support for x86 and AMD 64-bit CPUs, a new Network Time Protocol daemon in the base system, and many bug and security fixes. The new release also includes an improved DHCP client and daemon, StackGhost overflow protection for OpenBSD/sparc, and a new hotplug daemon.

Dragonfly BSD

The new kid on the block, DragonFly BSD, forked off of the FreeBSD 4.x tree. DragonFly BSD 1.0 was released on July 12, 2004. The DragonFly team does not maintain separate stable branch as of yet, and DragonFly runs only on x86 hardware.

The DragonFly BSD team has several goals for the distribution, including a better packaging system, and a different approach to system design:

It is our belief that the correct choice of features and algorithms can yield the potential for excellent scalability, robustness, and debuggability in a number of broad system categories. Not just for SMP or NUMA, but for everything from a single-node UP system to a massively clustered system... The existing BSD cores, including FreeBSD-5, are still primarily based on models which could at best be called 'strained' as they are applied to modern systems. The true innovation has given way to basically just laying on hacks to add features, such as encrypted disks and security layering that in a better environment could be developed at far less cost and with far greater flexibility.

DragonFly has some lofty goals set for its caching, messaging API, and user API, but it may be some time before these goals are realized. The status page shows the relative development of each of DragonFly BSD's main goals.

Readers interested in a history of the BSDs should visit the BSD Family Tree, which details the history of FreeBSD, NetBSD and OpenBSD, with a little about Apple's Mac OS X and Darwin thrown in for good measure.


(Log in to post comments)

NetBSD vs. Linux portability

Posted Nov 4, 2004 3:11 UTC (Thu) by stevenj (guest, #421) [Link]

It's not quite true that NetBSD is the "undisputed master of portability." At least one Linux kernel developer apparently disputes its claim — see this post.

(I haven't bothered to do a careful count, so I don't know who is right.)

NetBSD vs. Linux portability

Posted Nov 4, 2004 3:21 UTC (Thu) by mbp (guest, #2737) [Link]

Well, to some extent it depends on how you count it. Are you going to count broad architectural families. Or are you going to distinguish binary-incompatible variants (x86 vs amd64, and various arm and SH subfamilies.) Are you going to allow for the different models of hardware that are supported - NetBSD supports ia64, but only Linux (I think) can run on the larger machines. Are you going to allow for it being more important to most people to run on currently-available hardware?

We can all agree that both of them are remarkably and admirably portable.

NetBSD vs. Linux portability

Posted Nov 4, 2004 8:01 UTC (Thu) by anabis (guest, #15649) [Link]

It might be enlightening to look at NetBSD's PlayStation2 installation page.

http://www.netbsd.org/Ports/playstation2/

Install step.

* Install PS2 Linux

NetBSD vs. Linux portability

Posted Nov 4, 2004 10:58 UTC (Thu) by Ribbit (guest, #8400) [Link]

And if you look at the top of that page, you'll find the reason:

<Quote>
To boot the kernel, you will require a special boot disc from SONY. The PlayStation 2 can not read CD-R/DVD-Rs. Currently, the only such disc available is the SONY Playstation 2 Linux distribution.
</Quote>

Cannot compare forks to ports

Posted Nov 9, 2004 13:27 UTC (Tue) by hackerb9 (guest, #21928) [Link]

The illustrious Rick Moen pointed me to the Linux User Group HOWTO which he maintains. It lists all of the current architectures and platforms that Linux currently runs on. Comparing that list to the list of NetBSD ports it is now evident that Linux has been ported to more platforms than NetBSD.

One of the problem with this is that it is trying to compare the number of Linux forks to NetBSD ports. Any comparison should focus on either forks or ports.

A fork is a substantial change which is not folded back into the mainline code. For example, ELKS (Linux for the 8086/286) is not actually part of Linux, it is a fork. If a fork isn't constantly patched with the latest improvements from the mainline kernel, it quickly stagnates. Having a lot of forks isn't necessarily something to brag about.

A port on the other hand, is not a separate project. When IBM ported Linux to the S/390 they took the time to do it right and had their changes accepted into Linux. You use same source code to compile a Linux kernel for the S/390 as for the 80386. That's what I call a clean design!

Note that Rick Moen's list showing Linux's portability includes this disclaimer:

Note that some items listed were probably one-time forks, little or not at all maintained since creation.

I'd be interested to know how many of those platforms can actually run from the stock Linux kernel. Probably quite a few, but I doubt it's as many as from a stock NetBSD kernel (at least 40).

Ben

Apple

Posted Nov 4, 2004 4:24 UTC (Thu) by ncm (subscriber, #165) [Link]

Let's not forget Darwin...

Small correction

Posted Nov 5, 2004 5:04 UTC (Fri) by Ross (guest, #4065) [Link]

"NetBSD also has wide support for emulating other CPU and hardware platforms,
including Linux, FreeBSD, Solaris, SunOS, HPUX, Amiga Unix, IRIX, Ultrix and
others."

That would be a list of operating systems, not "CPU and hardware platforms".

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds