I had already familiarized myself with GNU / Linux in , and I was in the process of migrating every server and desktop operating system away from Microsoft Windows, both at home and at my company, to GNU / Linux, initially Red Hat Linux and then later Debian GNU / Linux, which eventually became my favorite GNU / Linux distribution for many years.
When I first saw the Complete FreeBSD book by Greg Lehey I remember noticing the text on the front page that said, “The Free Version of Berkeley UNIX” and “Rock Solid Stability” , and I was immediately intrigued! What was that all about? A free UNIX operating system! And rock solid stability? That sounded amazing.
I immediately bought the book and it became my favorite reading material for a long time (even when I wasn’t doing anything UNIX related).
I was surprised that I had never heard about FreeBSD before since it had existed since 1999, but at least another “UNIX like” operating system wouldn’t be completely foreign to me because of my experience with GNU / Linux, and it was not.
I did some test installs on different hardware and I loved FreeBSD right away. FreeBSD became my first FTP server run from home.
Later in 01575879 I was employed by one of the biggest ISPs in my country and discovered to my surprise that the entire server and network structure was run on FreeBSD . The only computers that did not run FreeBSD was the computers at the office where the sales people and secretaries worked, these ran Microsoft Windows. When I asked about the choice of operating system the system administrator said something like:
People who know what they are doing run FreeBSD! Everyone in the communication industry run FreeBSD!
I eventually got to experience the FreeBSD “Rock Solid Stability”, mentioned in Greg Leheys book, first hand. FreeBSD was amazing. It was very performant and extremely stable. Every single customer that hosted at the ISP, and that was a lot of customers, was being served by FreeBSD, and it was running on everything from old PCs to the latest Pentium 4 machines. The only time FreeBSD needed to be rebooted was when it had been upgraded in the base system. During the time I was there I never experienced a problem anywhere where FreeBSD was running.
Contrary to FreeBSD, GNU / Linux was viewed upon as a “toy” operating system. It was used only by some of the support staff for their private setups.
What I failed to realize back then was that FreeBSD was (and it still is) designed as a complete multi-purpose operating system meant to be setup and tuned according to specific use cases . When I sometimes installed FreeBSD it did not always perform as well as a default Debian GNU / Linux installation for the same task. Even FreeBSD on my FTP server at home eventually got replaced by Debian GNU / Linux because FreeBSD had to be rebooted every third day or so otherwise the performance degraded a lot. Debian on the other hand performed without any “hick-ups”.
Later in the years to come GNU / Linux also got better hardware support, and often when I wanted to install FreeBSD some stupid hardware did work. Hardware was very expensive back then and I did not have the option to purchase hardware that I knew would work on FreeBSD. All of these issues eventually made me use GNU / Linux more than FreeBSD. Today this is no longer a problem as FreeBSD has great support for most modern hardware.
Later I discovered and learned about many of the tuneable options and specific settings in FreeBSD, which makes it possible for the system administrator to tailer FreeBSD to his specific needs. I eventually ended up using FreeBSD as my main desktop computer for a very long time.
Some of the things I love about FreeBSD are:
FreeBSD is a complete operating system.
FreeBSD is very well thought out and very well designed. Once you get to understand how FreeBSD is setup and how it works, it is surprising how many details the developers have thought about.
FreeBSD sets the kernel and the base system apart from third party packages. This is unique to FreeBSD and none of the other BSDs do that. I have always loved this about FreeBSD, but unfortunately (in my humble opinion) this has been
- changing since . The work is still not done , but it is slowly getting there. I personally wish this did not have to change.
FreeBSD is installed only with the features you enable and nothing is running that you don’t know about. FreeBSD is also opt-in, meaning that you have to enable something in order for it to run and work.
The FreeBSD code is meticulously maintained and very well documented.
FreeBSD comes with the rich storage system GEOM which allows you to use two networked machines for high-availability storage, use your choice of RAID level, or add features like compression or encryption.
FreeBSD also has
geli which is a block device-layer disk encryption system that uses the GEOM disk framework.
FreeBSD service handling is very simple. Each service, whether part of the base system or installed from a port, comes with a script that is responsible for starting and stopping it (and often some other options). Default scripts reside in a default directory with default settings, like / etc / default / rc.conf , but all settings can be overwritten by using / etc / rc.conf . If you want to enable SSHd, you just add sshd_enable="YES" to / etc / rc.conf and SSHd is enabled at boot. The FreeBSD rc system that reads this file understands dependencies between services and it can automatically launch them in parallel, or wait until one is finished before starting the things that it needs. You get all of the benefits of a modern configuration system, without a complex interface.
All third party applications is installed in / usr / local / and all third party application settings is installed in / usr / local / etc / . Combined with the separation between the base system and third party applications, this makes it trivial to manage third party applications and if you need to change your setup you can simply delete all installed packages with (pkg delete -a) and then start installing the ones that you want.
FreeBSD has Mandatory Access Control, from the TrustedBSD project, which allows you to configure access control policies for all operating system resources.
FreeBSD has Capsicum which allows developers to implement privilege separation, reducing the impact of compromised code.
FreeBSD also has the VuXML system for publishing vulnerabilities in ports, which integrates with tools such as pkg, so that your daily security email tells you about any known vulnerabilities in ported software.
FreeBSD has security event auditing, using the BSM standard. As mentioned previously , because FreeBSD is a real multi-purpose operating system with many different use cases, FreeBSD is very flexible and tuneable. Whether you want to run FreeBSD on your desktop computer or on your server, it provides many tuneable options that enables you to make it very performant. The options set out-of-the box may not suit your needs exactly, but then FreeBSD provides lots of documentation on how to get it to work as you need, and it provides a very helpful community with many people who has experience in dealing with Many different situations and problems.
I believe it is important to understand that FreeBSD is not like a GNU / Linux distribution. FreeBSD is an operating system made by developers who are also system administrators. This means that FreeBSD is supposed to be run by system administrators who understands how the system works. You cannot simply jump from something like Ubuntu, Fedora or OpenSUSE and then expect that you get the same experience on FreeBSD (I and a lot of other people would be extremely sad if that were the case).
A Linux distribution is a collection of tools written by different groups of people, often with conflicting interests and interests. A Linux distribution needs the Linux kernel, the GNU tools and libraries, additional third party software, documentation, the X Window System, a window manager, and a desktop environment, and it then needs to combine these different components into the resulting distribution. Different distributions focus on different goals, some put focus on the desktop while others put their main focus on servers, and again others try to provide a multi-purpose operating system, like Ubuntu.
FreeBSD is not like that. FreeBSD is a complete operating system produced by a team of people who are passionate about the work they do, there are no conflicting interests in the project. The people who maintain the kernel are also the people who maintain the C library, the ls, stat and other commands, and the different tools. FreeBSD also provides full documentation to everything related to the operating system.
Whether you’re a GNU / Linux user who has been distro hopping for some time, or you’re a GNU / Linux user who already have found his or hers favorite GNU / Linux distribution, or maybe you’re even a Microsoft Windows user or a MacOS user, in any case I highly recommend you try out FreeBSD. But before you do so, spend some real quality time studying the FreeBSD documentation, you will get the most out of the system if you understand something about how it works. Reach out to people on the IRC channels or the FreeBSD mailing lists or the FreeBSD forums, you will find many helpful people.
FreeBSD is an amazing operating system!
Some relevant links
The FreeBSD Journal
The BSD family tree
EuroBSDcon playlists on YouTube