2.1. What Is OpenBSD? OpenBSD is a Unix-like computer operating system that is widely regarded for its excellent documentation and its fanatical focus on security. In October of 1995, Theo de Raadt forked the NetBSD code and formed OpenBSD with the goal of making a free (in the context of rights, not price), highly functional operating system that concentrated on security while remaining as portable as possible. NetBSD was originally based on the last release of the academic replacement for AT&T Unix known as the Berkeley Software Distribution (4.4BSD-Lite), so OpenBSD's heritage reaches back considerably further than many other operating systems in development today. OpenBSD is designed to be secure by default. The simplest way to explain this concept is to say that everything that could potentially be a security risk is turned off or disabled until you turn on or enable it. That means that while you may have the Apache web server installed, it is not going to start until you either run its daemon from the command line or manually add httpd (the service name that corresponds to Apache) to the system startup script. OpenSSH services will also be unavailable unless specifically enabled. Because it is secure by default, you may have to do more initial configuration with OpenBSD than with most other Unix- like operating systems, and that is why this guide existsto show you how to get an OpenBSD machine up and running quickly. 2.2. What Is OpenBSD Good For? OpenBSD is frequently employed as a web, email, and FTP server, though it can just as easily run BIND to do DNS name resolution, OpenLDAP to form a directory server, and the PostgreSQL and MySQL databases, among a few others. Many people also use OpenBSD in a network appliance machine as a firewall, router, and wireless access point. You can also make a suitable desktop operating system out of OpenBSD if you wish. The X.org server is provided on the installation media, and relatively recent editions of KDE, GNOME, Xfce, Fluxbox, Enlightenment (e16), IceWM, and other window managers are available through the Ports system (a collection of optional software that is common to all operating systems in the BSD family). A respectable selection of desktop software is also available, including Firefox, the GIMP, LyX, Evolution, G-Rip, XMMS, and many more. There is an OpenOffice.org port, but it is nonfunctional in OpenBSD 4.0. One thing you won't get with OpenBSD is hardware 3-D acceleration for graphics cards, so while you can get a highly usable 24-bit color display in X.org with nearly any video card, you won't be able to play 3-D-accelerated games like Unreal Tournament or Tux Racer. The issue here is not X.org drivers but kernel drivers; Nvidia, AMD, and Intel refuse to make OpenBSD drivers or supply sufficient hardware documentation for OpenBSD programmers to make their own. There are more than 3,700 programs available for OpenBSD, but through a procedure that you'll learn about in a later chapter, you can also run Linux, FreeBSD, SCO Unix, System V Release 4, HP-UX, and BSD/OS binary programs in OpenBSD with little or no performance loss. 2.3. Supported Architectures and Hardware OpenBSD works with a diverse array of hardware on 16 different computing platforms, but for the sake of brevity, this guide will cover only the most popular and common CPU architectures: i386 (otherwise known as x86 or IA32) and AMD64 (also known as x86-64 or EM64T). Ideally you should have at least 10 GB of hard drive space (though you can get away with much less if you're building a network appliance) and at least 128 MB of RAM (but the more, the better). The BSD operating systems have an unwarranted reputation for poor peripheral hardware support. In reality, OpenBSD natively supports more network and RAID devices than any other operating system. That means two things: first, the days of hunting for and installing third-party drivers are over; second, if a device isn't recognized out of the box by OpenBSD, there is nothing you can do to OpenBSD to get it to work. What you won't get, though, is support for chiefly desktop hardware such as high-end sound cards (though many ordinary sound cards will work), some kinds of scanners, and other things that are generally unnecessary in a server, network appliance, workstation, or work-oriented desktop machine. In other words, OpenBSD is not quite as suited to home desktop use as FreeBSD or GNU/Linux. What about laptop systems? Most Pentium 3, Celeron, Pentium M (Centrino), Pentium 4 M, Pentium 4, Celeron M, early Turion, and some Core Duo (Centrino Duo) notebook computers have been reported to work wonderfully with OpenBSDsoftmodems and exotic hardware (like fingerprint readers, webcams, and certain Wi-Fi cards) aside. Native ACPI and wireless networking support in OpenBSD is frequently superior to that of even some the fanciest desktop GNU/Linux distributions. If you have a mass-produced workstation or server, chances are good that everything you need to workvideo, sound, network, drive controller, PCI/AGP controllerwill be fully supported. If you have a home-built system that is more than a year old, it's probably going to be okay, too. If you just built a top-of-the-line Intel Core 2 Duo system with the latest, fanciest 802.11g wireless card, a $400 PCI Express video card, and you expect to set up a RAID-5 array with the built-in SATA fake-RAID controller on your just-released Abit motherboard well, you're probably going to have at least a moderate amount of trouble with any operating system, but OpenBSD 4.0 probably won't work very well for you. The more your target computer resembles the latter scenario, the less pleased you'll be with OpenBSD at this time. If you aren't sure if a critical piece of hardware will work with OpenBSD 4.0, your first stop should be the hardware compatibility list for your processor architecture: For i386 (x86): http://www.openbsd.org/i386.html#hardware For AMD64 (x86-64): http://www.openbsd.org/amd64.html#hardware Once you have an idea of what hardware support is like for your computer, it's time to begin the installation process. If you're upgrading from OpenBSD 3.9, skip the following section and go directly to "Upgrading from OpenBSD 3.9." Chapter 3. Installing OpenBSD 4.0 This section will walk you through the entire OpenBSD installation process, from start to finish. 3.1. Installation Methods There are three ways to install OpenBSD: over a network, by bootstrapping from an existing OpenBSD system, or through installation media (CD or floppy disk). Not all methods are supported by every architecture, but both x86 and AMD64 support all three installation procedures. By far the quickest, easiest, and most comprehensive method for modern computers is to use the official OpenBSD installation CDs. These are available for U.S. $50 (plus shipping) directly from the OpenBSD Project's web site: http://www.openbsd.org/orders.html. If you need to install OpenBSD right away and have a working broadband Internet connection, you can perform an FTP installation by using a minimal install floppy disk or CD, then retrieving the installation files from one of many OpenBSD mirror sites. The mirror list is at this address: http://www.openbsd.org/ftp.html#ftp. If you choose a mirror site that is close to you, the download will take less time than if you choose one that is far away. It's a good idea to write down two or three mirror addresses just in case one happens to be down when you need it; you may have to type these in during installation. In addition to installation, you will also need an FTP mirror address for some other important things later, so it's a good idea to have them written down so that you don't have to look them up again. The directory on the server that has the ISO files for the i386 minimal install CD and floppies is pub/OpenBSD/4.0/i386/, and the AMD64 ISO can be found at pub/OpenBSD/4.0/amd64/. There are three floppy image files, of which you need only one if you are installing from the floppy drive: floppy40.fs This image is generally suitable for PCs that have a PCI or ISA network card; have an IDE, SATA or simple SCSI disk; and include support for some PCMCIA cards. floppyB40.fs This image is more suited to servers. It contains drivers for many kinds of RAID controllers, and some of the less common SCSI adapters. However, support for many standard SCSI adapters and many EISA and ISA network chips is not present. floppyC40.fs This image is designed for laptop computers, and supports a wide range of CardBus and PCMCIA devices. And three CD imagesagain, you need only the one that applies to you: cdrom40.fs This is essentially a conglomerate of all three of the above floppy images. It can be used to make either a bootable 2.88M floppy or a CD. cd40.iso This is the CD ISO file that you are most likely to use. It has the widest selection of drivers. cdemu40.iso This CD image uses "floppy emulation" booting by using the cdrom40.fs image. This is only for use in special situations when the cd40.iso file won't work (usually on older systems). Download the image appropriate to your situation (this will very likely be the cd40.iso file), then follow the instructions below. 3.1.1. Burning a CD from an ISO file You have probably created a CD or DVD from an ISO file before. If so, follow your usual procedure. If you haven't created a CD from an ISO file in the past, then the instructions for doing so are dependent on your current operating system. Skip down to the subsection below that applies to your situation. 3.1.1.1. Microsoft Windows You should already have some kind of CD/DVD writing program like Nero or Easy CD Creator on your computer. Navigate the program's menus until you find the option for creating a CD from an ISO image. Select the cd40.iso image in the ensuing file dialog, and then choose to burn the CD image to the disc. . other operating system. That means two things: first, the days of hunting for and installing third-party drivers are over; second, if a device isn't recognized out of the box by OpenBSD, there. (Centrino), Pentium 4 M, Pentium 4, Celeron M, early Turion, and some Core Duo (Centrino Duo) notebook computers have been reported to work wonderfully with OpenBSDsoftmodems and exotic hardware