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, and even companies like Lenovo is using UEFI boot to inject custom Windows components, so that the system can phone home to Lenovo.
As a result of all this 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 as I wrote in my article back then, I have always believed that the different Open Source projects can help each other and cooperate in kindness, 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 proposed people, both private and in the industry, 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 something like Linux Mint, Xubuntu, or Debian GNU/Linux. And on the server side I have used both BSD and GNU/Linux. This has been a successful endeavor and I have honestly never experienced a dissatisfied person.
However, things are beginning to change in the GNU/Linux world as more and more companies want to control the direction of the project. 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".
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 things 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 opt-out issues, but other issues as well) to implement 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, the problems are spreading to other parts of the system and I believe this is becoming an uphill battle.
I don't believe the future of GNU/Linux looks as bright as it used too, and as a possible alternative solution I suggest migrating everything (when possible) to something a bit more sane, like the BSD projects.
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 the passion for programming and Open Source was the driving force.
This is no longer the case!
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 absolute 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 CDN 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 shows that Torvalds should avoid authoritative statements about projects he's unfamiliar with, but more importantly they also 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 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 he 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.
Besides from the above mentioned problems, the fact of the matter is that Linux as an operating system is put together by many different applications from different projects that has 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.
This is very different from the BSDs as the individual projects, meaning FreeBSD, OpenBSD, NetBSD and DragonFly BSD, each are independent projects that put together their systems "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.
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 driven by Open Source enthusiasts, are not immune to this problem because they still depend heavily on the fragmented tools.
In my article The real motivation behind systemd I have previously written about how the primary reason for developing systemd is Red Hat's interests in embedded devices. 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." This is by design, not by coincidence.
In an interview with Red Had CEO Jim Whitehurst he 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 systemd as an administration tool, on the contrary I really like it, and I even like several of the tools that comes with it, but the main problem with systemd is that its continued development is motivated by a company's economic interests and not the Open Source community interests. As such, the adoption of systemd by the major Linux distributions, such as Debian GNU/Linux and Arch Linux, was a big mistake in my humble opinion. They have made themselves heavily dependent upon systemd.
Another heavy influencer 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 build 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 stupidity of 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: The video was 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 and website company that is affecting the development of Linux. 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.
Both systemd and Mozilla has managed to integrate Cloudflare into the core of their products. systemd has integrated both Cloudflare's and Google's DNS servers as opt-out in systemd-resolved and Mozilla is defaulting their DNS over HTTPS in Firefox to Cloudflare.
Even though Mozilla Firefox isn't a Linux project, it is still one of the most widely used browsers on the different Linux distributions and when Mozilla makes the big mistake of integrating DNS over HTTPS in Firefox, let alone using Cloudflare, they are setting a very bad precedence. DNS over HTTPS is by itself bad enough, and highly criticized with good reason, but by combining it with a controversial company like Cloudflare it makes it even worse. OpenBSD has disabled DNS over HTTPS by default in their builds of Firefox due to use of Cloudflare services for this feature.
Hijacked might be a too strong word, but with the influence of Red Hat through systemd, they have managed to steer the direction of GNU/Linux as an operating system in a direction that contradicts what many system administrators and users would like to see.
Let me start by saying that I don't mean that literally. What I'm talking about here is design and development decisions from the point of view of system administration and coding.
Contrary to the Linux distributions the Berkeley Software Distribution (BSD) is not a fragmented project. The BSD projects maintain the entire operating system, not only the kernel.
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 GNU/Linux 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, as mentioned before, 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, but contrary to Linux, a company cannot "hijack" 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, not companies such as Red Hat, the BSD projects are really and truly independent.
As a result of this organization structure you don't normally find crazy opt-out settings in your basic installation, no matter what BSD project you choose, and you don't find privacy compromising solutions integrated into the operating system components. On the contrary, because these 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 don't exist, such as the disabling of DNS over HTTPS by OpenBSD, as mentioned.
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 FreeBSD community is especially kind and helpful.
The Linux 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. With Linux the license force the release of the source code to the public.
The GPL license may sound better, because why should we allow companies to simply "steal" our Open Source code and produce closed source products based upon that without giving anything back. But it's not that simple. By forcing companies to release source code to the public such code may be rejected by the original developers, which again makes companies more manipulative.
The tactics deployed by Red Hat with the release of systemd was to try to get as many "important" third party projects to cooperate very tightly with systemd, or even depend upon systemd. This way other Linux distributions are more easily persuaded into adopting systemd because of the easy integration of these third party projects. The systemd developers addressed several third party projects and tried to convince them to make their projects either depend upon systemd, such as the attempts made by Lennart Poettering on the Gnome mailing list, and the attempt made by Red Hat developer "keszybz" on the tmux project. Most of these attempts were originally "disguised" as technical issues, however when you read the long email correspondence on the Gnome mailing list and elsewhere, the real intent becomes quite clear.
Such manipulation isn't needed in BSD. Companies are free to do whatever they want with BSD and as such they don't need to try to affect the way things are going. If that wasn't the case we would possible see, for example, Sony trying very hard to influence the development of FreeBSD because they use that in their PlayStation products.
The different GNU/Linux distributions, such as Debian GNU/Linux, Arch Linux, and even Red Hat Linux back in the days, where really great projects. When projects are driven by passion and not profit they tend to become much better quality, something which is still evident on the server platform as both Linux and BSD always dominated the server infrastructure because of the quality they provided. 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. This is one of the reasons why Microsoft Windows has always been so crappy both as a server and as a desktop operating system.
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 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. Of course mistakes are made from time to time, but there are no compromises with privacy or security for the benefit of profit such as we now find in Linux.
Back in about 1998-2000 I started migrating every server and desktop operating system from Microsoft Windows, both at home and at my company, to GNU/Linux, initially Red Hat Linux and then later Debian GNU/Linux. I did that because I had spent about 8 years doing Microsoft Windows support and wasted so much time on this absolutely horrible operating system.
When I was recommended GNU/Linux by a good friend of mine I was amazed at how well it performed, how amazing the Open Source community were, and how all the usual problems related to Windows just vanished. Whenever I replaced a Windows setup with a Linux setup at a customer, a family member, or a friend, the support hours rapidly declined. Of course this meant less customer support work, but this was great because now we could concentrate our time on more important matters.
A little later I discovered the BSD world and eventually also began deploying both FreeBSD and OpenBSD on servers and on desktops too.
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 have never used NetBSD or DragonFly BSD, not because these projects are bad, but simply because I prefer FreeBSD and OpenBSD.
I still like both Debian GNU/Linux and Arch Linux very much, but I don't want to worry about possibly new privacy problematic settings in default installations of systemd, I don't wont to worry about all the bloatware that goes into the kernel, such as the kernel forcing adaption of DRM, I don't want to worry about whatever the next problematic thing is going to be.
As an operating system Linux is becoming more and more of a mess because of the fragmented nature of the project and because of the jerking around by commercial interests, such as Red Hat with systemd.
You can read about FreeBSD in my article FreeBSD is an amazing operating system and about OpenBSD in my article OpenBSD is fantastic.