443 lines
18 KiB
Plaintext
443 lines
18 KiB
Plaintext
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
|
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
|
|
%man;
|
|
|
|
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
|
%freebsd;
|
|
|
|
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
|
|
%authors;
|
|
|
|
<!ENTITY % teams PUBLIC "-//FreeBSD//ENTITIES DocBook Team Entities//EN">
|
|
%teams;
|
|
|
|
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//EN">
|
|
%mailing-lists;
|
|
|
|
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
|
|
%release;
|
|
]>
|
|
|
|
<article>
|
|
<articleinfo>
|
|
<title>Early Adopter's Guide to &os; 5.0-RELEASE</title>
|
|
|
|
<authorgroup>
|
|
<corpauthor>The &os; Release Engineering Team</corpauthor>
|
|
</authorgroup>
|
|
|
|
<pubdate>$FreeBSD$</pubdate>
|
|
|
|
<copyright>
|
|
<year>2002</year>
|
|
<holder role="mailto:re@FreeBSD.org">The &os; Release
|
|
Engineering Team</holder>
|
|
</copyright>
|
|
</articleinfo>
|
|
|
|
<sect1>
|
|
<title>Introduction</title>
|
|
|
|
<para>&os; 5.0 marks the first new major version of &os; in
|
|
over two years. Besides a number of new features, it also
|
|
contains a number of major developments in the underlying system
|
|
architecture.
|
|
Along with these advances, however, comes a system that
|
|
incorporates a tremendous amount of new and not-widely-tested
|
|
code. Compared to the existing line of
|
|
4.<replaceable>X</replaceable> releases, 5.0 may have regressions
|
|
in areas of stability, performance, and occasionally
|
|
functionality.</para>
|
|
|
|
<para>For these reasons, the &a.re; does <emphasis>not</emphasis>
|
|
encourage users to blindly update from older &os; releases to
|
|
5.0. Specifically, for more conservative users, we recommend
|
|
running 4.<replaceable>X</replaceable> releases (such as
|
|
4.7-RELEASE or the upcoming 4.8-RELEASE) for the near-term
|
|
future. We feel that such users are probably best served by
|
|
upgrading to 5.<replaceable>X</replaceable> only after a
|
|
5-STABLE development branch has been created; this may be around
|
|
the time of 5.1-RELEASE or 5.2-RELEASE.</para>
|
|
|
|
<para>(&os; 5.0 suffers from what has been described as a
|
|
<quote>chicken and egg</quote> problem. The entire project has
|
|
a goal of producing a 5.0-RELEASE that is as stable and reliable
|
|
as possible. This stability and reliability requires widespread
|
|
testing, particularly of the system's newer features. However,
|
|
getting a large number of users to test the system, in a
|
|
practical sense, means building and distributing a
|
|
release first!)</para>
|
|
|
|
<para>This article describes some of the issues involved in
|
|
installing and running &os; 5.0-RELEASE. We begin with a
|
|
brief overview of the &os; release process. We then present
|
|
some of the more noteworthy new features in &os; 5.0, along
|
|
with some areas that may prove troublesome for unwary users.
|
|
For those users choosing to remain with 4-STABLE-based releases,
|
|
we give some of the short- to medium-term plans for this
|
|
development branch. Finally, we present some notes on upgrading
|
|
existing 4.<replaceable>X</replaceable> systems to 5.0.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>An Overview of the &os; Release Process</title>
|
|
|
|
<para>&os; employs a model of development that relies on multiple
|
|
development branches within the source code repository. The main branch is called
|
|
<quote>CURRENT</quote>, and is referred to in the CVS repository
|
|
with the <literal>HEAD</literal> tag. New features are
|
|
committed first to this branch; although this means that CURRENT
|
|
is the first to see new functionality, it also means that it
|
|
occasionally suffers from breakages as new features are
|
|
added and debugged.</para>
|
|
|
|
<para>Most &os; releases are made from one of several
|
|
<quote>STABLE</quote> branches. Features are only added to
|
|
these branches after some amount of testing in CURRENT. At the
|
|
moment, only one STABLE branch is under active development; this
|
|
branch is referred to as <quote>4-STABLE</quote>, and all of the
|
|
&os; 4.<replaceable>X</replaceable> releases were based on
|
|
it. This branch has the tag <literal>RELENG_4</literal> in the
|
|
CVS repository.</para>
|
|
|
|
<para>&os; 5.0 will be based on the CURRENT branch. This
|
|
will be the first release from this branch in over two years (the
|
|
last was &os; 4.0, in March 2000).</para>
|
|
|
|
<para>At some point after the release of &os; 5.0, a
|
|
<quote>5-STABLE</quote> branch will be created in the &os;
|
|
CVS repository with the branch tag <literal>RELENG_5</literal>.
|
|
The past two stable branches (3-STABLE and 4-STABLE) were
|
|
created immediately after their respective <quote>dot-oh</quote>
|
|
releases (3.0 and 4.0, respectively). In hindsight, this
|
|
practice did not give sufficient time for either CURRENT or the new
|
|
STABLE branches to stabilize after the new branches were
|
|
created.</para>
|
|
|
|
<para>Therefore, the release engineering team will only create the
|
|
5-STABLE branch in the CVS repository after they have found a
|
|
relatively stable state to use as its basis. It is likely that
|
|
there will be
|
|
multiple releases in the 5.<replaceable>X</replaceable> series
|
|
before this happens; we estimate
|
|
that the 5-STABLE branch will be created sometime after
|
|
5.1-RELEASE or 5.2-RELEASE.</para>
|
|
|
|
<para>More information on &os; release engineering processes can be found
|
|
on the <ulink
|
|
url="http://www.FreeBSD.org/releng/index.html">Release
|
|
Engineering Web pages</ulink> and in the &os; <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/index.html">Release
|
|
Engineering</ulink> article.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>New Features</title>
|
|
|
|
<para>A large attraction of &os; 5.0 is a number of new
|
|
features. These new features and functionality generally involve
|
|
large architectural changes that were not feasible to port back to
|
|
the &os; 4-STABLE development branch. (By contrast, many
|
|
self-contained enhancements, such as new device drivers or
|
|
userland utilities, have already been ported.) A brief, but not
|
|
exhaustive list includes:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>SMPng: The <quote>next generation</quote> support for
|
|
SMP machines (work in progress). There is now partial
|
|
support for multiple processors to be running in the kernel
|
|
at the same time.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>KSE: Kernel Scheduled Entities allow a single process
|
|
to have multiple kernel-level threads, similar to Scheduler
|
|
Activations.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>New architectures: Support for the sparc64 and ia64
|
|
architectures, in addition to the i386, pc98, and
|
|
alpha.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>GCC: The compiler toolchain is now based on a GCC
|
|
3.2.1 pre-release snapshot, rather than GCC
|
|
2.95.<replaceable>X</replaceable>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>MAC: Support for extensible, loadable Mandatory Access
|
|
Control policies.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>GEOM: A flexible framework for transformations of disk
|
|
I/O requests. An experimental disk encryption facility has
|
|
been developed based on GEOM.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>FFS: The FFS filesystem now supports background
|
|
&man.fsck.8; operations (for faster crash recovery) and
|
|
filesystem snapshots.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>UFS2: A new UFS2 on-disk format has been added, which
|
|
supports extended per-file attributes and larger file
|
|
sizes.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Cardbus: Support for Cardbus devices.</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>A more comprehensive list of new features can be found in
|
|
the release notes for &os; 5.0.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Drawbacks to Early Adoption</title>
|
|
|
|
<para>Along with the new features of &os; 5.0 come some areas
|
|
that can cause problems, or at least can lead to unexpected
|
|
behavior. Generally, these come from the fact that a number of
|
|
features are works-in-progress. A partial list of these
|
|
areas of difficulty includes:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>A number of features are not yet finished. Examples
|
|
from the feature list above include SMPng and KSE.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Because of changes in kernel data structures and
|
|
ABIs/APIs, third-party binary device drivers will require
|
|
modifications to work correctly under &os; 5.0. There is
|
|
a possibility of more minor ABI/API changes before the
|
|
5-STABLE branch is created.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Several parts of &os;'s base system functionality
|
|
have been moved to the Ports Collection. Notable examples
|
|
include <application>Perl</application>,
|
|
<application>UUCP</application>, and most (but not all)
|
|
games. While these programs are still supported, their
|
|
removal from the base system may cause some confusion.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>A number of ports and packages do not build or do not
|
|
run correctly under &os; 5.0, whereas they did under &os;
|
|
4-STABLE. Generally these problems are caused by compiler
|
|
toolchain changes or cleanups of header files.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Because &os; 5.0 is the first release from the
|
|
CURRENT branch in over two years, many of its features are
|
|
seeing wide exposure for the first time. Many of these
|
|
features (such as SMPng) have broad impacts on the
|
|
kernel.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>A certain amount of debugging and diagnostic code is
|
|
still in place to help track down problems in &os; 5.0's new
|
|
features. This may cause &os; 5.0 to perform more slowly
|
|
than 4-STABLE.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Features are only added to the 4-STABLE development
|
|
branch after a <quote>settling time</quote> in -CURRENT.
|
|
&os; 5.0 does not have the stabilizing influence of a
|
|
-STABLE branch. (It is likely that the 5-STABLE development
|
|
branch will be created sometime after 5.1-RELEASE or
|
|
5.2-RELEASE.)</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Documentation (such as the &os; <ulink
|
|
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/index.html">Handbook</ulink>
|
|
and <ulink
|
|
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html">FAQ</ulink>)
|
|
may not reflect changes recently made to &os; 5.0.</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>Because a number of these drawbacks affect system stability, the
|
|
release engineering team recommends that more conservative sites
|
|
and users stick to releases based on the 4-STABLE branch until
|
|
the 5.<replaceable>X</replaceable> series is more polished.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Plans for the 4-STABLE Branch</title>
|
|
|
|
<para>The release of &os; 5.0 does not mean the end of the
|
|
4-STABLE branch. There will be at least one more release on
|
|
this branch, namely 4.8-RELEASE, currently scheduled for 1
|
|
February 2003.</para>
|
|
|
|
<para>As of this writing, the release engineering team has no
|
|
definite plans for future releases (past 4.8) on the 4-STABLE
|
|
branch. However, a 4.9-RELEASE or even a 4.10-RELEASE are
|
|
likely possibilities. Any future releases from this branch will
|
|
depend on several factors. The most important of these
|
|
is the existence and stability of the 5-STABLE branch. If
|
|
CURRENT is not sufficiently stable to allow the creation of a
|
|
5-STABLE branch, this may require and permit more releases from
|
|
the 4-STABLE branch. Until the last declared release
|
|
on the 4-STABLE branch, new features may be merged from HEAD at
|
|
the discretion of developers, subject to existing release
|
|
engineering policies.</para>
|
|
|
|
<para>To some extent, the release engineering team will take into
|
|
account user demand for future 4-STABLE releases. This demand,
|
|
however, will need to be balanced with release engineering
|
|
resources (in terms of personnel, computing resources, and mirror
|
|
archive space).</para>
|
|
|
|
<para>The &a.security-officer; will continue to support releases
|
|
made from the 4-STABLE branch in accordance with their published
|
|
policies, which can be found on the <ulink
|
|
url="http://www.FreeBSD.org/security/index.html">Security
|
|
page</ulink> on the &os; web site. Generally, the two most
|
|
recent releases from any branch will be supported with respect
|
|
to security advisories and security fixes. At its discretion,
|
|
the team may support other releases.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Notes on Upgrading</title>
|
|
|
|
<para>For those users with existing &os; systems, this section
|
|
offers a few notes on upgrading a &os;
|
|
4.<replaceable>X</replaceable> system to
|
|
5.<replaceable>X</replaceable>. As with any &os; upgrade, it
|
|
is crucial to read the release notes and the errata for the
|
|
version in question, as well as
|
|
<filename>src/UPDATING</filename> for source upgrades.</para>
|
|
|
|
<sect2>
|
|
<title>Binary Upgrades</title>
|
|
|
|
<para>Probably the most straightforward approach is that of
|
|
<quote>backup everything, reformat, reinstall, and restore
|
|
everything</quote>. This eliminates problems of incompatible
|
|
or obsolete executables or configuration files polluting the
|
|
new system.</para>
|
|
|
|
<para>As of this time, the binary upgrade option in
|
|
&man.sysinstall.8; has not been well-tested for
|
|
cross-major-version upgrades. Using this feature is not
|
|
recommended. In particular, a binary upgrade will leave
|
|
behind a number of files that are present in &os;
|
|
4.<replaceable>X</replaceable> but not in 5.0. These obsolete
|
|
files may create some problems.</para>
|
|
|
|
<para>On the i386 and pc98 platforms, a UserConfig utility
|
|
exists on 4-STABLE to allow boot-time configuration of ISA
|
|
devices when booting from installation media. Under &os;
|
|
5.0, this functionality has been replaced in part by the
|
|
&man.device.hints.5; mechanism (it allows specifying the same
|
|
parameters, but with a very different interface).</para>
|
|
|
|
<para>Floppy-based binary installations may require downloading
|
|
a third, new floppy image holding additional device drivers
|
|
in kernel modules. This <filename>drivers.flp</filename>
|
|
floppy image will generally be found in the same location as
|
|
the usual <filename>kern.flp</filename> and
|
|
<filename>mfsroot.flp</filename> floppy images.</para>
|
|
|
|
<para>CDROM-based installations on the i386 architecture now use
|
|
a <quote>no-emulation</quote> boot loader. This allows, among
|
|
other things, the use of a <literal>GENERIC</literal> kernel,
|
|
rather than the stripped-down kernel on the floppy images. In
|
|
theory, any system capable of booting the Microsoft Windows NT
|
|
4 installation CDROMs should be able to cope with the &os;
|
|
5.0 CDROMs.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Source Upgrades</title>
|
|
|
|
<para>Reading <filename>src/UPDATING</filename> is absolutely
|
|
essential. The section entitled <quote>To upgrade from
|
|
4.x-stable to current</quote> contains a step-by-step update
|
|
procedure. This procedure must be followed exactly, without
|
|
making use of the <quote>shortcuts</quote> that some users
|
|
occasionally employ.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Common Notes</title>
|
|
|
|
<para><application>Perl</application> has been removed from the
|
|
base system. The recommended way of installing Perl is either
|
|
from a pre-built package or from the Ports Collection.
|
|
Building Perl as a part of the base system created a number of
|
|
difficulties which made updates problematic.
|
|
The base system utilities that used Perl have either
|
|
been rewritten (if still applicable) or discarded (if
|
|
obsolete).<para>
|
|
|
|
<para>Some scripts expect to find a Perl interpreter at
|
|
<filename>/usr/bin/perl</filename>. The
|
|
<filename>use.perl</filename> command, a part of the Perl
|
|
port, can be used to create an appropriate set of symbolic
|
|
links for them. In particular, <command>use.perl
|
|
port</command> will generally set things up as
|
|
expected.</para>
|
|
|
|
<para>It is generally possible to run old
|
|
4.<replaceable>X</replaceable> executables under
|
|
5.<replaceable>X</replaceable>, but this requires the
|
|
<filename>compat4x</filename> distribution to be installed.
|
|
Thus, using old ports <emphasis>may</emphasis> be
|
|
possible.</para>
|
|
|
|
<para>When installing or upgrading over the top of an existing
|
|
4-STABLE-based system, it is extremely important to clear out
|
|
old header files in <filename>/usr/include</filename>.
|
|
Renaming or moving this directory before a binary installation
|
|
or an <literal>installworld</literal> is generally
|
|
sufficient. If this step is not taken, confusion may result
|
|
(especially with C++ programs) as the compiler may wind up
|
|
using a mixture of obsolete and current header files.</para>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1>
|
|
|
|
<title>Summary</title>
|
|
|
|
<para>While &os; 5.0 contains a number of new and exciting
|
|
features, it may not be suitable for all users at this time. In
|
|
this document, we presented some background on release
|
|
engineering, some of the more notable new features of the 5.<replaceable>X</replaceable>
|
|
series, and some drawbacks to early adoption. We also presented
|
|
some future plans for the 4-STABLE development branch and some
|
|
tips on upgrading for early adopters.</para>
|
|
|
|
</sect1>
|
|
</article>
|