OpenBSD FAQ - Introduction to OpenBSD [FAQ Index]



Tell me about OpenBSD

The OpenBSD project produces a freely available, multi-platform 4.4BSD-based UNIX-like operating system. Our goals place emphasis on correctness, security, standardization, and portability.

Why might I want to use it?

Some reasons why we think OpenBSD is a useful operating system:

When is the next release?

The OpenBSD team makes a new release every six months, with target release dates in May and November. More information on the development cycle can be found here.

Hardware support

OpenBSD runs on the following platforms:

alpha Available on CD
amd64 Available on CD
armv7 Download only
hppa Available on CD
i386 Available on CD
landisk Download only
loongson Download only
luna88k Download only
macppc Available on CD
octeon Download only
sgi Download only
socppc Download only
sparc64 Available on CD

Available on CD means the official CD set includes that platform and a small selection of useful packages. CD ISO images can be downloaded for most other platforms. These are not the same as the official CD sets, however. Some platforms also have USB disk images available.

People sometimes ask why we support so many odd machines. The short answer is "because we want to." If enough skilled people (and sometimes "enough" is only one really skilled person!) wish to maintain support for a platform, it will be supported. The OpenBSD platforms include 32 bit and 64 bit processors, little and big endian machines and many different designs. Supporting unusual platforms has helped produce a higher-quality code base.

Selecting hardware

Selecting appropriate hardware to run your OpenBSD system on is important, as it can mean the difference between success and failure of a project.

Is OpenBSD really free?

OpenBSD is all free. The binaries are free. The source is free. All parts of OpenBSD have reasonable copyright terms permitting free redistribution. This includes the ability to reuse most parts of the OpenBSD source tree, either for personal or commercial purposes. OpenBSD includes no further restrictions other than those implied by the original BSD license. Software which is written under stricter licenses cannot be included in the regular distribution of OpenBSD. This is intended to safeguard the free use of OpenBSD. For example, OpenBSD can be freely used for personal use, for academic use, by government institutions, by non-profit making organizations and by commercial organizations. OpenBSD, or parts of it, can also be freely incorporated into commercial products.

This isn't to say we would object to financial or hardware support in thanks. In fact, it is stunning how little support of any kind comes from companies that depend upon OpenBSD or OpenSSH for their products.

For further reading on other popular licenses, read the OpenBSD copyright policy.

The maintainers of OpenBSD support the project largely from their own pockets. This includes the time spent programming for the project, equipment used to support the many ports, the network resources used to distribute OpenBSD to you, and the time spent answering questions and investigating users' bug reports. The OpenBSD developers are not independently wealthy, and even small contributions of time, equipment and resources make a big difference.

What's included with OpenBSD?

OpenBSD is distributed with a number of third-party software products, including: The OpenBSD team often patches third party products, typically to improve the security or quality of the code. Much home-grown software is also included. Additional applications are available as packages.

Why is/isn't ProductX included?

People often ask why a particular product is or isn't included with OpenBSD. The answer is based on two things: the wishes of the developers and compatibility with the goals of the project. Licensing is often the biggest problem: we want OpenBSD to remain usable by any person anywhere in the world for any purpose.

Supporting the project

We are greatly indebted to the people and organizations that have contributed to the OpenBSD project.

OpenBSD has a constant need for several types of support from the user community. If you find OpenBSD useful, you are strongly encouraged to find a way to contribute. If none of the suggestions below are right for you, feel free to propose an alternative by sending email to donations@openbsd.org.

Mailing lists

The OpenBSD project maintains several mailing lists that users should subscribe to and follow. Some of the more popular lists are: Before posting a question on any mailing list, please check the archives for most common questions have been asked repeatedly. While it might be the first time you have encountered the problem or question, others on the mailing lists may have seen the same question several times in the last week, and may not appreciate seeing it again. If asking a question possibly related to hardware, always include a full dmesg(8).

You can find several archives, other guidelines and more information on the mailing list page. Subscriptions can be easily managed via the web interface.

Manual pages

OpenBSD comes with extensive documentation in the form of man pages. Considerable effort is made to make sure the man pages are up-to-date and accurate. The man pages are the authoritative source of information for OpenBSD.

Here is a list of some useful manual pages for new users:

You can find all the OpenBSD man pages on the web at http://man.openbsd.org as well as on your computer if you installed the manXX.tgz file set.

In general, if you know the name of a command or a manual page, you can read it by executing man command. For example: man vi to read about the vi editor. If you don't know the name of the command, or if man command doesn't find the manual page, you can search the manual page database by executing apropos something or man -k something, where something is a likely word that might appear in the title of the manual page you're looking for.

$ apropos "time zone"
tzfile(5) - time zone information
zdump(8) - time zone dumper
zic(8) - time zone compiler
The parenthetical numbers indicate the section of the manual in which that page can be found. In some cases, you may find manual pages with identical names living in separate sections of the manual. For example, assume that you want to know the format of the configuration files for the cron daemon. Once you know the section of the manual for the page you want, you would execute man n command, where n is the manual section number.
$ man -k cron
cron(8) - clock daemon
crontab(1) - maintain crontab files for individual users
crontab(5) - tables for driving cron
$ man 5 crontab

How do I get a man page with no control characters?

If you pipe the output of the man command to your editor, you will see that it contains a lot of control characters. To remove them, issue
$ man <command> | col -b

How can I get a print-ready copy of a man page?

If you wish to print out a man page, the printer-friendly formats .ps or .pdf are available.
$ man -Tps <command> > outfile.ps
Replace ps with pdf if you prefer the latter.

What are info files?

Some of the documentation for OpenBSD comes in the form of info(1) files. This is an alternative form of documentation provided by GNU. For example, to view information about the GNU compiler, gcc(1), type:
$ info gcc
After using info, you will really appreciate our man pages!

How do I write my own manual page?

Consult mdoc(7).

Reporting bugs

Reporting bugs is one of the most important responsibilities of end users. Very detailed information is required to diagnose most serious issues. For example, the following would be an appropriate bug report:
From: smartuser@example.com
To: bugs@openbsd.org
Subject: 3.3-beta panics on a SPARCStation2

OpenBSD 3.2 installed from an official CD-ROM installed and ran fine
on this machine.

After doing a clean install of 3.3-beta from a mirror, I find the
system randomly panics after a period of use, and predictably and
quickly when starting X.

This is the dmesg output:

[...]

This is the panic I got when attempting to start X:

panic: pool_get(mclpl): free list modified: magic=78746572; page 0xfaa93000;
 item addr 0xfaa93000
Stopped at      Debugger+0x4:   jmpl            [%o7 + 0x8], %g0
http://www.openbsd.org/ddb.html describes the minimum info required in bug
reports. Insufficient info makes it difficult to find and fix bugs.
ddb> trace
[...]

Thank you!
See this page for more information on creating and submitting bug reports. Include detailed information about what happened, the exact configuration of your system, and how to reproduce the problem. Please use sendbug(1) to report your problems whenever possible, otherwise please include at least the dmesg(8) output of your system. The sendbug(1) command requires that your system be able to send email.

The OpenBSD mail server uses spamd(8) for greylisting, so it may take half an hour or so before the mail server accepts your bug report. Please be patient.

After submitting a bug report via sendbug(1), you may be contacted by developers for additional information or with patches that need testing. You can also monitor the archives of the bugs@openbsd.org mailing list - details on the mailing list page.

Migrating to OpenBSD

If you learned Unix from any of the good books on general Unix, understanding the Unix philosophy and then extending your knowledge to a particular platform, you will find OpenBSD to be familiar.

One important difference between OpenBSD and many other operating systems is the documentation. OpenBSD developers take great pride in the system man pages. The man pages are the authoritative OpenBSD documentation. Developers making a change to the system are expected to update the man pages along with their change to the system code. It is expected that a user will check the man pages before asking for help on the mailing lists.

Here are some of the commonly encountered differences between OpenBSD and other Unix variants.