1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Early Adopter's Guide to FreeBSD 5.0-RELEASE</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.73 ">
<link rel="STYLESHEET" type="text/css" href="docbook.css">
</head>
<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
"#0000FF" vlink="#840084" alink="#0000FF">
<div class="ARTICLE">
<div class="TITLEPAGE">
<h1 class="TITLE"><a name="AEN2">Early Adopter's Guide to
FreeBSD 5.0-RELEASE</a></h1>
<div class="AUTHORGROUP">
<a name="AEN4"></a>
<h3 class="CORPAUTHOR">The FreeBSD Release Engineering
Team</h3>
</div>
<p class="COPYRIGHT">Copyright © 2002 by The FreeBSD
Release Engineering Team</p>
<p class="PUBDATE">$FreeBSD:
src/release/doc/en_US.ISO8859-1/early-adopter/article.sgml,v
1.5 2002/11/03 22:06:48 ceri Exp $<br>
</p>
<hr>
</div>
<div class="SECT1">
<hr>
<h1 class="SECT1"><a name="AEN10">1 Introduction</a></h1>
<p>FreeBSD 5.0 marks the first new major version of FreeBSD
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.<tt class="REPLACEABLE"><i>X</i></tt>
releases, 5.0 may have regressions in areas of stability,
performance, and occasionally functionality.</p>
<p>For these reasons, the Release Engineering Team <tt
class="EMAIL"><<a href=
"mailto:re@FreeBSD.org">re@FreeBSD.org</a>></tt> does
<span class="emphasis"><i class="EMPHASIS">not</i></span>
encourage users to blindly update from older FreeBSD
releases to 5.0. Specifically, for more conservative users,
we recommend running 4.<tt class=
"REPLACEABLE"><i>X</i></tt> 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.<tt class="REPLACEABLE"><i>X</i></tt> only after a
5-STABLE development branch has been created; this may be
around the time of 5.1-RELEASE or 5.2-RELEASE.</p>
<p>(FreeBSD 5.0 suffers from what has been described as a
``chicken and egg'' 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!)</p>
<p>This article describes some of the issues involved in
installing and running FreeBSD 5.0-RELEASE. We begin with a
brief overview of the FreeBSD release process. We then
present some of the more noteworthy new features in FreeBSD
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.<tt class=
"REPLACEABLE"><i>X</i></tt> systems to 5.0.</p>
</div>
<div class="SECT1">
<hr>
<h1 class="SECT1"><a name="AEN23">2 An Overview of the
FreeBSD Release Process</a></h1>
<p>FreeBSD employs a model of development that relies on
multiple development branches within the source code
repository. The main branch is called ``CURRENT'', and is
referred to in the CVS repository with the <tt class=
"LITERAL">HEAD</tt> 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.</p>
<p>Most FreeBSD releases are made from one of several
``STABLE'' 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 ``4-STABLE'', and all of the
FreeBSD 4.<tt class="REPLACEABLE"><i>X</i></tt> releases
were based on it. This branch has the tag <tt class=
"LITERAL">RELENG_4</tt> in the CVS repository.</p>
<p>FreeBSD 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 FreeBSD 4.0, in March 2000).</p>
<p>At some point after the release of FreeBSD 5.0, a
``5-STABLE'' branch will be created in the FreeBSD CVS
repository with the branch tag <tt class=
"LITERAL">RELENG_5</tt>. The past two stable branches
(3-STABLE and 4-STABLE) were created immediately after
their respective ``dot-oh'' 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.</p>
<p>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.<tt
class="REPLACEABLE"><i>X</i></tt> series before this
happens; we estimate that the 5-STABLE branch will be
created sometime after 5.1-RELEASE or 5.2-RELEASE.</p>
<p>More information on FreeBSD release engineering
processes can be found on the <a href=
"http://www.FreeBSD.org/releng/index.html" target=
"_top">Release Engineering Web pages</a> and in the FreeBSD
<a href=
"http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/index.html"
target="_top">Release Engineering</a> article.</p>
</div>
<div class="SECT1">
<hr>
<h1 class="SECT1"><a name="AEN43">3 New Features</a></h1>
<p>A large attraction of FreeBSD 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 FreeBSD 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:</p>
<ul>
<li>
<p>SMPng: The ``next generation'' 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.</p>
</li>
<li>
<p>KSE: Kernel Scheduled Entities allow a single
process to have multiple kernel-level threads, similar
to Scheduler Activations.</p>
</li>
<li>
<p>New architectures: Support for the sparc64 and ia64
architectures, in addition to the i386, pc98, and
alpha.</p>
</li>
<li>
<p>GCC: The compiler toolchain is now based on GCC
3.<tt class="REPLACEABLE"><i>X</i></tt>, rather than
GCC 2.95.<tt class="REPLACEABLE"><i>X</i></tt>.</p>
</li>
<li>
<p>MAC: Support for extensible, loadable Mandatory
Access Control policies.</p>
</li>
<li>
<p>GEOM: A flexible framework for transformations of
disk I/O requests. An experimental disk encryption
facility has been developed based on GEOM.</p>
</li>
<li>
<p>FFS: The FFS filesystem now supports background <a
href=
"http://www.FreeBSD.org/cgi/man.cgi?query=fsck&sektion=8&manpath=FreeBSD+5.0-current">
<span class="CITEREFENTRY"><span class=
"REFENTRYTITLE">fsck</span>(8)</span></a> operations
(for faster crash recovery) and filesystem
snapshots.</p>
</li>
<li>
<p>UFS2: A new UFS2 on-disk format has been added,
which supports extended per-file attributes and larger
file sizes.</p>
</li>
<li>
<p>Cardbus: Support for Cardbus devices.</p>
</li>
</ul>
<p>A more comprehensive list of new features can be found
in the release notes for FreeBSD 5.0.</p>
</div>
<div class="SECT1">
<hr>
<h1 class="SECT1"><a name="AEN72">4 Drawbacks to Early
Adoption</a></h1>
<p>Along with the new features of FreeBSD 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:</p>
<ul>
<li>
<p>A number of features are not yet finished. Examples
from the feature list above include SMPng and KSE.</p>
</li>
<li>
<p>Because of changes in kernel data structures and
ABIs/APIs, third-party binary device drivers will
require modifications to work correctly under FreeBSD
5.0.</p>
</li>
<li>
<p>Several parts of FreeBSD's base system functionality
have been moved to the Ports Collection. Notable
examples include <b class="APPLICATION">Perl</b>, <b
class="APPLICATION">UUCP</b>, and most (but not all)
games. While these programs are still supported, their
removal from the base system may cause some
confusion.</p>
</li>
<li>
<p>A number of ports and packages do not build or do
not run correctly under FreeBSD 5.0, whereas they did
under FreeBSD 4-STABLE. Generally these problems are
caused by compiler toolchain changes or cleanups of
header files.</p>
</li>
<li>
<p>Because FreeBSD 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.</p>
</li>
<li>
<p>A certain amount of debugging and diagnostic code is
still in place to help track down problems in FreeBSD
5.0's new features. This may cause FreeBSD 5.0 to
perform more slowly than 4-STABLE.</p>
</li>
<li>
<p>Features are only added to the 4-STABLE development
branch after a ``settling time'' in -CURRENT. FreeBSD
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.)</p>
</li>
</ul>
<p>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.<tt class=
"REPLACEABLE"><i>X</i></tt> series is more polished.</p>
</div>
<div class="SECT1">
<hr>
<h1 class="SECT1"><a name="AEN95">5 Plans for the 4-STABLE
Branch</a></h1>
<p>The release of FreeBSD 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.</p>
<p>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.</p>
<p>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).</p>
<p>The Security Officer Team <tt class="EMAIL"><<a
href=
"mailto:security-officer@FreeBSD.org">security-officer@FreeBSD.org</a>></tt>
will continue to support releases made from the 4-STABLE
branch in accordance with their published policies, which
can be found on the <a href=
"http://www.FreeBSD.org/security/index.html" target=
"_top">Security page</a> on the FreeBSD 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.</p>
</div>
<div class="SECT1">
<hr>
<h1 class="SECT1"><a name="AEN103">6 Notes on
Upgrading</a></h1>
<p>For those users with existing FreeBSD systems, this
section offers a few notes on upgrading a FreeBSD 4.<tt
class="REPLACEABLE"><i>X</i></tt> system to 5.<tt class=
"REPLACEABLE"><i>X</i></tt>. As with any FreeBSD upgrade,
it is crucial to read the release notes and the errata for
the version in question, as well as <tt class=
"FILENAME">src/UPDATING</tt> for source upgrades.</p>
<div class="SECT2">
<hr>
<h2 class="SECT2"><a name="AEN109">6.1 Binary
Upgrades</a></h2>
<p>Probably the most straightforward approach is that of
``backup everything, reformat, reinstall, and restore
everything''. This eliminates problems of incompatible or
obsolete executables or configuration files polluting the
new system.</p>
<p>As of this time, the binary upgrade option in <a href=
"http://www.FreeBSD.org/cgi/man.cgi?query=sysinstall&sektion=8&manpath=FreeBSD+5.0-current">
<span class="CITEREFENTRY"><span class=
"REFENTRYTITLE">sysinstall</span>(8)</span></a> has not
been well-tested for cross-major-version upgrades. Using
this feature is not recommended.</p>
<p>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
FreeBSD 5.0, this functionality has been replaced in part
by the <a href=
"http://www.FreeBSD.org/cgi/man.cgi?query=device.hints&sektion=5&manpath=FreeBSD+5.0-current">
<span class="CITEREFENTRY"><span class=
"REFENTRYTITLE">device.hints</span>(5)</span></a>
mechanism (it allows specifying the same parameters, but
is not interactive).</p>
<p>Floppy-based binary installations may require
downloading a third, new floppy image holding additional
device drivers in kernel modules. This <tt class=
"FILENAME">drivers.flp</tt> floppy image will generally
be found in the same location as the usual <tt class=
"FILENAME">kern.flp</tt> and <tt class=
"FILENAME">mfsroot.flp</tt> floppy images.</p>
<p>CDROM-based installations on the i386 architecture now
use a ``no-emulation'' boot loader. This allows, among
other things, the use of a <tt class=
"LITERAL">GENERIC</tt> 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
FreeBSD 5.0 CDROMs.</p>
</div>
<div class="SECT2">
<hr>
<h2 class="SECT2"><a name="AEN128">6.2 Source
Upgrades</a></h2>
<p>Reading <tt class="FILENAME">src/UPDATING</tt> is
absolutely essential. The section entitled ``To upgrade
from 4.x-stable to current'' contains a step-by-step
update procedure. This procedure must be followed
exactly, without making use of the ``shortcuts'' that
some users occasionally employ.</p>
</div>
<div class="SECT2">
<hr>
<h2 class="SECT2"><a name="AEN134">6.3 Common
Notes</a></h2>
<p><b class="APPLICATION">Perl</b> 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).</p>
<p>It is generally possible to run old 4.<tt class=
"REPLACEABLE"><i>X</i></tt> executables under 5.<tt
class="REPLACEABLE"><i>X</i></tt>, but this requires the
<tt class="FILENAME">compat4x</tt> distribution to be
installed. Thus, using old ports <span class=
"emphasis"><i class="EMPHASIS">may</i></span> be
possible.</p>
<p>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 <tt class=
"FILENAME">/usr/include</tt>. Renaming or moving this
directory before a binary installation or an <tt class=
"LITERAL">installworld</tt> 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.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h1 class="SECT1"><a name="AEN146">7 Summary</a></h1>
<p>While FreeBSD 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.0 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.</p>
</div>
</div>
<hr>
<p align="center"><small>This file, and other release-related
documents, can be downloaded from <a href=
"http://snapshots.jp.FreeBSD.org/">http://snapshots.jp.FreeBSD.org/</a>.</small></p>
<p align="center"><small>For questions about FreeBSD, read the
<a href="http://www.FreeBSD.org/docs.html">documentation</a>
before contacting <<a href=
"mailto:questions@FreeBSD.org">questions@FreeBSD.org</a>>.</small></p>
<p align="center"><small><small>All users of FreeBSD 5-CURRENT
should subscribe to the <<a href=
"mailto:current@FreeBSD.org">current@FreeBSD.org</a>>
mailing list.</small></small></p>
<p align="center">For questions about this documentation,
e-mail <<a href=
"mailto:doc@FreeBSD.org">doc@FreeBSD.org</a>>.</p>
<br>
<br>
</body>
</html>
|