not have been there but was included due to a bad copy and paste. Requested by: hrs Approved by: gabor (mentor)
206 lines
8.6 KiB
Text
206 lines
8.6 KiB
Text
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based
|
|
Extension//EN" [
|
|
<!ENTITY base CDATA "..">
|
|
<!ENTITY date "$FreeBSD$">
|
|
<!ENTITY title "FreeBSD Advocacy Project">
|
|
<!ENTITY % navinclude.about "INCLUDE">
|
|
]>
|
|
|
|
<html>
|
|
&header;
|
|
|
|
<h1>Why Choose &os;?</h1>
|
|
|
|
<p>Why would you consider using &os;? We think that there are
|
|
lots of reasons. Here is a selection of reasons that some of
|
|
our existing users gave for their choice of operating system.</p>
|
|
|
|
<h2>The Community</h2>
|
|
|
|
<p>&os; is a community-driven operating system despite it being
|
|
sponsored corporately. &os; has active mailing lists,
|
|
forums, and IRC channels where experienced users and
|
|
developers are always willing to help the less
|
|
experienced.</p>
|
|
|
|
<p>The community is largely driven by technology, not ideology,
|
|
and is focused on building the best possible system and making
|
|
&os; as widely used as possible, not on pushing any other
|
|
agendas.</p>
|
|
|
|
<p>There is no dictator—benevolent or
|
|
otherwise—for the project. The Core Team is elected and
|
|
is nominally responsible for overseeing the goals of the project,
|
|
but this is a very light touch. Core mediates disputes between
|
|
developers, but rarely needs to take an active role in
|
|
development, beyond their separate contributions as individual
|
|
developers.</p>
|
|
|
|
<h2>Stability</h2>
|
|
|
|
<p>Stability means many different things. &os; very rarely
|
|
crashes (and when it does it is usually due to hardware
|
|
faults), but while that was a great boast a decade ago, now it
|
|
is an expected feature for any operating system.</p>
|
|
|
|
<p>Stability in &os; means much more than that. It means that
|
|
upgrading the system doesn't require upgrading the user.
|
|
Configuration interfaces do change over time, but only when
|
|
there is a good reason. If you learned how to use &os; in
|
|
2000, most of your knowledge would still be relevant.</p>
|
|
|
|
<p>Backwards compatibility is very important to the &os; team,
|
|
and any release in a major release series is expected to
|
|
be able to run any code—including kernel
|
|
modules—that ran on an earlier version. The entire base
|
|
system is developed together, including the kernel, the core
|
|
utilities, and the configuration system, so upgrades are
|
|
usually painless. Included tools like mergemaster help update
|
|
configuration files with little or no manual intervention.</p>
|
|
|
|
<h2>Early Adoption and Collaboration With Other Projects</h2>
|
|
|
|
<p>&os; has been one of the first adopters of the LLVM
|
|
infrastructure, including the clang compiler and the libc++
|
|
stack. The entire &os; 9.x system, including kernel and
|
|
userspace, can build with clang, and from &os; 9.1 both clang
|
|
and the permissively-licensed libc++ are included, giving a
|
|
modern, BSD-licensed C++ stack. Several &os; developers are
|
|
also active contributors to LLVM, ensuring that both projects
|
|
thrive together.</p>
|
|
|
|
<p>This same collaboration works downstream, with projects like
|
|
PC-BSD and pfSense building on top of the &os; base to provide
|
|
desktop and firewall oriented distributions, respectively.
|
|
These projects are not forks, they base their work on the
|
|
latest version of &os; and customize the system for specific
|
|
uses.</p>
|
|
|
|
<h2>Simple Configuration</h2>
|
|
|
|
<p>&os; service initialization is very simple. Each service,
|
|
whether part of the base system or installed from a port, comes
|
|
with a script that is responsible for starting and stopping it
|
|
(and often some other options). The /etc/rc.conf file
|
|
contains a list of variables for enabling and configuring
|
|
services. Want to enable ssh? Just add sshd_enable="YES" to
|
|
your rc.conf file. This system makes it easy to see at a
|
|
glance everything that will be started when your system
|
|
boots.</p>
|
|
|
|
<p>The rc system that reads this file understands dependencies
|
|
between services and so can automatically launch them in
|
|
parallel, or wait until one is finished before starting the
|
|
things that it needs. You get all of the benefits of a modern
|
|
configuration system, without a complex interface.</p>
|
|
|
|
<h2>Ports</h2>
|
|
|
|
<p>The ports tree contains a large collection of third-party
|
|
software, including older versions of some things where the
|
|
userbase is divided about the benefits of upgrading, and a lot
|
|
of niche programs. The chances are that anything you want to
|
|
run which works on &os; will be there.</p>
|
|
|
|
<p>Unlike some other systems, &os; maintains a clean division
|
|
between the base system and third-party ports and packages.
|
|
All third-party software goes in /usr/local, so if you want to
|
|
repurpose a machine then it's trivial to simply delete all
|
|
installed packages and then start installing the ones that you
|
|
want.</p>
|
|
|
|
<p>The upcoming pkgng tool makes working with binary packages
|
|
even easier, although source installs are still supported for
|
|
people who want the level of configurability that this
|
|
implies.</p>
|
|
|
|
<h2>Security</h2>
|
|
|
|
<p>Security is vital in any network-connected machine. &os;
|
|
provides a number of tools for ensuring that you can maintain a
|
|
secure system, such as:</p>
|
|
|
|
<ul>
|
|
<li>Jails, allowing you to run applications or entire systems
|
|
in a sandbox that can't access the rest of the system. With
|
|
tools like ezjail and ZFS you can instantly create a new
|
|
jail with a clone of an existing system, using a tiny amount
|
|
of disk space, and run untrusted code inside it.</li>
|
|
<li>Mandatory Access Control, from the TrustedBSD project,
|
|
allowing you to configure access control policies for all
|
|
operating system resources.</li>
|
|
<li>Capsicum, from &os; 9 onwards, allows developers to easily
|
|
implement privilege separation, reducing the impact of
|
|
compromised code.</li>
|
|
<li>The VuXML system for publishing vulnerabilities in ports,
|
|
which integrates with tools such as portaudit, so that your
|
|
daily security email tells you about any known
|
|
vulnerabilities in ported software.</li>
|
|
<li>Security event auditing, using the BSM standard.</li>
|
|
</ul>
|
|
|
|
<p>And, of course, all of the standard features that you'd
|
|
expect from a modern &unix; system including IPSec, SSH, and so
|
|
on.</p>
|
|
|
|
<h2>ZFS</h2>
|
|
|
|
<p>Cheap snapshots, clones, end-to-end checksums, deduplication,
|
|
compression, and no need to decide partition sizes on install.
|
|
Using ZFS for a few days makes going back to a more
|
|
traditional volume manager painful. If you want to test
|
|
something with ZFS, then it's trivial to just create a
|
|
snapshot and roll back if it didn't work.</p>
|
|
|
|
<p>If you're using jails, then ZFS lets you clone an existing
|
|
jail in under a second, irrespective of how big the jail
|
|
itself is.</p>
|
|
|
|
<h2>GEOM</h2>
|
|
|
|
<p>Even without ZFS, &os; comes with a rich storage system.
|
|
GEOM layers providers and consumers in arbitrary ways,
|
|
allowing you to use two networked machines for
|
|
high-availability storage, use your choice of RAID level, or
|
|
add features like compression or encryption.</p>
|
|
|
|
<h2>Working Sound</h2>
|
|
|
|
<p>&os; 4.x introduced in-kernel sound mixing, so that multiple
|
|
applications could play sound at the same time even with cheap
|
|
sound cards with no hardware mixing support. &os; 5.x
|
|
automatically allocated new channels to applications, without
|
|
any configuration.</p>
|
|
|
|
<p>Now, &os; has low-latency sound mixing with per-application
|
|
volume controls and full support for the OSS 4 APIs out of the
|
|
box. There's no need to configure a userspace sound daemon.
|
|
The same audio APIs that were used a decade ago still work on
|
|
&os;, including some compatibility modes to allow
|
|
applications that try to manipulate the global volume to only
|
|
change their own. If you want to watch DVDs with 5.1 surround
|
|
sound, just install your favourite media player and press
|
|
play.</p>
|
|
|
|
<h2>My System, How I Want It</h2>
|
|
|
|
<p>&os; gives you an easy-to-use, working, &unix;-like system.
|
|
This base system can then be extended easily. If you want to
|
|
run KDE or GNOME, then just install the metapackage for the
|
|
version that you prefer. If you want a headless server, then
|
|
it's equally easy to install the server tools that you want.</p>
|
|
|
|
<p>It's easy to run the &os; installer via a serial port and to
|
|
configure the entire system from the terminal. It's also easy
|
|
to install and use an existing desktop environment. The
|
|
decisions about the kind of system you want to use are left to
|
|
you.</p>
|
|
|
|
<p>If you're deploying &os; in a corporate environment, then
|
|
it's very easy to customise both the base system and the set
|
|
of installed packages for your specific requirements. The
|
|
build system provides numerous tuneable variables allowing you
|
|
to build exactly the base system that meets your needs.</p>
|
|
|
|
&footer;
|
|
</html>
|