Why you should migrate everything from Linux to BSD

Published on 2020-01-18. Modified on 2023-10-30.

As an operating system GNU/Linux has become a mess because of the fragmented nature of the project, the bloatware in the kernel, but mainly because of the manipulation by corporate interests. There exist several technical reasons for when a migration from GNU/Linux to BSD make sense, but this article isn't about that, it's an "analyzes" of the current status in Linux-land, and it is an opinionated rant, more than anything else.

Perhaps you are also interested in my follow-up: Why you should migrate everything from Linux to BSD - part 2.

Table of Contents

Introduction

In the past I have always been a favorite of choosing operating system and tools based upon technical merit. However, in today's world of companies like Microsoft, Apple, Google, and many others, compromising user privacy, and conducting controversial activities, I don't believe that to be the right cause of action.

Proprietary operating systems like Microsoft Windows 10, Apple MacOS, and Google Android have become famous for their ill conduct.

I have been a proponent for the open source alternatives, like GNU/Linux and BSD, for a very long time. Not only that, I also believe that the open source alternatives are much better in many technical areas.

I have also always been very much against The typical discussions about BSD vs Linux, and I have always believed that the different open source projects can help each other and cooperate, and that end-users should only debate such issues from a technical stand point rather than personal preference.

Whenever it has been possible, I have recommended people, both privately and professionally, to change the operating systems they use to open source alternatives, and when people have been receptive to my advocacy I have helped them migrate from Microsoft Windows on their workstations to BSD or Linux. And likewise on the server side. This has been a truly successful endeavor and I have honestly never experienced a dissatisfied person or company.

However, things are beginning to change in the GNU/Linux world as more and more corporations want to control the direction of Linux as an operating system. Due to the structure and organization of GNU/Linux as an operating system, it is unfortunately susceptible to these influences, and while it is still open source, and still not anywhere near the bad things that is going on with the proprietary alternatives, some opt-out features have slowly been introduced into both the kernel and systemd.

You can still choose to opt-out of these features and go your merry way, but as an open source enthusiast and proponent, and as a privacy concerned individual, perhaps the better approach is to migrate systems to something where you don't have to concern yourself with "creepware" and corporate interests, but rather community driven passion instead (Linux-land used to be like that).

As a system administrator I don't want to worry about whether I am going to be surprised the next time I upgrade a system, and I don't want to keep a list of spyware I have to remember to opt-out of whenever I run one of these systems.

Several Linux distributions have decided, not only because of privacy issues, but also because of technical issues as well, to use other init solutions than systemd, but with the situation going on in the kernel development, and with many third party applications becoming more and dependent upon systemd, even though they don't need to be, the problems are spreading to other parts of the operating system and I believe this is becoming an uphill battle.

From a community perspective, and from a security perspective, I don't believe the future of GNU/Linux looks very bright, and as a possible alternative solution I suggest migrating everything (when possible) to something a bit more sane, like one of the BSD variants.

Linux is fragmented

In 1983 Richard Stallman announced his intent to start coding the GNU Project in a Usenet message. By June 1987, the project had accumulated and developed free and open source software for an assembler, an almost finished portable optimizing C compiler (GCC), an editor (GNU Emacs), and various Unix utilities, such as ls, grep, awk, make and ld.

In 1991, the Linux kernel appeared, developed outside the GNU project by Linus Torvalds, and in December 1992 it was made available under version 2 of the GNU General Public License. Combined with the operating system utilities already developed by the GNU project, it became the GNU/Linux operating system, better known as just "Linux".

Then came the Linux distributions. Different projects took 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 combined those components into the distributions. Different distributions focused on different goals, some put focus on the desktop while others put their main focus on servers, and again others tried to provide a multi-purpose operating system.

In the past all these different components and projects where developed by open source enthusiasts and communities and the passion for programming and open source was the driving force.

This is no longer the case. Take a look at my other article The real motivation behind systemd.

Linus Torvalds has many times made it very clear that he doesn't care about what goes on in the "Linux world", all he cares about is the kernel development, and on January 6, 2020 in the "Moderated Discussions" forum at realworldtech.com, Linus Torvalds answered a user's question, with an absolutely jaw-dropping comment, about a year-old kernel maintenance controversy that heavily impacted the ZFS on Linux project.

After answering the user's actual question, Torvalds went on to make very wrong and damaging claims about the ZFS filesystem. Torvalds said:

It (ZFS) was always more of a buzzword than anything else.

By that statements Linus Torvalds has just reduced more that 15 years of development of one of the most robust and popular filesystems in the world into a "buzzword".

ZFS is described as "The last word in filesystems". It is a combined filesystem and logical volume manager originally designed by Sun Microsystems. ZFS is a stable, fast, secure, and future-proof filesystem. It is scalable, and includes extensive protection against data corruption, support for high storage capacities, a maximum 16 Exabyte file size, and a maximum 256 Quadrillion Zettabytes storage with no limit on number of filesystems (datasets) or files, efficient data compression, snapshots and copy-on-write clones, continuous integrity checking and automatic repair, RAID-Z, native NFSv4 ACLs, and can be very precisely configured.

The two main implementations, by Oracle and by the OpenZFS project, are extremely similar, making ZFS widely available within UNIX-like systems.

As mentioned in the Wikipedia article, OpenZFS is an umbrella project aimed at bringing together individuals and companies that use the ZFS file system and work on its improvements, aiming as well at making ZFS more widely used and developed in an open-source manner. OpenZFS brings together developers from the Illumos, Linux, FreeBSD, and macOS platforms, and a wide range of companies. High-level goals of the project include raising awareness of the quality, utility and availability of open-source implementations of ZFS, encouraging open communication about ongoing efforts toward improving open-source variants of ZFS, and ensuring consistent reliability, functionality and performance of all distributions of ZFS.

OpenZFS on Linux, which is the Linux part of the project, has currently 345 active contributors with more that 5.600 commits, and commits are being made on an almost daily basis.

Some of the worlds biggest CDNs and data storage services runs ZFS on either FreeBSD or Linux.

In another situation Linus Torvalds gave an interview on TFiR: open source and Emerging Tech YouTube channel about Linux on the desktop in which he makes another amazing statement saying that Linux still isn't ready for the desktop and that perhaps Chrome OS is the solution to that problem.

These and many other statements by Linus Torvalds show that Linux as an operating system has no real direction and no clear management because the kernel development is performed in isolation from the rest of the Linux world.

Linus Torvalds is generally also very open to the rapid influence by corporate interests and his perspective on security is also worrying.

In 2009 Linus Torvalds admitted that the kernel development is getting out of control.

We're getting bloated and huge. Yes, it's a problem ... Uh, I'd love to say we have a plan ... I mean, sometimes it's a bit sad that we are definitely not the streamlined, small, hyper-efficient kernel that I envisioned 15 years ago ... The kernel is huge and bloated, and our icache footprint is scary. I mean, there is no question about that. And whenever we add a new feature, it only gets worse.

At LinuxCon 2014, he said that he thinks the bloat situation is better because modern PCs are a lot faster!

We've been bloating the kernel over the last 20 years, but hardware has grown faster.

This is a very problematic attitude.

When software gets bloated it not only becomes more insecure and more error prone, but it also becomes much slower. Thinking that the problem goes away because hardware becomes faster is an immature attitude. In this day and age we need to optimize software so that less power is required, we need to save power and limit pollution.

In a 2007 interview "Why I quit" kernel developer Con Kolivas stated:

If there is any one big problem with kernel development and Linux it is the complete disconnection of the development process from normal users. You know, the ones who constitute 99.9% of the Linux user base. The Linux kernel mailing list is the way to communicate with the kernel developers. To put it mildly, the Linux kernel mailing list (lkml) is about as scary a communication forum as they come. Most people are absolutely terrified of mailing the list lest they get flamed for their inexperience, an inappropriate bug report, being stupid or whatever. ... I think the kernel developers at large haven't got the faintest idea just how big the problems in userspace are.

The fact is that Linux as an operating system is put together by different applications from different projects that has absolutely nothing to do with each other. If you don't know anything about this you should take a look at how you build Linux From Scratch.

Another good read that demonstrates some of these problems is the article Linux maintains bugs: The real reason ifconfig on Linux is deprecated. Also available as a PDF.

All of this is very different from the BSD variants, i.e. FreeBSD, OpenBSD, NetBSD and DragonFly BSD, as each of these projects are completely independent - they are "in-house", so to speak. The kernel, the standard C library, the user land tools, etc., are all part of the base system of the operating system, not something put together from a bunch of different outside sources.

In a 2005 interview Theo de Raadt, the founder of OpenBSD, makes the following remarks:

I am sure by now you all know that Linux is just a kernel, while OpenBSD is a complete Unix system: kernel, device drivers, libraries, userland, development environment, documentation, and all the tools you need to continue doing development. That said, based just on completeness of functionality, it is not handled like a Linux distribution, not at all.

When we find that a change must be made to the system (security or otherwise) we can therefore force such a change into the system by changing it all the way from userland through the libraries down to the kernel. We can change interfaces as we want to. We can move quickly. Sometimes changes are even made which break previous executables; but if we need to, we can choose to make such decisions.

This gives us great flexibility to move forward fast. If something is designed wrong, and the fix depends on changes in more than just the kernel, we can fix it by. We change all the required pieces in the right places. We don’t need hacks in the wrong place to fix a problem.

Linux is being heavily influenced by corporate interests

A Linux distribution is a collection of tools written by different groups of people, often with conflicting interests and priorities, and because of this fragmented structure of the GNU/Linux operating system, the project as a whole is rapidly spinning out of control as it gets pushed around by commercial interests.

Even the best GNU/Linux distributions, such as Debian GNU/Linux and Arch Linux, that are still mainly driven by open source communities, are not immune to this problem because they not only still depend heavily on the fragmented tools, but several developers has been hired by some of these major commercial companies.

In my article The real motivation behind systemd I have written about how the primary reason for developing systemd is Red Hats financial interests in embedded devices, primarily at the U.S. Military and the automobile industry. Initially systemd was released as a new init system, but it has slowly grown into what Poettering describes as "a suite of software that provides fundamental building blocks for a Linux operating system."

In an interview with Red Hat CEO Jim Whitehurst states:

We partner with the largest embedded vendors in the world, particularly in the telecom and automotive industries where stability and reliability is the number one concern. They easily adapted to systemd.

I have nothing against the "init" part of systemd, but systemd is no longer just an init system, and the main problem with systemd is that its continued development is motivated by a company's financial interests and not the open source community interests. As such, the adoption of systemd by the major Linux distributions, such as Debian and Arch Linux, was a big mistake in my humble opinion. They have almost put themselves in "vendor lock-in" because of the complex nature of systemd.

This is pure speculation, but I must also admit that I suspect systemd to be a platform for introducing security holes into the Linux operating system. These will of course look like normal "programming mistakes", however some of these bugs resembles what happened with the OpenSSL Heartbleed bug quite a lot. And it is a well know strategy used in open source software, to use "programming mistakes" to create backdoors and other issues. systemd has a long line of standing, open, and confirmed bugs that still haven't been fixed since 2015, yet instead of fixing all of these bugs, the systemd developers keep adding more and more features to systemd.

Another heavy influence on the Linux world is Google. Google has developed both Android and Chrome OS, both Linux kernel-based operating systems. Chrome OS is derived from Chromium OS and uses the Google Chrome web browser as its principal user interface.

Chrome OS is viewed as a competitor to Microsoft, both directly to Microsoft Windows and indirectly the company's word processing and spreadsheet applications, the latter through Chrome OS's reliance on cloud computing. And this is one of the core problems with Chrome OS, it is built with great reliance of Googles cloud infrastructure.

Google has become one of the most controversial companies. Google is in its essence an advertisement company and it has become famous for their manipulation of search results and extreme user tracking capabilities, mainly thanks to the ignorance of "modern" web developers adding Google Analytics to their websites.

In a YouTube video from August 2019 by Linus Tech Tips, Linus Sebastian demonstrates how tracking on the Internet works and how it affects the prices you get offered when you search for products.

Please note that the video was originally sponsored by Private Internet Access, a company that has since been bought by Kape Technologies which is known for sending malware through their software and for being really scummy in general. Don't use Private Internet Access!

Cloudflare is another American web infrastructure company that is affecting different areas of the development. The company provides services that actually sit between a website's visitor and the Cloudflare user's hosting provider, acting as a reverse proxy for websites. As such Cloudflare has become one of the greatest cancers of the Internet.

The systemd developers has managed to integrate Cloudflare, Quad9 and Google into the core of systemd-resolved, which is now something you have to manually disable (opt-out).

With the growing influence of Red Hat (IBM) through systemd, they have managed to steer the direction of most of the major Linux distributions in a direction that contradicts what many Linux system administrators and Linux users would like to see.

BSD is the place to be

Berkeley Software Distribution (BSD) was an operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. Today, BSD refers to its descendants, such as FreeBSD, OpenBSD, NetBSD and DragonFly BSD. These projects are real operating systems not just kernels and they are not "distributions".

Linux distributions, such as Debian and Arch Linux have to do the work of bringing together all the software required to create a complete Linux operating system. They need the Linux kernel, the GNU tools and libraries, an init system, and some amount of third party applications in order to end up with a functioning operating system.

In contrast the BSDs are both a kernel and a complete operating system. For example, FreeBSD provides both the FreeBSD kernel and the FreeBSD operating system. It is maintained as a single project.

No one person or corporation owns BSD. It is created and distributed by a community of highly technical and committed contributors all over the world.

Companies also use and contribute to BSD. A company can make their own version of BSD, such as Sony Computer Entertainment has done for their PlayStation 3, PlayStation 4 and PlayStation Vita gaming consoles, but because the BSDs are complete operating systems, and because each BSD project is maintained and developed by open source enthusiasts and communities, not companies such as Red Hat, the BSD projects are really and truly independent.

One of the results of this organization of the BSDs is you wont find crazy opt-out "spyware" settings in your operating system.

On the contrary, because the BSD projects are developed and driven by skillful and enthusiastic people who care much about operating system design, security, and privacy, you will often find that even the third party software that are available for installation using a package manager gets patched so that these problems are removed, such as the disabling of DNS over HTTPS by OpenBSD in Firefox.

Another great benefit from all of this is that the communities that surround the BSD projects consist of experienced, helpful, and (for the most part) kind people.

The different Linux distributions, such as Debian and Arch Linux, and even Red Hat Linux back in the days, were really great projects. When projects are driven by passion and not profit they tend to become much better quality. However, when projects are no longer driven by passion, but rather by profit, they often decline in quality. This is natural because motivation by profit is very different from motivation by passion.

The reason for the success of Microsoft Windows on the desktop isn't because people believe that Windows is a great operating system, no sane and experienced system administrator or IT supporter I have ever met believes that, rather it is because of the aggressive marketing strategy deployed by Microsoft.

While the BSD projects do get both code and occasional financial support from companies, they are driven by passion and not by profit. This mainly means well thought out decisions. There are no compromises with privacy or security for the benefit of profit such as what we now find in Linux.

License problems

The GPL license is more strict on developers and it is an open source anti-pattern as it forces a release of all modified source code and prevents other open source projects from being integrated, for example, the GPLv2 is preventing the integration of DTrace and ZFS in Linux.

BSD developers on the other hand have no such restrictions. Manufacturers may opt for BSD as their operating system of choice when creating new devices instead of Linux. This would allow them to keep the code modifications to themselves if they wanted to.

The GPL license may sound better, because why should we allow companies to simply "steal" our open source code and produce proprietary products without even giving anything back. But it's not that simple.

Please see my article Some of the problems with the GPL for further information.

Time to migrate everything to BSD

Back in about 1998 I started migrating every server and desktop operating system from Microsoft Windows, both at home, at my company, and at clients, to Linux, initially Red Hat Linux and then later Debian. I did that because I had spent about a decade doing Microsoft Windows support for servers and workstations and I found that Linux was much more secure, much more stable, open source, and many times easier to debug and control.

Later in late 1999 I discovered FreeBSD and eventually also began deploying both FreeBSD and OpenBSD on servers and workstations.

Back in the days Linux often had better hardware support than BSD and as a result I generally used Linux more than BSD. Hardware was expensive and it was not always possible to purchase hardware based upon which operating system you wanted to run on the system. This is different today where the BSDs generally have great support for modern hardware.

I still love Linux, but I don't want to worry about whatever rubbish Lennart Poettering (now working for Microsoft) comes up with next. I also don't want to worry about all the bloatware that goes into the kernel, such as the kernel forcing adaption of DRM. I generally don't want to worry about whatever the next problematic thing is going to be. Everything needs to be sane options and decisions by default. Not opt-out!

Last, but not least, it's not just a matter of not worrying about these things. The BSDs are really good operating systems!

Take a look at some of my other BSD related articles and tutorials: