doc/en/marketing/os-comparison.sgml
Hiroki Sato f9105467ef Merge new www design.
Submitted by:	Emily Boyd (emilyboyd at emilyboyd dot com)
Sponsored by:	Google Summer of Code 2005
2005-10-04 19:43:53 +00:00

550 lines
26 KiB
Text

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [
<!ENTITY base CDATA "..">
<!ENTITY date "$FreeBSD: www/en/marketing/os-comparison.sgml,v 1.7 2005/07/22 15:39:14 remko Exp $">
<!ENTITY email 'marketing'>
<!ENTITY title "FreeBSD vs. Linux vs. Windows 2000">
<!ENTITY % navincludes SYSTEM "../includes.navabout.sgml"> %navincludes;
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
<!ENTITY % developers SYSTEM "../developers.sgml"> %developers;
]>
<html>
&header;
<h1>How does your OS compare?</h1>
<table class="tblbasic">
<thead>
<tr>
<th> &nbsp; </th>
<th> FreeBSD </th>
<th> Linux </th>
<th> Windows 2000 </th>
</tr>
</thead>
<tbody>
<tr>
<td class="category">Reliability</td>
<td><img src="../gifs/smiley.png" alt="[Great]">FreeBSD is extremely robust.
There are numerous testimonials of active servers with uptimes
measured in years. The new <strong>Soft
Updates</strong><sup><small><a href="#1">1</a></small></sup>
file system optimizes disk I/O for high performance, yet still
ensures reliability for transaction based applications, such as
databases.</td>
<td><img src="../gifs/smiley.png" alt="[Great]">
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.</td>
<td><img src="../gifs/frowny.png" alt="[Bad]">
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.</td>
</tr>
<tr>
<td class="category">Performance</td>
<td><img src="../gifs/smiley.png" alt="[Great]">
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.</td>
<td><img src="../gifs/plain.png" alt="[OK]">
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.</td>
<td><img src="../gifs/frowny.png" alt="[Bad]">
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 <strong><tt>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.</tt></strong>. For their own "Hotmail" Internet
servers, Microsoft used FreeBSD for many years.</td>
</tr>
<tr>
<td class="category">Security</td>
<td><p><img src="../gifs/smiley.png" alt="[Great]">FreeBSD has been the subject
of a massive auditing project for several years. All of the
critical system components have been checked and rechecked for
security-related errors. The entire system is open source so
the security of the system can and has been verified by third
parties. A default FreeBSD installation has yet to be affected
by a single CERT advisory in 2000<small><sup><a
href="#3">3</a></sup></small>.</p>
<p>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.</p></td>
<td><p><img src="../gifs/frowny.png" alt="[Bad]">The open source nature of
Linux allows anyone to inspect the security of the code and make
changes, but in reality the Linux codebase is modified too
rapidly by inexperienced programmers. There is no formal code
review policy and for this reason Linux has been susceptible to
nearly every Unix-based CERT advisory of the year. This problem
is compounded by the fact that distributions like Red Hat tend
to turn on notoriously insecure services by default.</p>
<p>However, Linux does include a very robust packet filtering
firewall system and a competent administrator can remove unsafe
services.</p></td>
<td><p><img src="../gifs/frowny.png" alt="[Bad]">Microsoft claims that their
products are secure, but they offer no guarantee, and their
software is not available for inspection or peer review. Since
Windows is <em>closed source</em> there is no way for users to
fix or diagnose any of the security compromises that are regularly
published about Microsoft systems.</p>
<p>Microsoft Windows has been affected by a very large number of
known security holes that have cost companies millions of
dollars.</p></td>
</tr>
<tr>
<td class="category">Filesystem</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
<td><p><img src="../gifs/frowny.png" alt="[Bad]">The Linux ext2 filesystem gets
its performance from having an asynchronous mount. You can
mount FreeBSD FFS filesystems as asynchronous but this is very
dangerous and no seasoned Unix administrator would do this. It
is amazing that Linux is designed this way by default. Often a
hard crash permanently damages a mount. FreeBSD or Solaris can
sustain a very hard crash with only minor data loss, and the
filesystem will be remountable with few problems.</p>
<p>There are several new journalling filesystems for Linux that
fix some of these issues.</p></td>
<td><img src="../gifs/frowny.png" alt="[Bad]">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!</td>
</tr>
<tr>
<td class="category">Device Drivers</td>
<td><p><img src="../gifs/plain.png" alt="[OK]">The FreeBSD bootloader can load
binary drivers at boot-time. This allows third-party driver
manufacturers to distribute binary-only driver modules that can
be loaded into any FreeBSD system. Due to the open-source
nature of FreeBSD, it is very easy to develop device drivers for
new hardware. Unfortunately, most device manufacturers will
only release binaries for Microsoft operating systems. This
means that it can take several months after a hardware device
hits the market until a native device driver is available.</p>
<p>Fortunately, FreeBSD also includes full NDIS API compatibility,
so that binary Windows network device drivers can be loaded into
the FreeBSD kernel directly.</p>
</td>
<td><img src="../gifs/frowny.png" alt="[Bad]">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.</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
</tr>
<tr>
<td class="category">Commercial Applications</td>
<td><img src="../gifs/plain.png" alt="[OK]">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.</td>
<td><img src="../gifs/plain.png" alt="[OK]">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.</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
</tr>
<tr>
<td class="category">Free Applications</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
<td><img src="../gifs/frowny.png" alt="[Bad]">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.</td>
</tr>
<tr>
<td class="category">Development Environment</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
<td><img src="../gifs/plain.png" alt="[OK]">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).</td>
<td><img src="../gifs/frowny.png" alt="[Bad]">Very few development tools are
included with Windows XP. Most need to be purchased separately,
and are rarely compatible with each other.</td>
</tr>
<tr>
<td class="category">Development Infrastructure</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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".</td>
<td><img src="../gifs/plain.png" alt="[OK]">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.</td>
<td><img src="../gifs/frowny.png" alt="[Bad]">Microsoft Windows is a
<em>closed-source</em> 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.</td>
</tr>
<tr>
<td class="category">Support</td>
<td><img src="../gifs/smiley.png" alt="[Great]">Several organizations, including
<a href="http://www.freebsdmall.com">FreeBSD Mall</a>, 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.</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
<td><img src="../gifs/plain.png" alt="[OK]">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 <em>closed source</em> 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.</td>
</tr>
<tr>
<td class="category">Price and Total Cost of Ownership</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
<td><img src="../gifs/smiley.png" alt="[Great]">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.</td>
<td><img src="../gifs/frowny.png" alt="[Bad]">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.</td>
</tr>
<TR>
<TH>Total</TH>
<TD>
<H2>FreeBSD</H2>
<img src="../gifs/smiley.png" alt="[Great]"><B><BIG>= 8</BIG></B><BR>
<img src="../gifs/plain.png" alt="[OK]"><B><BIG>= 2</BIG></B><BR>
<img src="../gifs/frowny.png" alt="[Bad]"><B><BIG>= 0</BIG></B><BR>
</TD>
<TD>
<H2>Linux</H2>
<img src="../gifs/smiley.png" alt="[Great]"><B><BIG>= 4</BIG></B><BR>
<img src="../gifs/plain.png" alt="[OK]"><B><BIG>= 4</BIG></B><BR>
<img src="../gifs/frowny.png" alt="[Bad]"><B><BIG>= 2</BIG></B><BR>
</TD>
<TD>
<H2>Windows 2000</H2>
<img src="../gifs/smiley.png" alt="[Great]"><B><BIG>= 2</BIG></B><BR>
<img src="../gifs/plain.png" alt="[OK]"><B><BIG>= 1</BIG></B><BR>
<img src="../gifs/frowny.png" alt="[Bad]"><B><BIG>= 7</BIG></B><BR>
</TD>
</TR>
</tbody>
</table>
<h1>Footnotes</h1>
<a name="1"></a>
<h2>Filesystem</h2>
<p>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
<a
href="http://www.ece.cmu.edu/~gnager/papers/usenix2000.ps">http://www.ece.cmu.edu/~gnager/papers/usenix2000.ps</a>.
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.</p>
<p>For more information about Soft Updates, please see:</p>
<p>"Soft Updates: A Technique for Eliminating Most Synchronous Writes
in the Fast Filesystem" by Marshall Kirk McKusick and Gregory
R. Ganger.<br/> <a
href="http://www.ece.cmu.edu/~gnager/papers/mckusick99.ps">http://www.ece.cmu.edu/~gnager/papers/mckusick99.ps</a>.</p>
<a name="2"></a>
<h2>Performance Benchmarks</h2>
<p>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:</p>
<ul>
<li>Gartner Group Comparisons showing FreeBSD 20-30% faster than
Linux on identical hardware: <a
href="http://advisor.gartner.com/n_inbox/hotcontent/hc_2121999_3.html#h8">http://advisor.gartner.com/n_inbox/hotcontent/hc_2121999_3.html#h8</a>.</li>
<li>Filesystem Benchmarking with PostMark from Network Appliance:
<a
href="http://www.shub-internet.org/brad/FreeBSD/postmark.html">http://www.shub-internet.org/brad/FreeBSD/postmark.html</a></li>
<li>Is FreeBSD a Superior Server Platform to Linux? by Nathan
Boeger:
<a
href="http://www.webtechniques.com/archives/2001/01/infrrevu/">http://www.webtechniques.com/archives/2001/01/infrrevu/</a></li>
<li><p>"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<br/>
<a
href="http://www.intel.com/ebusiness/casestudies/yahoo/buscase.htm">http://www.intel.com/ebusiness/casestudies/yahoo/buscase.htm</a></p></li>
</ul>
<a name="3"></a>
<h2>Security</h2>
<p>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.<p>
<p><strong>CERT Advisories in 2000 that affected Linux:</strong></p>
<ul>
<li>CA-2000-22 - Input Validation Problems in LPRng</li>
<li>CA-2000-21 - Denial-of-Service Vulnerability in TCP/IP
Stacks</li>
<li>CA-2000-20 - Multiple Denial-of-Service Problems in ISC BIND</li>
<li>CA-2000-17 - Input Validation Problem in rpc.statd</li>
<li>CA-2000-13 - Two Input Validation Problems in FTPD</li>
<li>CA-2000-06 - Multiple Buffer Overflows in Kerberos Authenticated
Services</li>
<li>CA-2000-03 - Continuing Compromises of DNS servers</li>
</ul>
<p><strong>CERT Advisories in 2000 that affected Windows:</strong></p>
<ul>
<li>CA-2000-16 - Microsoft 'IE Script'/Access/OBJECT Tag
Vulnerability</li>
<li>CA-2000-14 - Microsoft Outlook and Outlook Express Cache Bypass
Vulnerability</li>
<li>CA-2000-12 - HHCtrl ActiveX Control Allows Local Files to be
Executed</li>
<li>CA-2000-10 - Inconsistent Warning Messages in Internet
Explorer</li>
<li>CA-2000-07 - Microsoft Office 2000 UA ActiveX Control
Incorrectly Marked "Safe for Scripting"</li>
<li>CA-2000-04 - Love Letter Worm</li>
</ul>
<p>For more information about CERT and potential security exploits for
your operating system, please see <a
href="http://www.us-cert.gov/cas/techalerts/">http://www.us-cert.gov/cas/techalerts/</a>.</p>
<p>For more information about some of the enhanced security features
of FreeBSD, please see <a
href="http://www.trustedbsd.org">http://www.trustedbsd.org</a>.</p>
<a name="4"></a>
<h2>Ports Collection</h2>
<p>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.</p>
<p>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'.</p>
<!-- XXX use os.numports entity -->
<p>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.</p>
<p>This document was prepared by Bob Bruce and Murray Stokely, with
input from Matt Dillon, Nathan dude, and many others.</p>
&footer;
</body>
</html>