I can answer this question by also mentioning that their differences are also vast. So much so that to cover them all would turn this article into a book rather than just a simple article. Instead, I’ll be focusing on the basics for both open-source systems so that you can choose for yourself which one is the better choice.
Linux vs BSD
Linux is technically not considered an operating system. Instead, in reality, it is just a kernel. A kernel is the core aspect of any operating system out there and it lies somewhere between the software and hardware. This allows the kernel to help the user take advantage of the resources available within a system. The operating system itself is built on top of the kernel.
The Kernel vs The Operating System
Both Linux and BSDs are Unix-like operating systems. When installing Linux, you’re installing a distribution that is built using the Linux kernel. There are quite a few distributions to choose from, such as Ubuntu and Debian, which all use the Linux kernel. Different programs are embedded onto the kernel prior to making the distribution available to the market. BSD, unlike Linux, is a complete operating system. BSD is also a kernel, used as the core of the operating system. BSD developers will use that kernel to add different kinds of programs, making them available to users as a complete distribution. This means that a BSD operating system, like FreeBSD or NetBSD, is the kernel plus any programs added on top of it and distributed as a single, downloadable package. BSDs use something called a ports system. This system is what allows the installation of software packages. The software is kept in source form, meaning that your computer will need to compile the data each time before the software will run. A silver lining in this is that packages can be installed in a pre-installed binary state which allows your system to forego the pre-run data compilation step. The basic difference between both is that Linux distributions come with different sets of programs and repositories, allowing the user to download additional different programs pertaining to the requirements of the distribution. When you install a BSD operating system, you just get the programs that BSD offers. This is not true for software packages as they are available to both as you will discover.
Differences In Licensing
Most people may not care but the difference in licensing is actually significant. Linux uses the GNU General Public License, or GPL. This means that developers can modify or add new features to the Linux kernel as they please. The only catch being that all newly-developed source code must be released to the public whether they want it to or not. BSDs use their own unique BSD license which allows developers to modify and add new features to either the BSD kernel or distribution, without the need to release the source code. This means an open-source BSD can be declared closed-source if the developer so chooses. They have no obligation to release the source code to anyone.
Software Availability & Compatibility
This is the sort of thing that has a direct influence on the popularity and adaptability of an operating system to the general public. The capability of an operating system that is compatible with modern-day software can be a make-or-break feature for most people. Where Linux is concerned, it is easier for developers to write code that can be made available to users in pre-compiled binary packages for installation. The packages can be installed using apt, yum and other similar package managers. The open-source nature of Linux is what makes this possibility easier. For BSD users, the task is not as simple. Users will have to download the source codes for the programs from the thousands of ports available to them. Then, after the source codes have been downloaded, they would have to compile them on their system. This creates a headache for both BSD users and developers, as the lack of popularity among general users can be attributed to the extra hassle of compiling the source codes. The pre-compiled binary packages can be seen as the only saving grace to eradicate the hassle but still falls short in the availability of applications programs.
Making A Choice
Linux is without a doubt the more popular choice among open-source, Unix-based operating systems. It tends to get hardware support much faster than a BSD would and for most general purposes, both systems are too similar to matter. Both systems have their own set of advantages. Taking a look at FreeBSD, the development team maintains its own version of a large number of common tools. This allows the developers to create their own tool variants for use with their system. Linux systems tools are primarily provided by the GNU suite so variations are less likely. BSD has a serious lack of applications. This has led developers to try and control the situation by creating a Linux compatibility package, allowing Linux applications to run on BSD. Linux distributions have no real issues with applications as there are plenty available to the public. The real complication is the free-source argument.
Developers & Users vs Restrictions
The Linux GPL license tends to be more strict on the developers, forcing a release of all modified source code. BSD developers on the other hand have no such restrictions. The thing to keep in mind is what the non-developing public gets out of all this. 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 as the use of Linux would have come with the stipulation of releasing the source code to the public. The restrictions set on Linux by their license provides those seeking applications for the system an assurance that if one is made, they will have access to it. The BSD license allows its developers the choice to remain greedy and tight-lipped on kernel and system modifications, meaning that even if something is made, the general public may not even have a clue to its existence. BSD systems have acquired a better reputation for reliability than its Linux counterpart. This puts a point on the scoreboard for BSD. It is also capable of executing Linux binaries and claims a central repository. Both things Linux is not known for. Both are viable options for anyone in need of a Unix-based OS. Because of their similarities, it’s rather hard to promote one over the other. The choice truly lies on developer vs user and the requirements in an open-source OS that a user is looking for.