As the BSD projects (FreeBSD, NetBSD, and OpenBSD) have grown in size, a number of persistent myths have grown up around them. Some of these are perpetuated by well meaning but misguided individuals, others by people pursuing their own agendas.
This page aims to dispel those myths while remaining as dispassionate as possible.
Note: Throughout this page, ``*BSD'' refers to all three of the BSD Projects. Where a myth or response is specific to a particular project it is indicated as such.
If you are aware of an ommission or error on this page, please let the maintainer, Nik Clayton <nik@FreeBSD.ORG> know.
Eric Raymond wrote an influential paper, ``The Cathedral and the Bazaar'' in which the Linux development model (and the model Eric used for fetchmail) is held up as an example of how to do ``open'' development. By contrast, the model employed by *BSD is often characterised as closed.
The implicit value judgement is that ``bazaar'' (open) is good, and ``cathedral'' (closed) is bad.
If anything, *BSD's development model is probably more akin to the ``bazaar'' that Eric describes than either Linux or fetchmail.
Consider the following;
FreeBSD, OpenBSD: The current, bleeding edge source code for FreeBSD is available for anyone to download from the Internet, 24 hours a day. You don't need to wait for someone else to roll a release.
FreeBSD, NetBSD: An installable snapshot of the current progress is made every 24 hours. These snapshots can be installed exactly like an ordinary release, and do not require installation over an existing system.
OpenBSD: Installable snapshots are generated as and when people request on the OpenBSD mailing lists.
Contrast this with Linux, where new kernel distributions are made available on an ad-hoc basis, and where the frequency of each Linux distribution release is at the whim of the individual vendor.
There's none of the Linux fanfare every time a new kernel is released, simply because for most *BSD users it is an every day event.
All the *BSD Projects use CVS to maintain their source code.
FreeBSD, OpenBSD: The CVS tree is available for anyone to browse and download, 24 hours a day. The tree can be retrieved using Anonymous CVS, CVSup, CTM (by e-mail), or through simple FTP.
Anyone can submit patches, bug reports, documentation, and other contributions. They can do this by using the send-pr program installed on their *BSD system, or by using a web based interface.
Pointers to this system litter the documentation.
Not everyone can commit code changes to the *BSD code. You need to be a committer first. Typically, people are offered ``commit privs'' after they have made a few well-thought out submissions to the project using send-pr or similar.
This is identical to the Linux mechanism. Only one person is (notionally) allowed to change the Kernel, Linus. But specific areas (such as the networking code) are delegated to other people.
Aside: I (nik@FreeBSD.ORG) am a case in point. After making several submissions to the FreeBSD Documentation Project and web pages, I was offered ``commit privs'' so that I did not have to keep bothering other committers to commit my changes. I didn't have to ask for them, they were freely given.
There's a core team who have overall architectual control over where the *BSD project is heading. Just as Linus has overall control and final say over the Linux kernel.
Also, see this article written by Jordan Hubbard in Performance Computing, titled What is FreeBSD?
You can. You just need to say in the documentation and source files where the code is derived from.
For example, PicoBSD is a tailored distribution of FreeBSD that fits on a floppy. It's great for turning a diskless 386 PC into a router or a network print server.
The Whistle Interjet is a ``network appliance'' that acts as a router, web server, mailhost (and other functionality), can can be configured using a web browser. The underlying operating system is FreeBSD, and Whistle have contributed many of their code enhancements back to the FreeBSD project (while keeping enough of them proprietry that they can stay in business).
The OpenBSD project started as a spinoff from the NetBSD project, and has since evolved its own distinctive approach.
*BSD makes a great server. It also makes a great desktop. Many of the requirements for a server (responsiveness under load, stability, effective use of system resources) are the same requirements as for a desktop machine.
*BSD has access to the same desktop tools (KDE, GNOME, windowmanagers) as Linux. And ``office'' applications such as WordPerfect or StarOffice work under BSD's Linux emulation layer.
While the BSD codebase may be more than 20 years old, it is neither outdated or dieing.
Technological enhancements continue to be added to *BSD, including, but not limited to;
SMP: Symetric Multi-Processing, making use of systems with multiple CPUs.
SoftUpdates: Makes the BSD filesystem at least as fast as the Linux filesystem, without needing to enable asynchronous writes, with their associated risk.
VM system: The VM (Virtual Memory) subsystem continues to be refined. The merged VM/cache design helps systems like wcarchive.cdrom.com juggle thousands (literally, more than 3,600) TCP/IP connections without falling over.
Architecture ports: Ports of *BSD are under way or already exist on many other architectures, including SPARC, Alpha, and PPC. NetBSD and OpenBSD both have more architecture ports than FreeBSD, which is, at the time of writing, running on i386, Alpha and SPARC.
No. While occasional advocacy may get a touch heated, the *BSD flavours continue to work with one another. FreeBSD's Alpha port was initially heavily based on the work done by the NetBSD team. Both NetBSD and OpenBSD used the FreeBSD ports collection to bootstrap their own port sets. FreeBSD and NetBSD both integrate security fixes first discovered by the OpenBSD team.
This cooperation extends to the commercial company BSDi, who graciously donated their DOS emulation layer to FreeBSD.
The FreeBSD and NetBSD projects seperated more than five years ago. OpenBSD is the only new BSD project to split off in the last five years.
The *BSD projects cooperate in other areas as well. For example, the monthly publication DaemonNews is a collaborative effort by members of all three projects.
The following URLs all disprove this;
FreeBSD: The FreeBSD Commercial Consulting Page lists companies that offer commercial support for FreeBSD. The FreeBSD Mall also offer commercial support.
OpenBSD: The OpenBSD Commercial Consulting Page lists companies that offer commercial support for OpenBSD.
The free software community started running on predominantly BSD systems(SunOS and similar). *BSD users can generally compile software written for these systems without needing to make any changes.
In addition, each *BSD project uses a ``ports'' system to make the building of ported software much easier.
FreeBSD: There are currently slightly more than 1,800 applications ready to download and install in the FreeBSD ports collection. The Linux emulation layer will also run the vast majority of i386 Linux applications.
NetBSD: The Linux emulation layer will run the vast majority of i386 Linux applications, and the majority of SunOS4 applications can be run on a SPARCStation.
OpenBSD: There are currently slightly more than 400 applications ready to download and install in the OpenBSD ports collection. The Linux emulation layer will also run the vast majority of i386 Linux applications, and the majority of SunOS4 applications can be run on a SPARCStation.
Both NetBSD and OpenBSD are able to use applications in FreeBSD's ports collection with minimal effort. Their lower number of ported applications reflects this.
It is true that most companies when porting to PC Unix will choose Linux first. Fortunately, *BSD's Linux emulation layer will run these programs (Mathematica, WordPerfect, StarOffice, Quake, Doom, ...) with few, if any, problems.
As a historical note, the first version of Netscape Navigator that ran on FreeBSD with Java support was the Linux version. Now, of course, Netscape have produced a FreeBSD native binary (and have done for some time).
FreeBSD: Until recently (September 1998) FreeBSD used the a.out format by default. There were no pressing reasons to switch earlier. In particular, FreeBSD did not (and does not) have the problems building shared libraries that spurred the Linux conversion from a.out to ELF. As of FreeBSD version 3.0, FreeBSD uses the ELF executable format.
Members of the FreeBSD, NetBSD, and OpenBSD projects have contributed to this page;
|Nik Clayton <nik@FreeBSD.ORG>||Jordan Hubbard <jkh@FreeBSD.ORG>|
|Ian F. Darwin <ian@DarwinSys.com>||Adrian Filipi-Martin <email@example.com>|