[BACK]Return to 34.html CVS log [TXT][DIR] Up to [local] / www

File: [local] / www / 34.html (download) (as text)

Revision 1.72, Wed May 6 13:31:34 2020 UTC (4 years ago) by deraadt
Branch: MAIN
CVS Tags: HEAD
Changes since 1.71: +1 -2 lines

be less different from other similar files

<!doctype html>
<html lang=en id=release>
<meta charset=utf-8>

<title>OpenBSD 3.4</title>
<meta name="description" content="OpenBSD 3.4">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="openbsd.css">
<link rel="canonical" href="https://www.openbsd.org/34.html">

<h2 id=OpenBSD>
<a href="index.html">
<i>Open</i><b>BSD</b></a>
3.4
</h2>

<table>
<tr>
<td>
<a href="images/Hood.gif">
<img width="255" height="343" src="images/Hood.gif" alt="Hood"></a>

<td>
Released Nov 1, 2003<br>
Copyright 1997-2003, Theo de Raadt.<br>
<cite class=isbn>ISBN 0-9731791-2-0</cite>
<br>
3.4 Song: <a href="lyrics.html#34">"The Legend of Puffy Hood"</a>
<br>
<br>
<ul>
<li>See the information on <a href="ftp.html">the FTP page</a> for
    a list of mirror machines.
<li>Go to the <code class=reldir>pub/OpenBSD/3.4/</code> directory on
    one of the mirror sites.
<li>Have a look at <a href="errata34.html">The 3.4 Errata page</a> for a list
    of bugs and workarounds.
<li>See a <a href="plus34.html">detailed log of changes</a> between the
    3.3 and 3.4 releases.
</ul>
<p>
All applicable copyrights and credits are in the src.tar.gz,
sys.tar.gz, xenocara.tar.gz, ports.tar.gz files, or in the
files fetched via <code>ports.tar.gz</code>.
</table>

<hr>

<section id=new>
<h3>What's New</h3>
<p>
This is a partial list of new features and systems included in OpenBSD 3.4.
For a comprehensive list, see the <a href="plus34.html">changelog</a> leading
to 3.4.
<p>

<ul>

<li>The i386 architecture has been switched to the
    <a href="https://man.openbsd.org/elf">ELF</a>
     executable format.
<p>

<li>Further W^X improvements, including support for the i386 architecture.
    Native i386 binaries have their executable segments rearranged to support
    isolating code from data, and the CPU CS limit is used to impose a best
    effort limit on code execution.
<p>

<li><a href="https://man.openbsd.org/ld.so">ld.so(1)</a>
    on ELF platforms now loads libraries in a random order for
    greater resistance to attacks.  The i386 architecture also maps libraries
    into somewhat randomized addresses.  Together with W^X and
    <a href="http://www.research.ibm.com/trl/projects/security/ssp/">ProPolice</a>,
    these changes increase the difficulty of successfully exploiting an
    application error, such as a buffer overflow.
<p>

<li>A static bounds checker has been added to the compiler to perform basic
    checks on functions which accept buffers and sizes.  The checker aims to
    find common mistakes in the use of library functions such as
    <a href="https://man.openbsd.org/strlcpy">strlcpy(3)</a>
    or <a href="https://man.openbsd.org/sscanf">sscanf(3)</a>
    without emitting any false positives.  Running it over the source and ports
    trees revealed over a hundred real bugs, which were fixed and submitted back
    to the original authors where possible.
<p>

<li>Privilege separation has been implemented for the
    <a href="https://man.openbsd.org/syslogd">syslogd(8)</a>
    daemon, making it much more robust against future errors.  The child which
    listens to network traffic now runs as a normal user and chroots itself,
    while the parent process tracks the state of the child and performs
    privileged operations on its behalf.
<p>

<li>Many unsafe string functions have been removed from the kernel and userland
    utilities.  This audit is one of the most comprehensive OpenBSD has ever
    done, with thousands of occurrences of
    <a href="https://man.openbsd.org/strcpy">strcpy(3)</a>,
    <a href="https://man.openbsd.org/strcat">strcat(3)</a>,
    <a href="https://man.openbsd.org/sprintf">sprintf(3)</a>,
    and
    <a href="https://man.openbsd.org/vsprintf">vsprintf(3)</a>
    being replaced with safer, bounded alternatives such as
    <a href="https://man.openbsd.org/strlcpy">strlcpy(3)</a>,
    <a href="https://man.openbsd.org/strlcat">strlcat(3)</a>,
    <a href="https://man.openbsd.org/snprintf">snprintf(3)</a>,
    <a href="https://man.openbsd.org/vsnprintf">vsnprintf(3)</a>,
    and
    <a href="https://man.openbsd.org/asprintf">asprintf(3)</a>.
<p>

<li>Many improvements to and bugs fixed in the
    <a href="http://www.research.ibm.com/trl/projects/security/ssp/">
    ProPolice</a> stack protector.  Several other code generation bugs
    for RISC architectures fixed.
<p>

<li><a href="http://www.research.ibm.com/trl/projects/security/ssp/">
    ProPolice</a> stack protection has been enabled in the kernel as well.
<p>

<li>Privilege separation has been implemented in the X server.  The privileged
    child process is responsible for the operations that can't be done after the
    main process has switched to a non-privileged user. This greatly reduces the
    potential damage that could be caused by malicious X clients, in case of
    bugs in the X server.
<p>

<li>Emulation support for binary compatibility is now controlled via
    <a href="https://man.openbsd.org/sysctl.8">sysctl(8)</a>.
    Emulation is now disabled by default to limit exposure to malicious
    binaries, and can be enabled in
    <a href="https://man.openbsd.org/sysctl.conf">
    sysctl.conf(5)</a>.
<p>

<li>Manual pages have been greatly cleaned up and improved.
<p>

<li>The ports tree now supports building programs under
    <a href="https://man.openbsd.org/systrace">
    systrace(1)</a>, preventing the possibility of applications harming the
    system at compile-time via trojaned configuration scripts or otherwise.
<p>

<li>Symbol caching in
    <a href="https://man.openbsd.org/ld.so">ld.so(1)</a>
    reduces the startup time of large applications.
<p>

<li>More license fixes, including the removal of the advertising clause
    for large parts of the source tree.
<p>

<li>Replacement of GNU
<a href="https://man.openbsd.org/diff">diff(1)</a>,
<a href="https://man.openbsd.org/diff3">diff3(1)</a>,
<a href="https://man.openbsd.org/grep">grep(1)</a>,
<a href="https://man.openbsd.org/egrep">egrep(1)</a>,
<a href="https://man.openbsd.org/fgrep">fgrep(1)</a>,
<a href="https://man.openbsd.org/zgrep">zgrep(1)</a>,
<a href="https://man.openbsd.org/zegrep">zegrep(1)</a>,
<a href="https://man.openbsd.org/zfgrep">zfgrep(1)</a>,
<a href="https://man.openbsd.org/gzip">gzip(1)</a>,
<a href="https://man.openbsd.org/zcat">zcat(1)</a>,
<a href="https://man.openbsd.org/gunzip">gunzip(1)</a>,
<a href="https://man.openbsd.org/gzcat">gzcat(1)</a>,
<a href="https://man.openbsd.org/zcmp">zcmp(1)</a>,
<a href="https://man.openbsd.org/zmore">zmore(1)</a>,
<a href="https://man.openbsd.org/zdiff">zdiff(1)</a>,
<a href="https://man.openbsd.org/zforce">zforce(1)</a>,
<a href="https://man.openbsd.org/gzexe">gzexe(1)</a>,
and
<a href="https://man.openbsd.org/znew">znew(1)</a>
commands with BSD licensed equivalents.
<p>

<li>Addition of read-only support for
    <a href="https://man.openbsd.org/mount_ntfs">NTFS</a>
    file systems.
<p>

<li>Reliability improvements to layered file systems, enabling
    <a href="https://man.openbsd.org/mount_null">NULLFS</a>
    to work again.
<p>

<li>Import of
    <a href="https://man.openbsd.org/growfs">growfs(8)</a>
    utility, allowing expansion of existing file systems.
<p>

<li>Improvements to
    <a href="https://man.openbsd.org/compat_linux">linux emulation</a>
    enabling more applications to run.
<p>

<li>Significant improvements to the
    <a href="https://man.openbsd.org/pthreads">pthreads(3)</a>
    library.
<p>

<li>Replace many static fd_set uses, to instead use
    <a href="https://man.openbsd.org/poll">poll(2)</a>
or dynamic allocation.
<p>

<li>ANSIfication and stricter prototypes for a large portion of the source tree.
<p>

<li>Legacy KerberosIV support has been removed, and the remaining KerberosV
    codebase has been restructured for easier management.
<p>

<li>Over 2400 ports, 2200 pre-built packages.
<p>

<li>A large number of bug fixes, changes, and optimizations to our packet filter
    <a href="https://man.openbsd.org/pf">pf(4)</a>
    including:
<ul>
<li>packet tagging (e.g. filter on tags added by bridge based on MAC address)
<li>stateful TCP normalization (prevent uptime calculation and NAT detection)
<li>passive OS detection (filter or redirect connections based on source OS)
<li>SYN proxy (protect servers against SYN flood attacks)
<li>adaptive state timeouts (prevent state table overflows under attack)
</ul>
<p>

<li>Improved hardware support, including:
<ul>
<li>Kauai ATA controllers (Apple ATA100 wdc)
    <a href="https://man.openbsd.org/kauaiata&arch=macppc">
    kauaiata(4)</a> enabling support for Powerbook 12" and 17" models.
<li>Support for controlling LongRun registers on Transmeta CPUs.
<li>Many fixes to
    <a href="https://man.openbsd.org/aac">aac(4)</a>,
    <a href="https://man.openbsd.org/ahc">ahc(4)</a>,
    <a href="https://man.openbsd.org/osiop">osiop(4)</a>,
    and <a href="https://man.openbsd.org/siop">siop(4)</a>
    SCSI drivers.
<li>New
    <a href="https://man.openbsd.org/it">it(4)</a>,
    <a href="https://man.openbsd.org/lm">lm(4)</a>, and
    <a href="https://man.openbsd.org/viaenv">viaenv(4)</a>
    hardware monitor drivers.
<li>New
    <a href="https://man.openbsd.org/safe">safe(4)</a>
    driver for SafeNet crypto accelerators.
<li>New
    <a href="https://man.openbsd.org/mtd">mtd(4)</a>
    driver for Myson Technologies network cards.
<li>More ethernet cards supported by
    <a href="https://man.openbsd.org/sk">sk(4)</a>,
    <a href="https://man.openbsd.org/wi">wi(4)</a>,
    <a href="https://man.openbsd.org/fxp">fxp(4)</a>,
    and <a href="https://man.openbsd.org/dc.4">dc(4)</a>.
<li>Massive overhaul and sync with NetBSD of the entire
    <a href="https://man.openbsd.org/usb.4">usb(4)</a>
    support system.
<li>New and better support for various controllers in
    <a href="https://man.openbsd.org/pciide">pciide(4)</a>,
    including experimental support for Serial ATA.
<li>New drivers to support
    <a href="https://man.openbsd.org/mgx&arch=sparc">
    mgx(4)</a> and
    <a href="https://man.openbsd.org/pninek&arch=sparc">
    pninek(4)</a> SPARC framebuffers. The
    <a href="https://man.openbsd.org/vigra&arch=sparc">
    vigra(4)</a> driver also supports more models.
<li><a href="https://man.openbsd.org/pcmcia">pcmcia(4)</a>
    support for Tadpole SPARCBooks and SPARCs with pcmcia-sbus bridges.
<li>Watchdog support for
    <a href="https://man.openbsd.org/elansc&arch=i386">elansc(4)</a>
    and
    <a href="https://man.openbsd.org/geodesc&arch=i386">geodesc(4)</a>
    as used on Soekris boards.
</ul>
<p>

<li>The system includes the following major components from outside suppliers:
<ul>
<li>XFree86 4.3.0 (+ patches, and i386 contains 3.3.X servers also, thus
    providing support for all chipsets)
<li>Gcc 2.95.3 (+ patches)
<li>Perl 5.8.0 (+ patches)
<li>Apache 1.3.28, mod_ssl 2.8.15, DSO support (+ patches)
<li>OpenSSL 0.9.7b (+ patches)
<li>Groff 1.15
<li>Sendmail 8.12.9 (+ parse8.359.2.8 security patch)
<li>Bind 9.2.2 (+ patches)
<li>Lynx 2.8.4rel.1 with HTTPS and IPv6 support (+ patches)
<li>Sudo 1.6.7p5
<li>Ncurses 5.2
<li>Latest KAME IPv6
<li>Heimdal 0.6rc1 (+ patches)
<li>Arla-current
<li>OpenSSH 3.7.1 (now with GSSAPI support)
</ul>
<p>

<p>
<li>Many improvements for security and reliability (look for the red
print in the <a href="plus34.html">complete changelog</a>).
<p>
<li> and much more.

</ul>
</section>

<hr>

<section id=install>
<h3>How to install</h3>
<p>
Following this are the instructions which you would have on a piece of
paper if you had purchased a CDROM set instead of doing an alternate
form of install.  The instructions for doing an ftp (or other style
of) install are very similar; the CDROM instructions are left intact
so that you can see how much easier it would have been if you had
purchased a CDROM instead.
<p>

<hr>
Please refer to the following files on the three CDROMs or ftp mirror for
extensive details on how to install OpenBSD 3.4 on your machine:
<p>
<ul>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/i386/INSTALL.i386">
	.../OpenBSD/3.4/i386/INSTALL.i386 (on CD1)</a>
<p>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/macppc/INSTALL.macppc">
	.../OpenBSD/3.4/macppc/INSTALL.macppc (on CD2)</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/vax/INSTALL.vax">
	.../OpenBSD/3.4/vax/INSTALL.vax (on CD2)</a>
<p>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/sparc/INSTALL.sparc">
	.../OpenBSD/3.4/sparc/INSTALL.sparc (on CD3)</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/sparc64/INSTALL.sparc64">
	.../OpenBSD/3.4/sparc64/INSTALL.sparc64 (on CD3)</a>
<p>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/alpha/INSTALL.alpha">
	.../OpenBSD/3.4/alpha/INSTALL.alpha</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/hp300/INSTALL.hp300">
	.../OpenBSD/3.4/hp300/INSTALL.hp300</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/hppa/INSTALL.hppa">
	.../OpenBSD/3.4/hppa/INSTALL.hppa</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/mac68k/INSTALL.mac68k">
	.../OpenBSD/3.4/mac68k/INSTALL.mac68k</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/3.4/mvme68k/INSTALL.mvme68k">
	.../OpenBSD/3.4/mvme68k/INSTALL.mvme68k</a>
</ul>
</section>

<hr>

<section id=quickinstall>

<p>
Quick installer information for people familiar with OpenBSD, and the
use of the "disklabel -E" command.  If you are at all confused when
installing OpenBSD, read the relevant INSTALL.* file as listed above!

<h3>OpenBSD/i386:</h3>

<p>
Play with your BIOS options to enable booting from a CD. The OpenBSD/i386
release is on CD1. If your BIOS does not support booting from CD, you will need
to create a boot floppy to install from. To create a boot floppy write
<i>CD1:3.4/i386/floppy34.fs</i> to a floppy and boot via the floppy drive.

<p>
Use <i>CD1:3.4/i386/floppyB34.fs</i> instead for greater scsi controller
support, or <i>CD1:3.4/i386/floppyC34.fs</i> for better laptop support.

<p>
If you are planning on dual booting OpenBSD with another OS, you will need to
read the included INSTALL.i386 document.

<p>
To make a boot floppy under MS-DOS, use the &quot;rawrite&quot; utility located
at <i>CD:/3.4/tools/rawrite.exe</i>. To make the boot floppy under a Unix OS,
use the <a href="https://man.openbsd.org/dd.1">dd(1)</a>
utility. The following is an example usage of
<a href="https://man.openbsd.org/dd.1">dd(1)
</a>, where the device could be &quot;floppy&quot;, &quot;rfd0c&quot;, or
&quot;rfd0a&quot;.

<blockquote><pre>
# <kbd>dd if=&lt;file&gt; of=/dev/&lt;device&gt; bs=32k</kbd>
</pre></blockquote>

<p>
Make sure you use properly formatted perfect floppies with NO BAD BLOCKS or
your install will most likely fail. For more information on creating a boot
floppy and installing OpenBSD/i386 please refer to
<a href="faq/faq4.html#MkFlop">this page</a>.

<h3>OpenBSD/macppc:</h3>

<p>
Put the CD2 in your CDROM drive and poweron your machine while holding down the
<i>C</i> key until the display turns on and shows <i>OpenBSD/macppc boot</i>.

<p>
Alternatively, at the Open Firmware prompt, enter <i>boot cd:,ofwboot
/3.4/macppc/bsd.rd</i>

<h3>OpenBSD/vax:</h3>

<p>
Boot over the network via mopbooting as described in INSTALL.vax.

<h3>OpenBSD/sparc:</h3>

<p>
The 3.4 release of OpenBSD/sparc is located on CD3. To boot off of this CD you
can use one of the two commands listed below, depending on the version of your
ROM.

<blockquote><pre>
> <kbd>boot cdrom 3.4/sparc/bsd.rd</kbd>
or
> <kbd>b sd(0,6,0)3.4/sparc/bsd.rd</kbd>
</pre></blockquote>

<p>
If your sparc does not have a CD drive, you can alternatively boot from floppy.
To do so you need to write &quot;CD3:3.4/sparc/floppy34.fs&quot; to a floppy.
For more information see <a href="faq/faq4.html#MkFlop">this page</a>. To boot from
the floppy use one of the two commands listed below, depending on the version of
your ROM.

<blockquote><pre>
> <kbd>boot floppy</kbd>
or
> <kbd>boot fd()</kbd>
</pre></blockquote>

<p>
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
will most likely fail.

<p>
If your sparc doesn't have a floppy drive nor a CD drive, you can either
setup a bootable tape, or install via network, as told in the
INSTALL.sparc file.

<h3>OpenBSD/sparc64:</h3>

<p>
Put the CD3 in your CDROM drive and type <i>boot cdrom</i>.

<p>
If this doesn't work, or if you don't have a CDROM drive, you can write
<i>CD3:3.4/sparc64/floppy34.fs</i> to a floppy and boot it with <i>boot
floppy</i>.<br>
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
will most likely fail.

<p>
You can also write <i>CD3:3.4/sparc64/miniroot34.fs</i> to the swap partition on
the disk and boot with <i>boot disk:b</i>.

<p>
If nothing works, you can boot over the network as described in INSTALL.sparc64

<h3>OpenBSD/alpha:</h3>

<p>
Write <i>3.4/alpha/floppy34.fs</i> or
<i>3.4/alpha/floppyB34.fs</i> (depending on your machine) to a diskette and
enter <i>boot dva0</i>. Refer to INSTALL.alpha for more details.

<p>
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
will most likely fail.

<h3>OpenBSD/hp300:</h3>

<p>
Boot over the network by following the instructions in INSTALL.hp300.

<h3>OpenBSD/hppa:</h3>

<p>
Boot over the network by following the instructions in INSTALL.hppa or the
<a href="hppa.html#netboot">hppa platform page</a>.

<h3>OpenBSD/mac68k:</h3>

<p>
Boot MacOS as normal and partition your disk with the appropriate A/UX
configurations.  Then, extract the Macside utilities from
<i>3.4/mac68k/utils</i> onto your hard disk.  Run Mkfs to create your
filesystems on the A/UX partitions you just made.  Then, use the
"BSD/Mac68k Installer" to copy all the sets in <i>3.4/mac68k/</i> onto your
partitions.  Finally, you will be ready to configure the "BSD/Mac68k
Booter" with the location of your kernel and boot the system.

<h3>OpenBSD/mvme68k:</h3>

<p>
You can create a bootable installation tape or boot over the network.<br>
The network boot requires a MVME68K BUG version that supports the <i>NIOT</i>
and <i>NBO</i> debugger commands. Follow the instructions in INSTALL.mvme68k
for more details.
</section>

<hr>

<section id=sourcecode>
<h3>Notes about the source code</h3>
<p>
<code>src.tar.gz</code> contains a source archive starting at <code>/usr/src</code>.
This file contains everything you need except for the kernel sources, which are
in a separate archive.  To extract:
<blockquote><pre>
# <kbd>mkdir -p /usr/src</kbd>
# <kbd>cd /usr/src</kbd>
# <kbd>tar xvfz /tmp/src.tar.gz</kbd>
</pre></blockquote>
<p>
<code>sys.tar.gz</code> contains a source archive starting at <code>/usr/src/sys</code>.
This file contains all the kernel sources you need to rebuild kernels.
To extract:
<blockquote><pre>
# <kbd>mkdir -p /usr/src/sys</kbd>
# <kbd>cd /usr/src</kbd>
# <kbd>tar xvfz /tmp/sys.tar.gz</kbd>
</pre></blockquote>
<p>
Both of these trees are a regular CVS checkout.  Using these trees it
is possible to get a head-start on using the anoncvs servers as
described <a href="anoncvs.html">here</a>.
Using these files
results in a much faster initial CVS update than you could expect from
a fresh checkout of the full OpenBSD source tree.
</section>

<hr>

<section id=ports>
<h3>Ports Tree</h3>
<p>
A ports tree archive is also provided.  To extract:
<blockquote><pre>
# <kbd>cd /usr</kbd>
# <kbd>tar xvfz /tmp/ports.tar.gz</kbd>
</pre></blockquote>
<p>
The <i>ports/</i> subdirectory is a checkout of the OpenBSD ports tree.  Go
read the <a href="faq/faq15.html">ports</a> page
if you know nothing about ports
at this point.  This text is not a manual of how to use ports.
Rather, it is a set of notes meant to kickstart the user on the
OpenBSD ports system.
<p>
The <i>ports/</i> directory represents a CVS (see the manpage for
<a href="https://man.openbsd.org/cvs.1">cvs(1)</a> if
you aren't familiar with CVS) checkout of our ports.  As with our complete
source tree, our ports tree is available via anoncvs.  So, in
order to keep current with it, you must make the <i>ports/</i> tree
available on a read-write medium and update the tree with a command
like:
<blockquote><pre>
# <kbd>cd [portsdir]/; cvs -d anoncvs@server.openbsd.org:/cvs update -Pd -rOPENBSD_3_4</kbd>
</pre></blockquote>
<p>
[Of course, you must replace the local directory and server name here
with the location of your ports collection and a nearby anoncvs
server.]
<p>
Note that most ports are available as packages on our mirrors. Updated
packages for the 3.4 release will be made available if problems arise.
<p>
If you're interested in seeing a port added, would like to help out, or just
would like to know more, the mailing list
<a href="mail.html">ports@openbsd.org</a> is a good place to know.
</section>