So what are we comparing?
Free BSD and Linux have a lot in common, which makes it is difficult for users to differentiate between FreeBSD and Linux. The beauty about both the platforms is that they are developed on an open-source technology, which means that you can practically view and modify the source code and customize the OS as per your requirements.
Both the operating systems share a lot in common which largely resembles to Unix operating system. FreeBSD being a derivative of the UNIX system, whereas Linux operating system was built as an open source alternative to UNIX.
A straight comparison between both the operating systems is going to be a challenge as the two operating systems are more alike than different. However, there are some entities in which they differ. Here are some of the differences discussed in detail to help you develop a better understanding of both.
Kernel or Operating System
Linux is simply a kernel, so in order to use “Linux” as an operating system you need to choose one of many available flavors like RedHat Enterprise Linux, Ubuntu, CentOS to name a few, to handle most of the functions of a traditional operating system. On the other hand, FreeBSD is a complete operating system by itself.
Origin and Organization
Linux and FreeBSD are both UNIX-like but the coding of all BSD operating systems is much closer to that of Unix, because BSD originally started as a UNIX distribution and was eventually rewritten so it could be used without an actual UNIX/AT&T license. Linux, on the other hand, was built as an alternative to UNIX and doesn’t have any “formal” ties to it.
The way that the components of two systems are written and released is another important difference. There is a unified FreeBSD development structure, with a core team in charge of the operating system. That means that the entire FreeBSD operating system is released and maintained as a complete “product” – ensuring a more organized source code and better integration, but somewhat limiting a user’s ability to change the system’s components.
A Linux distribution however, is comprised of components from many different sources. A stable distribution will usually allow those components to work well together, but there is a greater possibility of conflicts than with FreeBSD. The upside is that it’s usually easier to choose and successfully install your own favorite software from repositories when using Linux.
Linux is licensed under GPL (General Public License). The GPL allows you to modify the operating system anyway you want, but as it is an open source, the source code should be available to the next user. GPL aims at preventing the distribution of binary-only source.
The BSD license neither makes sure that you make the code available to the next user nor does it prevents the distribution of binary-only source.
System, Hardware and Software
• Linux generally provides a more satisfactory end-user experience because most distributions are compatible with common hardware and software, particularly when it comes to things like graphics cards and Java compatibility. FreeBSD is more efficient for server and network applications, especially because of its ability to optimize disk input/output functions. While it won’t support as many hardware options as Linux, it’s much easier to configure and manage a FreeBSD system.
• Software that comes with Linux distributions or found in their repositories is usually only available in pre-compiled binary form. FreeBSD also lets you use its port system to compile, install and customize directly from source.
• The default shell in Linux is “bash” but the default in FreeBSD is “tcsh", which is not friendly to scripting as compared to “bash” or “sh” in Linux.
There are other differences when considering FreeBSD vs Linux, including the organization of the OS file system and the choice of integrated firewall (Netfilter in Linux, PF in Free BSD). These may not matter to end users, however. In general, a previous familiarity with UNIX would point you toward FreeBSD while Linux may be more friendly for novices; FreeBSD would be a better choice for robust or server applications but Linux is considered the superior option for desktop use.