Note: This article was written back in the year 2000 and is very outdated.
| FreeBSD | Linux | Windows 2000 | |
|---|---|---|---|
| Reliability | FreeBSD is extremely robust. There are
numerous testimonials of active servers with uptimes measured in years. The new
Soft Updates1 file system
optimizes disk I/O for high performance, yet still ensures reliability for transaction
based applications, such as databases. |
Linux is well known for its
reliability. Servers often stay up for years. However, disk I/O is non-synchronous by
default, which is less reliable for transaction based operations, and can produce a
corrupted filesystem after a system crash or power failure. But for the average user,
Linux is a very dependable OS. |
All Windows users are familiar with the
"Blue Screen of Death". Poor reliability is one of the major drawbacks of Windows. Some
of the major issues have been fixed in Windows XP, but "code bloat" has introduced many
more reliability problems. Windows XP uses a lot of system resources and it is very
difficult to keep the system up for more than a couple of months without it reverting to
a crawl as memory gets corrupted and filesystems fragmented. |
| Performance | FreeBSD is the system of choice for
high performance network applications. FreeBSD will outperform other systems when running
on equivalent hardware. The largest and busiest public server on the Internet at
ftp.freesoftware.com, uses FreeBSD to serve more than 1.2 terabyte/day of downloads.
FreeBSD is used by Yahoo!, Qwest, and many others as their main server OS because of its
ability to handle heavy network traffic with high performance and rock stable
reliability. |
Linux performs well for most applications,
however the performance is not so optimal under heavy network load. The network
performance of Linux is 20-30% below the capability of FreeBSD running on the same
hardware. The situation has improved somewhat recently and the 2.4 release of the Linux
kernel introduced a new virtual memory system based on the same concepts as the FreeBSD
VM system. Since both operating systems are open source, beneficial technologies are
shared and for this reason the performance of Linux and FreeBSD is rapidly
converging. |
Windows is adequate for routine desktop
applications, but it is unable to handle heavy network loads. A few organizations try to
make it work as an Internet server. For instance, barnesandnoble.com uses Windows NT, as
can be verified by the error messages that their webserver produces, such as this recent
example Error Message: [Microsoft][ODBC SQL Server Driver][SQL Server] Can't
allocate space for object 'queryHistory' in database 'web' because the 'default' segment
is full.. For their own "Hotmail" Internet servers, Microsoft used FreeBSD
for many years. |
| Security |
FreeBSD also has a notion of kernel security levels, virtual server jails, capabilities, ACLs, a very robust packet filtering firewall system, and intrusion detection tools. |
However, Linux does include a very robust packet filtering firewall system and a competent administrator can remove unsafe services. |
Microsoft Windows has been affected by a very large number of known security holes that have cost companies millions of dollars. |
| Filesystem | FreeBSD uses the Berkeley Fast
Filesystem, which is a little more complex than Linux's ext2. It offers a better way to
ensure filesystem data integrity, mainly with the "softupdates" option. This option
decreases synchronous I/O and increases asynchronous I/O because writes to an FFS
filesystem aren't synced on a sector basis but according to the filesystem structure.
This ensures that the filesystem is always coherent between two updates. The FreeBSD
filesystem also supports file flags, which can stop a would-be intruder dead in his
tracks. There are several flags that you can add to a file such as the immutable flag.
The immutable (schg) flag won't allow any alteration to the file or directory unless you
remove it. Other very handy flags are append only (sappnd), cannot delete (sunlnk), and
archive (arch). When you combine these with the kernel security level option, you have a
nearly impenetrable system. |
There are several new journalling filesystems for Linux that fix some of these issues. |
The Microsoft FAT filesystem and the
newer NTFS are both plagued by over 20 years of backwards compatibility with the earliest
of PC-based filesystems. These filesystems were not designed for today's demanding server
applications, they weren't even designed with a multi-user OS or networking in mind! |
| Device Drivers |
Fortunately, FreeBSD also includes full NDIS API compatibility, so that binary Windows network device drivers can be loaded into the FreeBSD kernel directly. |
The Linux community intentionally makes
it difficult for hardware manufacturers to release binary-only drivers. This is meant to
encourage hardware manufacturers to develop open-source device drivers. Unfortunately
most vendors have been unwilling to release the source for their drivers so it is very
difficult for Linux users to use vendor supplied drivers at all. |
Microsoft has excellent relationships
with hardware vendors. There are often conflicts when using device drivers on different
versions of Microsoft Windows, but overall Windows users have excellent access to third
party device drivers. |
| Commercial Applications | The number of commercial applications for
FreeBSD is growing rapidly, but is still below what is available for Windows. In addition
to native applications, FreeBSD can also run programs compiled for Linux, SCO Unix, and
BSD/OS. |
Many new commercial applications are
available for Linux, and more are being developed. Unfortunately, Linux can only run
binaries that are specifically compiled for Linux. It is unable to run programs compiled
for FreeBSD, SCO Unix, or other popular operating systems without significant
effort. |
There are thousands of applications
available for Windows, far more than for any other OS. Nearly all commercial desktop
applications run on Windows, and many of them are only available for Windows. If you have
an important application that only runs on Windows, then you may have no choice but to
run Windows. |
| Free Applications | There are many, many gigabytes of free
software applications available for FreeBSD. FreeBSD includes thousands of software
packages and an extensive ports collection, all with complete source code. Many people
consider the FreeBSD Ports Collection to be the most accessible and easiest to use
library of free software packages available anywhere. In fact, Gentoo Linux, NetBSD,
OpenBSD, and many other operating systems have borrowed and extended the famous FreeBSD
Ports Collection. |
There are huge numbers of free programs
available for Linux. All GNU software runs on both Linux and FreeBSD without
modification. Some of the free programs for Linux differ between distributions, because
Linux does not have a central ports collection. |
The amount of free Windows software is
much less than what is available for Unix. Many Windows applications are provided as
"shareware", without source code, so the programs cannot be customized, debugged,
improved, or extended by the user. |
| Development Environment | FreeBSD includes an extensive
collection of developer tools. You get a complete C/C++ development system (editor,
compiler, debugger, profiler, etc.) and powerful Unix development tools for Java, HTTP,
Perl, Python, TCL/TK, Awk, Sed, etc. All of these are free, and are included in the basic
FreeBSD installation. All come with full source code. |
Linux includes all the same development
tools as FreeBSD, with compilers and interpreters for every common programming language,
all the GNU programs, including the powerful GNU C/C++ Compiler, Emacs editor, and GDB
debugger. Unfortunately, due to the very splintered nature of Linux, applications that
you compile on one system (Red Hat) may not work on another Linux system
(Slackware). |
Very few development tools are included
with Windows XP. Most need to be purchased separately, and are rarely compatible with
each other. |
| Development Infrastructure | FreeBSD is an advanced BSD Unix
operating system. The source code for the entire system is available in a centralized
source code repository running under CVS. A large team (300+) of senior developers has
write access to this repository and they coordinate development by reviewing and
committing the best changes of the development community at large. FreeBSD is engineered
to find elegant solutions for overall goals, rather than quick hacks to add new
functionality. Since FreeBSD is a complete open-source operating system, rather than just
a kernel, you can recompile and reinstall the entire system by simply typing one command,
"make world". |
Linux is a Unix-like kernel that must be
combined with the GNU system to make a complete operating system. Linux does not use any
version control system so all bug-fixes and enhancements must be emailed back and forth
on mailing lists and ultimately submitted to the one person (Linus) who has authority to
commit the code to the tree. Due to the overwhelming amount of code that gets written, it
is impossible for one person to adequately quality control all of the pending changes.
For this reason there is a lot of code in Linux that was hastily written and would never
have been accepted into a more conservative operating system. |
Microsoft Windows is a
closed-source operating system driver by market demand rather than technical
merit. New technologies are rushed into the product before they have been properly
designed or fully implemented. Very little is known about the internal development
infrastructure of Microsoft but the "blue-screen of death" speaks for itself. |
| Support | Several organizations, including FreeBSD Mall, offer a wide range of support options
for FreeBSD. In addition to 24x7 professional support, there is a large amount of free,
informal support available through Usenet newsgroups and mailing lists, such as
questions@freebsd.org. Once a problem is found, source code patches are often available
within a few hours. |
Many organizations provide professional
support for Linux. All the major Linux vendors offer some level of support, and several
offer full 24x7 service. There are many forums where Linux questions are answered for
free, such as newsgroups and mailing lists. As a last resort, you can always use the
source to track down and fix a problem yourself. |
Although support is available for Windows
XP, you should be prepared to spend as long as an hour on hold, with no guarantee that
your problem will be resolved. Because of the closed source nature of Windows,
there is no informal, free support available, and bugs can only be fixed on Microsoft's
schedule, not yours. Windows XP is not updated frequently, you may wait years for bugs to
be fixed. |
| Price and Total Cost of Ownership | FreeBSD can be downloaded from the
Internet for free. Or it can be purchased on a four CDROM set along with several
gigabytes of applications for $40. All necessary documentation is included. Support is
available for free or for very low cost. There is no user licensing, so you can quickly
bring additional computers online. This all adds up to a very low total cost of
ownership. |
Linux is free. Several companies offer
commercial aggregations at very low cost. Applications and documentation is available for
little or no cost. There are no licensing restrictions, so Linux can be installed on as
many systems as you like for no additional cost. Linux's total cost of ownership is very
low. |
The server edition of Windows XP costs
nearly $700. Even basic applications cost extra. Users often spend many thousands of
dollars for programs that are included for free with Linux or FreeBSD. Documentation is
expensive, and very little on-line documentation is provided. A license is required for
every computer, which means delays and administrative overhead. The initial learning
curve for simple administration tasks is smaller than with Unix, but it also requires a
lot more work to keep the system running with any significant work load. |
| Total |
FreeBSD = 8 = 2 = 0 |
Linux = 4 = 4 = 2 |
Windows 2000 = 2 = 1 = 7 |
FreeBSD uses FFS, the Berkeley Fast File System, with the addition of "Soft Updates" for performance and consistency. FreeBSD 5.0-CURRENT (the development branch), gives user the ability to automatically snapshot file systems, as well as the ability to store extended attributes on files, in turn supporting other features such as Access Control Lists (ACLs). A paper title "Journaling Versus Soft Updates: Asynchronous Meta-data Protection in File Systems" presented at the USENIX 2000 Technical Conference discusses the performance and consistency differences between journaled and soft updates consistency mechanisms. This paper is available online from http://www.ece.cmu.edu/~gnager/papers/usenix2000.ps. This paper also discusses two different journaling implementations based on FFS and developed on FreeBSD. Clearly, FreeBSD is at the forefront of filesystem research and this is the source of many of its performance and reliability advantages.
For more information about Soft Updates, please see:
"Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast
Filesystem" by Marshall Kirk McKusick and Gregory R. Ganger.
> http://www.ece.cmu.edu/~gnager/papers/mckusick99.ps.
Numerous benchmarks have continued to show FreeBSD's clear advantage for network performance. Yahoo!, Xoom.com, Qwest, and some of our other largest customers have published results showing the clear case for using FreeBSD in the enterprise. It's important to understand that benchmarking is just a game, and that for real performance comparisons you need to perform real-world test. However, it's easy to find published benchmarks on the Internet which show FreeBSD with a commanding lead over the competition:
"Flexibility, in-house expertise, price/performance, and manageability," says Filo.
"Those are just a few of the reasons why the Intel Architecture and FreeBSD appeal to
use. By combining these platforms, we're able to deliver better, faster, and more
innovative solutions than our competitors." - David Filo, Chief Yahoo
> http://www.intel.com/ebusiness/casestudies/yahoo/buscase.htm
The Computer Emergency Response Team, or CERT, studies Internet security vulnerabilities, provides incident response services to sites that have been victims of attack, publishes a variety of security alerts, does research in wide-networked computing, and develops information and training to help improve security at Internet sites.
CERT Advisories in 2000 that affected Linux:
CERT Advisories in 2000 that affected Windows:
For more information about CERT and potential security exploits for your operating system, please see http://www.us-cert.gov/cas/techalerts/.
For more information about some of the enhanced security features of FreeBSD, please see http://www.trustedbsd.org.
Even with all the hyper about open standards, getting a program to compile on various Unix platforms can be a tricky task. Occasionally, you might be lucky enough to find that the program you want compiles cleanly on your system, install everything into all the right directories, and run flawlessly "out-of-the-box", but this behavior is somewhat rare. Most of the time, you find yourself needing to make modifications in order to get the program to work. This is where the FreeBSD Ports Collection comes to the rescue.
The general idea behind the Ports Collection is to eliminate all of the messy steps involved with making things work properly so that the installation is simple and painless. With the Ports Collection, all of the hard work has already been done for you, and you are able to install any of the Ports Collection ports by simply typing 'make install'.
The Ports Collection provides a makefile skeleton that describes where to download the software and how to compile and install it. There are currently over 11,500 applications in the FreeBSD Ports tree and with a single command the ports mechanism will automatically download the software source code, perform a checksum, uncompress the software, apply any FreeBSD-specific patches, configure the software, run the compilation, install the software, and clean up after itself! Ports can of course depend on other ports which are built automatically in the same fashion and binary packages can be used as well. The FreeBSD Ports Collection was recognized very early on as an elegant method to deal with a complex problem so it's functionality has been shared with the other BSD Unix systems and some Linux distributions as well.
This document was prepared by Bob Bruce and Murray Stokely, with input from Matt Dillon, Nathan dude, and many others.