Jump to content

User:Taxman/BSD and Linux

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 131.155.228.51 (talk) at 21:09, 26 August 2004 (Similarities). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

FreeBSD and Linux are two open source operating systems.

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. See Operating system advocacy for a general discussion of the issue. This article is an attempt to clarify the specific differences between only FreeBSD and Linux.

Differences

Licensing

  • FreeBSD - almost all code in FreeBSD is under the BSD License. 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 their 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.
  • Linux - 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 vs. GPL license

Organization

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 several concurent distributions that all create their own patchwork of versions of all related components. While this to a certain extend 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 what is better, centralised or distributed, and both models have their advocates. However one has to keep in mind 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. Even if FreeBSD went all distributed, it is unlikely that they would grow to match Linux in size, because Linux has been boosted by the hype in the dotcom bubble. (the use of hype is not meant negatively here)

Similarities

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, they two systems are often impossible to tell apart. FreeBSD can even run Linux programs due to a very lightweight Linux subsystem that is capable of running even commercial Linux software.