Why FreeBSD?

The differences between the major Unix variants (*BSD, Linux, Solaris, OS X, etc.) are subtle. In day to day usage, an experienced Unix admin can comfortably and efficiently work on any of them, with little regard to the specific differences between variants.

But despite the great similarities, the choice of a Unix server operating system can be hugely significant. While I support Linux, Solaris and all the other Unix variants, I have been using FreeBSD for myself, and recommending it to the majority of my clients, for many years now. Why not Linux? Here, in order of importance, are the primary reasons.


Clarity

Choice is good, but with dozens of available major distributions and two competing package formats, one of the problems with Linux is that there are far too many incompatible alternatives. The software and configuration files used in one distribution are often completely different from those available in another.

Linux is, technically speaking, an operating system kernel. Any particular Linux distribution consists of this Linux kernel with other software and packaging on top of the kernel. Even two distributions that are RPM-based (Red Hat and SuSE, for example) typically cannot use the same RPM without difficulty.

FreeBSD, on the other hand, is a complete operating system. The components of this system (kernel, libraries, user programs, booting subsystems, etc.) are a unified piece of software. If you need a program, or technical support, for a particular FreeBSD release, you can find precisely that relatively easily.

The Ports System

Perhaps the biggest advantage of FreeBSD over the others is the FreeBSD Ports system. There are thousands of applications, development tools, and other software packages in the ports system, each of which can be installed on a FreeBSD system with one simple command.

The importance of this point cannot be overstated. With one command, a piece of software, and any dependencies it may have, will be downloaded from a trusted location, built and custom configured for your particular system. One step. No searching or research required, and no incompatibilities to deal with.

Documentation

The FreeBSD documentation is available as a constantly updated, well written web handbook (and on paper as well). The handbook covers each and every aspect of the FreeBSD system in a concise, yet thorough, style.

The documentation manages the delicate balance of being both a definitive resource for an experienced administrator, and a valuable learning guide for a Unix neophyte. It is written in a style that does not presuppose much familiarity with Unix systems, and covers such basic Unix topics as permissions, but also covers advanced topics such as kernel configuration and tuning, security and encrypted disk partitions.

Performance, Reliability and Security

FreeBSD has traditionally excelled with its network, virtual memory and SCSI subsystems. Other features include:

  • Multi-threaded SMP architecture capable of executing the kernel in parallel on multiple processors, a multi-threaded network stack and a multi-threaded virtual memory subsystem.
  • Soft Updates allows improved filesystem performance without sacrificing safety and reliability. Features such as background filesystem checking and file system snapshots are built on the consistency and performance foundations of soft updates.
  • Support for IP Security (IPsec) allows improved security in networks, and support for the next-generation Internet Protocol, IPv6.
  • FreeBSD's GEOM-Based Disk Encryption (GBDE), provides strong cryptographic protection using the GEOM Framework.
  • Vinum implements virtual disk drive management, and can support RAID 0, RAID 1, and RAID 5.
  • Support for access control lists (ACLs) and mandatory access control (MAC) modules.
  • File system snapshots, permitting administrators to take atomic file system snapshots for backup purposes using the free space in the file system, as well as facilitating background fsck, which allows the system to reach multiuser mode without waiting on file system cleanup operations following power outages.
  • Netgraph pluggable network stack allows developers to dynamically and easily extend the network stack through clean layered network abstractions. Netgraph nodes can implement a broad range of new network services, including encapsulation, tunneling, encryption, and performance adaptation.
  • Accept Filters allow connection-intensive applications, such as web servers, to cleanly push part of their functionality into the operating system kernel, improving performance.
  • A merged virtual memory and filesystem buffer cache continuously tunes the amount of memory used for programs and the disk cache. As a result, programs receive both excellent memory management and high performance disk access, and the system administrator is freed from the task of tuning cache sizes.
  • Kernel Queues allow programs to respond more efficiently to a variety of asynchronous events including file and socket IO, improving application and system performance.

Compatibility

Compatibility modules enable FreeBSD to run binary programs built for other operating systems (e.g., Linux, SCO Unix, System V Release 4, etc.). Some run-time libraries (e.g., for Linux) might be required, but you can add them from the Ports collection. There is no noticeable difference in execution speed between a Linux application running on a Linux machine and a Linux application running on a FreeBSD machine of the same speed.

FreeBSD is also a leader in terms of backward compatibility. Upgrades are much easier to handle than is frequently the case with Linux. BSD handles library version upgrades by providing compatibility modules for earlier library versions, so it is possible to run binaries that are many years old with no problems. A number of commercial vendors have FreeBSD 3.x and even 2.x binaries they still sell today because they don't need to change the executables in order to have them run on current versions of FreeBSD.

License

The BSD license allows you to freely modify the code to suit your business purposes. Unlike the GPL, there are no restrictions on how you choose to distribute the resulting software.

Contact Nesbitt & Associates

Please feel free to email or call us (toll free) about your technology issues and needs.
We can help!

or

1-877-886-5379