We thought it would be a good idea to help educate our current RootBSD users, and potential users, as to some of the differences between FreeBSD and Linux. We have nothing against Linux at all, we actually like it, however there are very noticeable differences in the two. Without turning this into too much of a religious debate, here are a few points we consider
Let’s start off by looking at, what we believe is, the biggest difference in the two.
First off, Linux itself is a kernel, not an OS! Distributions (Red Hat, Debian, Suse and others) provide the installer and bundle lots of other open source software. There are easily well over 300 different Linux distributions. While this gives you a lot of choices, the existence of so many distributions also makes it difficult to use different distros since they are all a little bit different. Distributions don’t just differ in ease-of install and available programs; they also differ in directory layout, configuration practices, default software bundles, and most importantly the tools and prorcedures for software updates and patches.
FreeBSD is a complete operating system (kernel and userland) with a well-respected heritage grounded in the roots of Unix development. Since both the kernel and the provided utilities are under the control of the same release engineering team, there is less likelihood of library incompatibilities. Security vulnerabilities can also be addressed quickly by the security team. When new utilities or kernel features are added, the user simply needs to read one file, the Release Notes, which is publicly available on the main page of the FreeBSD website.
Now, lets look at performance.
With constant development of both Linux and FreeBSD, performance has come a long way with both. In many applications, a FreeBSD server will use less RAM than a Linux server running the same applications and load. FreeBSD’s network performance is also bar none, as one would expect since BSD networking code has been used by many other vendors including Juniper to make the foundation of their network operating system JUNOS. Companies such as Yahoo!, Qwest, and many others utilize FreeBSD simple because of it’s ability to handle heavy network traffic with high performance and rock solid reliability.
One of the most important issues for an OS today is Security.
FreeBSD supports access control lists (ACLs) and mandatory access control (MAC) modules. The latter is of course accessible only to systems administrators and managers, but it enables small businesses to run networks with fine-grained security measures that apply to subsets of the system exposed to the outside world. UFS V2 has excellent ACL support via extended attributes; you must configure UFS V1 separately if ACLs are a requirement. Both FreeBSD and Linux have very robust packet filtering firewall systems, with FreeBSD’s version including intrusion detection tools.
FreeBSD Ports Collection.
The FreeBSD ports system uses Makefiles laid out in a directory hierarchy so software can be built, installed and uninstalled with the make command. When installing an application, very little (if any) user intervention is required after issuing a beginning command such as make install or make install clean in the ports directory of the desired application. In most cases the software is automatically downloaded from the Internet, patched and configured if necessary, then compiled, installed and registered in the package database. If the new port has needed dependencies on other applications or libraries, these are installed beforehand automatically. This gives many benefits in being able to easily install software and also customize it as needed.
Most ports are already configured with default options which have been deemed generally appropriate for most users. However, these configuration options can sometimes be changed with the make config command before installation or through an ncurses interface allowing the user to graphically select the desired options.
Each port (or software package) is maintained by an individual person called a port maintainer who is responsible for staying current with the latest software developments. Anyone is welcome to become a port maintainer by contributing their favorite piece of software to the collection, currently there are over 20,000 ports.
In summary, many users find that the FreeBSD operating system is the best Unix OS for a server environment since it is one centrally managed project with consistency through all aspects of the kernel and userland.