Science Fair Project Encyclopedia
FreeBSD and Linux
Both have dedicated communities that often leads to overzealous advocacy in either direction. There are many similarities that are often forgotten when contrasting the two, but those will be discussed after the differences. This article is an attempt to clarify the specific differences between only FreeBSD and Linux.
See operating system advocacy for a general discussion of the issue.
Almost all code in FreeBSD is under the BSD license (one notable exception being the compiler, gcc). The BSD license puts very few restrictions on what can be done with code placed under it. Essentially, the only restrictions are that the user must attribute the previous contributors (i.e. the user can't claim it was all his work), the user cannot claim that the previous contributors endorse the user's product, and the user cannot hold the contributors liable for any mistakes in the code. After meeting those restrictions, essentially anything else can be done with the code, including distributing closed-source modified versions.
The Linux kernel and much of the utilities commonly distributed with it are under the GNU General Public License. The GPL allows free use of the software licensed under it under essentially the same restrictions as the BSDL with the addition of the requirement that if modified code is distributed, then the changes must be made available in source code for all to use.
For discussion of the advocacy of one license over the other, see BSD and GPL licensing.
Generally, Linux is less centralized than FreeBSD.
Linux by itself is only a kernel. To function as an operating system other utilities (file and system utilities, shells, etc.) are required. These other utilities are gathered from various sources and collected together with the kernel by various groups in distributions. Kernel and system utilities are developed independently and merged together to form an operating system. This means that the kernel has one version, and all the other utilities in the operating system have others.
FreeBSD is more centralized. The kernel and basic system utilities are developed, versioned, and distributed together. Other programs, such as X and web browsers, can be brought in from elsewhere, but the basic system comes from one source and is designed specifically for the FreeBSD operating system. Being versioned together in the same CVS tree is an advantage. Changes must consider all affected parts, not just the particular part being changed. This leads to a more cohesive, polished system. In fact, the concept of a kernel version different from the rest of the system does not really exist in FreeBSD.
Moreover, Linux is fragmented. There are quite a number of concurrent distributions that all create their own patchwork of versions of all related components. While this to a certain extent also applies to FreeBSD (DragonFly, multiple major versions in parallel use), the amount of combinations of library versions and packaging decisions that one will encounter is much lower.
It is hard to say whether centralized or distributed is better, and both models have their advocates. One has to keep in mind, however, that the FreeBSD and Linux projects are not equal in size (as in contributors). A model that works for one doesn't necessarily work for the other. The same applies to FreeBSD vs the other BSDs, where FreeBSD is significantly larger.
Because the FreeBSD vs Linux argument is so common, it may be easy to forget all the similarities.
The two systems share much of the same functionality. They are often able to run programs coded for the other system. When a complete desktop environment, such as Gnome or KDE is running, the two systems are often impossible to tell apart. FreeBSD can also run Linux programs due to a very lightweight Linux subsystem, which is even capable of running commercial Linux software.
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details