How FreeBSD Compares to Other Operating Systems


When determining how FreeBSD compares to other operating systems, it's important to consider the mainstream desktop operating systems such as Windows XP and Mac OS X, as well as FreeBSD's chief open-source rival, Linux. This section explores these comparisons as well as those of other BSD-based operating systems.

Windows XP

Microsoft has done a good job of listening to what its customers want in an operating system. Windows XP doesn't allow you to "get under the hood" much. It is designed to work reasonably well for a wide variety of tasks without the user having to learn about the internals of the system. It does this, however, at the expense of some raw performance, efficiency, and especially flexibility. Windows XP has relatively steep hardware requirements, but many users are willing to accept this in exchange for ease of use, especially with the ever-plummeting costs of new computer hardware. In addition, because of the graphical design of Windows, "power users" can easily hit limits. There is only so much that can be done from a graphical user interfacethe user is limited to what buttons and controls are available in the software. The following list outlines some of the important differences between FreeBSD and Windows:

  • The Windows kernel cannot be customized. The kernel is the core of the operating system; it controls virtually every other aspect of how the system works. FreeBSD allows you to build a new kernel for the operating system that is customized for your specific system, enabling only the features and device drivers that you need, or adding driver support for newly developed devices. This can increase performance and reduce memory usage, as well as keep you from being at the mercy of official driver makers. Windows XP does not allow you to rebuild or customize the kernel. This is one of the areas where Windows XP sacrifices some efficiency and performance for ease of use.

  • Windows XP uses a GUI (graphical user interface) for almost all tasks, whereas FreeBSD relies much more on the command line. The GUI in Windows XP is laid out so that things are easy to find and common tasks are easy to perform. For example, setting up a network in Windows XP is done from a network control panel, and there are "wizards" that walk you through the process. FreeBSD, on the other hand, uses textbased configuration files for network configuration. Setting up the network involves editing one or more configuration files by hand. FreeBSD's philosophy means you're much more free to mess things up than in the regimented Windows interface, but it also means there is no Registry to corrupt, and configuration changes can be backed out using simple version control systems such as CVS (or merely with a text editor).

  • The Windows XP GUI is always running; the GUI in FreeBSD is optional. Although a GUI can make a workstation easier to use, it is wasteful on a backroom server because no one ever sees its screen anyway (and it can lead to security vulnerabilities as well). FreeBSD gives you the option of turning off the GUI or not using it at all. If you do choose to use a GUI, a wide variety of desktop environmentsGNOME, KDE, and many othersgive you great flexibility in tuning your GUI to your needs.

  • Windows requires special software for remote administration. Because everything in FreeBSD can be done from the command line, it is very easy to administer remotelyyou can connect to the command line shell using SSH and exchange simple text commands to control the computer. In FreeBSD, all system-administration tasks can be done from the command line. This makes remote administration easy. It can be done from any terminaleven a terminal that cannot display graphics. It can also be done from any type of system that is capable of running a terminal emulator. FreeBSD can be administered from another UNIX-like system, Windows system, Macintosh, and so on. Windows XP, on the other hand, requires the use of the GUI, and accessing a Windows system remotely requires that you install special remote client software and perform graphics-intensive operations that involve moving windows and mouse pointers on the remote system. Most remoteadministration tasks for Windows can be done only from a Windows machine or Macintosh with the Remote Desktop client installed, or from Linux or FreeBSD using the rdesktop package.

  • By nature, any GUI (including that of Windows XP) has limits that are not present in a command-line interface. A GUI is a user interface layer that exists at a high level, far separated from the kernel, and constrained by what features are designed into it. Only so many features can be crammed into a GUI. Sooner or later, a "power user" will want to do something that the operating system designers didn't consider. For example, the simple address book database demonstrated in the previous section could not be done with the software that is included with Windows. A similar system would require third-party software in Windows. The mailing list example could not be done with the software included with Windows, either. Using the textual command-line interface (CLI) in FreeBSD, where your commands are executed much closer to the kernel level, your flexibility and power is much greater than in a GUI-based system.

Mac OS X

Apple's graphical operating system, Mac OS X, serves much the same purpose as Windows XPit occupies the same niche in the computing world, with prescribed workflows designed into the graphical layout in a way that most agree is more intuitive and userfriendly than in Windows (it is, after all, Apple's claim to fame). It thus involves all the same advantages and sacrifices that Windows does, including the non-customizable kernel and the omnipresent, heavy GUI. It's also encumbered by requiring proprietary hardware on which to run, something that's anathema to FreeBSD.

However, Mac OS X can also be thought of as a hybrid operating system, falling somewhere between Windows and FreeBSD. Mac OS X is based on a true UNIX architecture, with a remotely accessible command-line interface that can be driven as usefully from a remote Windows or UNIX machine as the command-line shell of FreeBSD. Mac OS X is in fact based on NeXTSTEP, the operating system of Steve Jobs' company NeXT, which he based on 4.4BSDthe same code base that contributed much of its architecture to FreeBSD itself. If you're familiar with the plumbing underneath the pretty GUI of a Mac, you're already largely familiar with FreeBSD. Similarly, after you finish reading this book, you'll know a whole lot more about Mac OS X than you ever did before.

Linux

Unless you've been living in a cave for the last few years, you have at least heard of Linux, even if you don't know what it is. Linux is a work-alike clone of UNIX that has become extraordinarily popular in recent years. Like FreeBSD, it is open-source and developed by volunteers. Unlike FreeBSD, there is no single controlling authority for Linux, and there are well over 60 different distributions of it. More similarities than differences exist between FreeBSD and Linux. Both are excellent, multipurpose operating systems, and both can serve the needs of most users quite well. Although more software is available for Linux than for FreeBSD, FreeBSD can run almost all Linux software that is available, so compatibility is not really an issue. When running Linux software under FreeBSD, performance rarely suffersin fact, FreeBSD actually runs some Linux software faster than Linux itself does.

Here are some of the most important differences between FreeBSD and Linux:

  • FreeBSD has only one distribution, whereas Linux has more than 60 distributions. FreeBSD will work the same way on all systems in which it is installed. This is not true with Linux. Each Linux distribution has a slightly different way of doing things. For example, Slackware Linux uses BSD-type run control scripts, which control how various services are launched at startup. Debian Linux uses Sys V run control scripts in a different architecture than the BSD-style scripts; Red Hat Linux uses Sys V run control scripts but stores them in a different location than standard Sys V UNIX does. This can be confusing for users who move from one distribution of Linux to another because things may not work the same way from one distribution to the next. (The same argument can be made with FreeBSD versus NetBSD and OpenBSD, but the differences between these "flavors" of BSD UNIX are arguably more fundamental and significant than between the various distributions of Linux.)

  • FreeBSD is a complete operating system maintained by a core team; Linux is a kernel maintained by Linus Torvalds. Linux is not a complete operating system. It is a kernel. As mentioned in the section on Windows, the kernel is the core of the operating system. It controls the flow of data through the system, managing device drivers and networking, and keeping the system running while you run your applications in the foreground. The various companies that sell Linux distributions take the Linux kernel and package it with a bunch of other programs designed to work with Linux. Because each company has its own idea about what should be included in a distribution, you may find that a program you had available on one Linux system does not exist on another Linux system (although you could download and install it). This fact can also cause dependency problems when upgrading Linux. For example, you may upgrade your Linux kernel, only to find out that you need to upgrade several other packages as well, and in the meantime your system might not even boot. Because FreeBSD is a complete operating system, upgrades are generally easier to do because any dependencies are upgraded at the same time.

  • Development of Linux by its distribution organizations leads to many parallel code bases; contributions to FreeBSD are part of a single development effort. Although anyone can contribute to the FreeBSD project, such contributions can take place anywhere in the operating system. In Linux, kernel code changes must be approved by Linus Torvalds, but contributions elsewhere in the system become part of one distribution or another. Contributions to the FreeBSD source code need to be approved by the core team of committers (programmers who are part of the central FreeBSD development effort) before they will be merged into FreeBSD. This is good for most users because you can be sure that the code has been checked for problems by people who know what they are doing. It also helps to ensure that the code will not cause problems with other code that already exists. This is a common problem with Linux, which is why many Linux distributions seem to come with at least some part "broken" out of the box. Because there is only one base of FreeBSD code (commonly known as a source tree), this is far less of a problem with FreeBSD.

These are some of the most important differences between Linux and FreeBSD. Because FreeBSD has a single source tree that is controlled by a core team, it tends to be more stable than Linuxand therefore is often more suitable for a production environment. (Different distributions of Linux are focused on different applications, some for the flexibility of hobbyist machines, some for top-end enterprise and server installations.) The main drawback to this approach is that new features are not always implemented as quickly in FreeBSD as in Linux. There is a tradeoff here. Do you want stability for a production environment? Or do you want the latest gizmos and gadgets to play with at the expense of performance and stability?

NetBSD

NetBSD's claim to fame is the sheer number of platforms that it runs on. NetBSD has been ported to everything from PDAs to gaming consoles such as the Sony PS2. It also, of course, runs on the standard x86 hardware found in most PCs. The main drawbacks of NetBSD are that it is not as user-friendly as FreeBSD or as aggressively developed, and it doesn't have the number of applications ported to it that FreeBSD does. Because of this, new users who have x86 hardware are probably better off with FreeBSD.

OpenBSD

OpenBSD's main selling point is its security. Although much of this security comes from the default configuration, which can be mimicked in FreeBSD, some of it comes from unique OpenBSD features, such as the ability to encrypt the swap file (the region of the disk used for virtual memory). However, like NetBSD, OpenBSD is not nearly as userfriendly as FreeBSD, and it also doesn't have nearly the number of ported applications that FreeBSD has. Again, this is a result of the security-conscious focus of OpenBSD, which actively avoids incorporating superfluous features for fear of exposing security weaknesses. So once again, new users with x86 hardware who want the widest choice of applications and features are probably better off with FreeBSD.




FreeBSD 6 Unleashed
FreeBSD 6 Unleashed
ISBN: 0672328755
EAN: 2147483647
Year: 2006
Pages: 355
Authors: Brian Tiemann

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net