Why you should migrate everything from Linux to BSD - part 2
Published on 2020-01-21. Modified on 2021-10-04.
After I posted the first part of this article it got posted on Hacker News, Reddit and Lobster, and someone made a response. This second part of the article is my response to that.
harryruhr posted a response to my article Why you should migrate everything from Linux to BSD which he titled Should you migrate from Linux to BSD? It depends.. In the response harryruhr makes a couple of arguments I feel the need to address.
The issue of fragmentation
To my point that "Linux is fragmented" harryruhr writes:
Yes it is. But so is BSD nowadays. The 3 "traditional" BSD's - FreeBSD, NetBSD and OpenBSD - alone differ greatly from each other - technological and in their goals. Then there are the "new" BSD forks, like Dragonfly, MidnightBSD, HardenedBSD, etc. Distrowatch.com lists 18 different BSD "distros". The ZFS file system, which the author praises so highly, is only available in FreeBSD and near relatives and is based on "ZFS on Linux". It isn't available on NetBSD or OpenBSD.
This is simply not true. FreeBSD was one of the first independent operating systems to port ZFS from Sun Microsystems. ZFS on Linux arrived much later and was then morphed into OpenZFS which has since become a major collaboration between all FOSS contributors to ZFS. Developers from Linux, FreeBSD, NetBSD, Illumos and elsewhere are all contributing to the project now.
Linux is fragmented because the kernel, the GNU tools, the libraries, and all the other parts are completely independent projects. None of these projects have in reality anything to do with each other, but at the same time you cannot have a Linux operating system without gluing these different projects together in some form, which is what the different Linux distributions are doing.
The GNU project has even been working on their own kernel, GNU Hurd since 1990, which originally was planned as a replacement for the Unix kernel. The Linux kernel was just a convenient way to get a working operating system up and running since the Hurd kernel wasn't finished.
The BSD's are not fragmented at all, they are each complete operating systems and independent projects, they all have a kernel, base tools, and all the rest. They are independent projects with different goals. They share the family tree of the BSD kernel, and they occasionally share code, but other than that they are independent from each other. OpenBSD wouldn't be affected by the least if FreeBSD or NetBSD was canceled, and likewise the other ways around.
With Dragonfly BSD it's the same. Matthew Dillon, a FreeBSD developer between 1994 and 2003, forked FreeBSD in 2003 because he believed that the techniques adopted for threading and symmetric multiprocessing in FreeBSD would lead to poor performance and maintenance problems. As a result, and because the other FreeBSD developers disagreed with him, he created DragonflyBSD. But DragonflyBSD is also now a completely independent operating system and project.
All these different BSD projects are still complete and independent operating systems. They are not put together by independent parts from different projects.
With regard to MidnightBSD, HardenedBSD, and other similar projects, then these have also nothing to do with fragmentation. Most of these projects are based upon FreeBSD, they take FreeBSD and setup different applications, or they patch the kernel, etc. They have nothing do to with fragmentation.
If the BSD projects should be fragmented like GNU/Linux, then the BSD kernel should be developed by a separate project, and the base utilities should be developed by yet another separate project, and nothing would work until you take all of these independent and fragmented parts and "glue them together" somehow.
This is the difference between the fragmented nature of the GNU/Linux operating system and the BSD operating systems.
This issue about being hijacked
About my point that "Linux has been hijacked", harryruhr writes:
The Author says, that big "controversial" companies are influencing the development of Linux. That may be true, but is the situation in FreeBSD really better?
The FreeBSD community says at every possible opportunity proudly, that Netflix is using FreeBSD to deliver their content. Further Netflix is one of the biggest commercial contributors to the FreeBSD kernel. Still it is not possible, to watch Netflix content on a FreeBSD desktop natively. If this, and their spreading of DRM content, doesn't make Netflix one of the most controversial companies out there, I don't know what "controversial" is. Then there are of course dozens of commercial and proprietary product based on FreeBSD, which deny users the benefits of free software.
It is correct that Netflix is one of the biggest commercial contributors to FreeBSD, but this has nothing to do with "hijacking" as in the Linux world. Netflix is contributing all the improvements they make on FreeBSD back to the project. All the performance enhancements they have made has been contributed back to FreeBSD. This is very beneficial for FreeBSD.
But Netflix is in no way trying to influence the FreeBSD project or trying to "hijack" FreeBSD. And they haven't started making a new init system only to later reveal that it isn't really an init system, rather it is a "never finished, never complete, but tracking progress of technology" thing that keeps growing and growing.
A Netflix employee called drewg123 on Hacker News gives the following relevant information:
At Netflix, in my larger work group, we have at least 7 FreeBSD committers, and one core team member (and I'm sure I'm forgetting some folks and I'm sorry!). We have employed (on specific contracts) many other committers and core team members.
Unlike Yahoo, we are accountable to Netflix's business goals of increasing our streaming customer's Quality of Experience while still maintaining or reducing the cost to deliver content. Frequently those goals align nicely with FreeBSD's goals, and we have contributed a great deal (async sendfile, kTLS, unmapped mbufs, epoch stabilization, NUMA work, RACK TCP, BBR TCP, TCP pacing, and tons of stuff I'm forgetting).
With regard to the services that Netflix provides and their so-called DRM content that can only be played using their proprietary application, and other proprietary project based upon FreeBSD, then that has no influence on FreeBSD, and that has absolutely nothing to do with "hijacking". None of these projects are affecting FreeBSD.
So yes, the situation in FreeBSD is a lot better.
The issue about where the "sane" people are
To my point that "BSD is where the sane people are", harryruhr writes:
The author says: "The BSD projects maintain the entire operating system, not only the kernel." It is true, that BSD is not only the kernel, there are also userland programs. But how much "userland" comes with the BSD operating system is absolutely up to the BSD developers. It is often a minimum of tools. For the rest you have to use ports and packages, which is no different then using packages in a Linux distro. FreeBSD for example doesn't even have Xorg in their base system, you have to install it from packages using "pkg install xorg". It is not seldom the case, that a part of the integrated system is removed from the base system and became a package.
I find this statement a bit manipulative.
You cannot compare the fact that you have to install Xorg from a third party project in FreeBSD because it doesn't exist in the base system, with the reality of the fragmented GNU/Linux operating system. It has absolutely nothing to do with each other.
My article was about the fragmented nature of the GNU/Linux operating system compared to the different BSD operating systems, not about how many third party applications that goes into the base install.
harryruhr then goes on to say:
The most "complete" system is indeed OpenBSD, which comes not only with X (Xenocara) but also with their own MTA (OpenSMTPd) and web server (OpenBSD httpd), which can make an OpenBSD base system a good choice for a server for basic tasks. Of course, besides of xterm and xcalc and 3 window managers (twm, fvwm and cwm) there are not much "graphical" programs included. If you want a web browser or decent mail program, you have to install it from packages.
The X, OpenSMTPd, httpd, and other applications in OpenBSD, has nothing to do with the operating system itself. Whether you choose to put these into the base system or leave these applications outside, doesn't affect the fact that OpenBSD is still a complete operating system even without these parts.
These parts doesn't make OpenBSD "more" of an operating system than FreeBSD. These parts make OpenBSD an operating system with more applications in the base install.
The OpenBSD project has decided to integrate more applications into the base install because the focus of OpenBSD is very heavy on security. The developers want to integrate these applications with the base install in order to control how these parts get developed and how these parts work. As a result these applications has become an integrated part of the OpenBSD project.
FreeBSD or NetBSD could make a ton of applications available in the base install, but it doesn't make any sense for these project to do so.
The fact of the matter is that these applications doesn't affect the completeness of the operating system. On the other hand, if you haven't got a kernel, or if you haven't got "userland" tools, you haven't got anything at all. This is the reality of GNU/Linux.
Finally, I would like to point out that the reason for me mentioning the fragmented condition of the GNU/Linux operating system is to point out that this fragmentation is one of the main reasons for the problems we're facing. These fragmented projects often have conflicting interests, this the core of the problem, not which operating system has most tools in the base install.
The issue with the license
harryruhr then writes:
The discussion about "BSD or GPL" is as old as the licenses are. There are good points for or against either of them. Personally, I don't care as long it is free software. The argument, that the GPL leads to software which is lead by profit instead of compassion isn't really convincing.
I think that anyone who really care about "free software", as in Open Source that people are free to distribute and work upon, should also consider this subject a little deeper. We have more than three decades of experience that show just how manipulative many profit driven companies get when they depend on a piece of software which they cannot gain control over.
With the BSD license a company doesn't have to use tactics or manipulation in order to affect the development of the application, it can simply take the application and do what it wants.
The issue of migration
Last harryruhr writes the following regarding the reason to use BSD over Linux:
But those reasons should, aside from the reason to use only free software, only be technical. Out-of-date arguments, like that "BSD is the complete system and Linux only the kernel" or that "Linux is driven by profit and BSD by compassion" are not really valid (any more).
Normally I would agree completely with the argument that the only reason to use a specific operating system should be a technical reason. However, this can no longer be the case and the arguments I have presented are not out-of-date arguments, rather on the contrary.
Microsoft Windows 10 might be the only available operating system for a specific application or hardware, but that doesn't mean that you should compromise that heavily with the major privacy issues this horrible operating system is causing and then excuse the decision with a technical one. There is such a thing as "too much crap".
With the recent forced adoption of DRM going into the Linux kernel, and Linus Torvalds several detached statements from reality, and his complete disregard for many of the important matters in the Linux world, where he clearly doesn't care about how the companies are affecting the development, the future of the Linux kernel doesn't look bright, not from a privacy perspective and not from a security perspective.
Unless you want to patch your way out of the problems every time a new Linux kernel is released, you need a viable alternative. An alternative where the people who develop the kernel have a clear idea about the path of the project, a path that doesn't compromise privacy or security or any other important issue.
Of course there will always be disagreement in any project, but disagreement between developers in FreeBSD is not the same as profit driven companies that are trying to - more or less - "hijack" GNU/Linux.