Linux, as a derivation of Unix, naturally has much in common with the BSDs. Like BSD, Linux distributions are free and open-source as well. Despite the fundamental similarities, Linux has largely overshadowed BSDs in popularity, with over 74% of modern smartphones being Linux based.
So that begs the question: If BSD and Linux are just iterations of research Unix, what exactly makes them different?
Well, the differences between the two lies in the fundamentals, and the differences are very many. But to read them all in a single post would be quite tedious for the readers. Hence, this post will focus solely on the fundamentals and leave the intricate details out for the sake of brevity and to not intimidate away the new readers.
But what is Linux, really?
The first thing that many people get wrong is that Linux is a kernel, not an operating system. So that makes it only a part of the OS, not the OS itself.
Let’s discuss Kernels for a second. Kernels serve as the pivot in any operating system, as it retains all the underlying code upon which that operating system stands. It enables and expedites the interaction between the hardware and software components of a system, manages its input/output requests to and from the software applications, and is responsible for handling the hardware devices as well.
In short, a kernel is the most integral feature of any operating system that it is based upon, and is thus retracted to a highly protective part in the system’s memory where any and all access request from applications are denied, barred a few that are integral to system’s operation.
Now that we understand what a kernel is, we can move on and see what Linux, as a kernel, does in the operating system.
Linux Kernel within an Operating System
Among the most popular Linux based operating systems are Debian, Ubuntu, Fedora, and Deepin. So, whenever you hear somebody say they use Linux, know that it’s actually one of these distributions. These distributions are “Linux-based” because they are built upon the Linux kernel. The tweaking to the kernel along with the new applications loaded into it make each distribution different from another.
What is BSD, and how is it different from Linux?
As mentioned earlier, the different distributions of BSD are all operating systems. And that makes BSD, like Linux, a kernel.
But to make things complicated, BSD is also a standalone operating system, which Linux isn’t. Let us explain how exactly.
For BSD distributions, several programs are added to the BSD kernel. This combination is then released as a standalone, complete package that needs to be installed, and the thing’s ready to go. So, the core difference between the BSD distributions such as FreeBSD, OpenBSD, etc., is because of the programs added to the kernel operating system. To download additional software packages, BSD users use the ports system, which keeps these packages in source form. The source code is compiled by the system each time the software is launched. While this can prove to be cumbersome, especially when running longer, more intricate codes, BSD systems can skip the compilation step upon each launch entirely if the program is installed in a binary state, thus alleviating the process to a great extent.
Linux is different from BSD in the regard that each of its distributions uses completely different programs, and the distributions don’t have a centralized repository for software packages, as each distribution has its own repository.
Differences in Licensing
One of the fundamental differences between BSD and Linux is that of the Licensing system under which their distributions are released.
When you download software from the Ports repository in BSD or install a distribution as a whole, the software or distribution is allocated to you under the BSD license, which is a custom license system employed by the BSD developers. While BSD is completely open-source and free as of now, the BSD licensing system allows the developers to declare BSD closed-source at a moment’s notice. As a FreeBSD user, you’re not legally entitled to further releases from BSD devs. However, the BSD developers have made it public that they have every intention of keeping it open-source in the future.
Linux distributions are released under the GNU General Public License (GPL). Under this licensing system, Linux developers are legally compelled to release each and every instance of changes made to the Linux kernel. The licensing system, in essence, makes sure that Linux remains open-source, no matter what changes are made to the kernel itself.
Why is Linux more Popular? (Spoilers: Software Availability)
If you’ve been wondering this whole time why you haven’t heard about BSDs as much as you hear about Linux distributions, here’s why: when it comes to software compatibility, Linux knocks it right out of the park. For every software out there is a Linux compatible release. This is not the case for FreeBSD, which remains largely neglected for that reason.
The Linux kernel makes writing and distributing software programs simpler as compared to other kernels, so developers are naturally inclined to work towards Linux releases. The distribution, especially, is made even easier by the pre-installed binary package system that it facilitates. Linux allows software packages to be downloaded and installed via package managers such as apt, yum, Pacman, etc.
As compared to software distribution in Linux, BSD users have it much hard. The software packages are first downloaded as source codes in BSD via the ports system. These source codes are then compiled every time they’re launched, a process that is both time-consuming and frustrating in the modern age where software is installed at the click of a button. This is equally frustrating for the developers, as they have to put in a whole lot of effort to make compiling as quickly as possible.
Although the introduction of pre-compiled binary packages has largely mitigated the process of getting software in FreeBSD, software availability still remains an enormous problem for BSDs.
Choosing between Linux and BSD
Aside from the more mainstream Windows and IOS, Linux distributions are leaps and bounds ahead of any other operating systems out there. It is free, open-source, and has everything to offer that FreeBSD has, without the caveats.
BSD and Linux are a lot more common than they are different, with licensing and software distribution being the only core differences. Still, despite the similarities, using one is a trade-off of another.
On one hand, FreeBSD maintains a library of tools and dependencies across all distributions, making it easier for the developers to iterate on the contents and come up with applications of their own. This is where FreeBSD has a considerable advantage over Linux, as the GNU suite included with Linux doesn’t allow this.
But on the other hand, the lack of software compatibility and availability severely hinders the experience with FreeBSD. This problem can be solved by using the Linux compatibility package, which allows Linux software to run on BSD distributions, but this is one extra step that still hinders the experience, nonetheless.
As far as the licensing goes, the Linux GPL license is much more restrictive than BSD licensing. Developers or users cannot make variations to the Linux kernel or sourcecode without making it public. BSD users have no such obligations; hence developers should at least try BSD out. To be able to keep the source code private is a considerable advantage that Linux fails to provide.
The licensing for Linux distributions is biased in the favor of users, as it confirms that any development made to improve applications for the system will be made available to the users. The BSD licensing, on the other hand, is more akin to the standard licensing, allowing the users to install BSDs for free but not holding the developers to make their content public.
We’d recommend a Linux distribution if you’re going to use it for general purposes. Its software compatibility is reason enough for us to recommend it. However, if you’re a manufacturer, BSD is the right option for you. It has a centralized repository for software and is well-reputed for its reliability. And as far as BSD licensing goes, you won’t have to worry about making your work open-source.
If you’ve opted for Linux Kernel, we’d recommend using Ubuntu. It is regularly updated every six months, a consistency that, in my opinion, strikes a great balance between keeping up with security problems and not frustrating the users.
And if you choose to go with the BSD kernel, we’d recommend FreeBSD, which is by and large the most commonly used distribution of BSD out there.