FreeBSD Advocacy Project
As the BSD projects (DragonFlyBSD, 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 four 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 omission or error on this page, please let the maintainer, Tom Rhodes <[email protected]> know.
Index
- *BSD has a closed development model, it's more ``Cathedral'' than ``Bazaar''
- You can't make your own distributions or derivative works of *BSD
- *BSD makes a great server, but a poor desktop
- The *BSD codebase is old, outdated, and dying
- The *BSD projects are at war with one another, splinter groups form each week
- You can't cluster *BSD systems (parallel computing)
- There's no commercial support for *BSD
- There are no applications for *BSD
- *BSD is better than (some other system)
- (some other system) is better than *BSD
Myths
*BSD has a closed development model, it's more ``Cathedral'' than ``Bazaar''
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 characterized as closed.
The implicit value judgment 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;
All the *BSD projects: The current, bleeding edge source code for FreeBSD, NetBSD, and OpenBSD 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 daily and if Theo thinks they are good enough, he uploads them to the mirrors.
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.
All the *BSD Projects: make a CVS tree available for anyone to browse and download, 24 hours a day. The tree can be retrieved using Anonymous CVS, CVSup, CVSupit, 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: Nik ([email protected]) is a case in point. After making several submissions to the FreeBSD Documentation Project and web pages, he was offered ``commit privs'' so that he did not have to keep bothering other committers to commit the changes. He never had to ask for them, they were freely given.
You cannot make your own distributions or derivative works of *BSD
You can. You just need to say in the documentation and source files where the code is derived from. A bunch of derivative projects exists:
DragonflyBSD started as a code fork from FreeBSD 4.X, but it has since its own user community and development goals.
TrustedBSD provides a set of trusted operating system extensions to the FreeBSD operating system, targeting the Common Criteria for Information Technology Security Evaluation (CC). This project is still under development, and much of the code is destined to make its way back into the base FreeBSD operating system, but the development takes place separately.
Hybrid Cluster is a web cluster, based on FreeBSD and ZFS, which provides data redundancy and automated load balancing of standard LAMP websites and applications.
Frenzy is another live-CD distribution, but customized for administering tasks. It contains software for hardware tests, file system checks, security checks, network setup and analysis.
PicoBSD is a tailored distribution of FreeBSD that fits on a floppy. It is great for turning diskless 386 PC into a router or a network print server. It is a part of the FreeBSD source tree, see /usr/src/release/picobsd.
NanoBSD is another project to produce reduced versions of FreeBSD to put it on a Compact Flash card or other mass storage. It is also a part of the FreeBSD source tree, see /usr/src/tools/tools/nanobsd.
TinyBSD is a set of tools made up of shell scripts designed to allow easy development of Embedded Systems based on FreeBSD 5.x and 6.x.
ThinBSD is a small FreeBSD based boot image that allows a standard PC to act as a diskless thin client for a Microsoft Windows RDP server or an X terminal. It is entirely configured via DHCP.
PC-BSD is a desktop oriented FreeBSD derivative. It is intended to be easy to install and well-supported by its community.
DesktopBSD is another FreeBSD based operating system customized for desktop usability.
Gentoo/FreeBSD is an effort by the Gentoo Project to port their complete administration facilities to take advantage of the reliable FreeBSD kernel and userland. This project is purely incomplete and experimental.
m0n0wall is a FreeBSD based firewall system that has many of the features of expensive firewalls like web interface, reset to factory defaults, stateful packet filtering, NAT/PAT redirection, DHCP client and server, caching DNS forwarder and more.
pfSense is an open source firewall derived from the m0n0wall firewall system with several different goals and features, such as OpenBSD's Packet Filter (PF), FreeBSD 6.1, ALTQ support for excellent packet queuing and finally an integrated package management system for extending the environment with new features.
The Whistle Interjet: A ``network appliance'' that acts as a router, web server, mailhost (and other functionality), and 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 proprietary that they can stay in business).
Similarly to DragonflyBSD, OpenBSD was not a standalone project, it started as a spinoff from the NetBSD project, and has since evolved its own distinctive approach.
*BSD makes a great server, but a poor (UNIX®) desktop
*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, Firefox, windowmanagers) as Linux. And ``office'' applications such as OpenOffice suite work under *BSD too.
The BSD codebase is old, outdated, and dying
While the BSD codebase may be more than 20 years old, it is neither outdated nor dying. Many professional users like the stability that years of testing has provided FreeBSD.
Technological enhancements continue to be added to *BSD, including, but not limited to;
SMP: Symmetric 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 10,000) simultaneous FTP connections without falling over.
Architecture ports: FreeBSD supports seven main architectures currently: Alpha, AMD64, i386, Itanium, PC-98, PowerPC and UltraSPARC. There are also ongoing works to port the project for further architectures. See the Supported Platforms page for more information.
MAC Framework: FreeBSD supports Mandatory Access Control, a feature usually found in trusted operating systems available for high prices. FreeBSD gives you advanced security for free! The TrustedBSD Project provides further trusted operating system extensions.
GEOM classess: GEOM is a modular disk framework that lets you concatenate, mirror, stripe, or encrypt disks. It is rich in functionality and keeps your data safe.
The *BSD projects are at war with one another, splinter groups form each week
No. While occasional advocacy may get a touch heated, the *BSD flavors 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.
The FreeBSD and NetBSD projects separated more than ten years ago. OpenBSD and DragonflyBSD are the only new BSD projects to split off in the last ten years.
The *BSD projects cooperate in other areas as well. For example, the monthly publication DaemonNews is a collaborative effort by members of all four projects.
You can't cluster *BSD systems (parallel computing)
The following URLs should disprove this;
- http://www.epm.ornl.gov/pvm/ The Parallel Virtual Machine is nothing more than a software package that makes setting up a Cluster simple. The source code is freely available, and will run on FreeBSD without much problem.
- http://www.scl.ameslab.gov/Projects/old/ClusterCookbook/
- http://people.freebsd.org/~brooks/papers/bsdcon2003/fbsdcluster/ Brooks Davis's paper about the implementation of a FreeBSD cluster with more than 300 CPU's
- http://www.onlamp.com/pub/a/bsd/2004/07/01/freesbie.html Building a Web Cluster with FreeSBIE (a FreeBSD derivative live-CD system)
- http://www.openbsd.org/faq/pf/carp.html OpenBSD's Common Address Redundancy Protocol (CARP) to build redundant clusters at the level of the firewall
- http://www.countersiege.com/doc/pfsync-carp A good explanation of CARP
- http://pf4freebsd.love2party.net/carp.html OpenBSD's CARP ported to FreeBSD
Note, that freebsd-cluster mailing list is available for further discussion about clustering of FreeBSD.
There's no commercial support for *BSD
FreeBSD: The FreeBSD Commercial Vendors Page lists companies that offer commercial support for FreeBSD.
The FreeBSD Mall also offer commercial support, along with shirts, hats, books, software, and promotional items.
For training, one might try BSDMall.com, but they sell other items too, like shirts, hats, books and software! Definitely worth a look.
OpenBSD: The OpenBSD Commercial Consulting Page lists companies that offer commercial support for OpenBSD.
There are no applications for *BSD
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 more than 16,000 applications ready to download and install in the FreeBSD ports collection. On i386 and AMD64, the Linux emulation layer will also run the vast majority of Linux applications. On the AMD64 and Itanium architectures there is a compatibility layer to run 32-bit FreeBSD binaries.
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 more than 3700 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 (Acrobat, StarOffice, Mathematica, WordPerfect, Quake, Intel ICC compiler, Compaq's Alpha compiler ...) 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 you can also use a native FreeBSD version of Mozilla with a native Java plugin, all compiled conveniently from the ports!
*BSD is better than (insert other system)
This is user opinion only.
(insert some other system) is better than *BSD
This is user opinion only.
Contributors
Members of the FreeBSD, NetBSD, and OpenBSD projects have contributed to this page;
Nik Clayton <[email protected]> |
Jordan Hubbard <[email protected]> |
Ian F. Darwin <[email protected]> |
Adrian Filipi-Martin <[email protected]> |
Tom Rhodes <[email protected]> |