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:
- OpenBSD runs on many different hardware platforms.
- OpenBSD is thought of as the most secure
UNIX-like operating system by many security professionals, as a result
of the never-ending comprehensive source code audit.
- OpenBSD is a full-featured UNIX-like operating system available in source
and binary form at no charge.
- OpenBSD integrates cutting-edge security technology suitable for
building firewalls and private network
services in a distributed environment.
- OpenBSD benefits from strong ongoing development in many areas, offering
opportunities to work with emerging technologies and an international
community of developers and end users.
- OpenBSD attempts to minimize the need for customization and tweaking.
For the vast majority of users, OpenBSD just works on their
hardware for their application.
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
More about OpenBSD's copyright policy can be found
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, 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 in the base system?
OpenBSD is distributed with a number of third-party software products,
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.
When is the next release?
The OpenBSD team makes a new release approximately every six months, with the
target release dates in May and November.
More information on the development cycle can be found
OpenBSD runs on the following platforms:
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.
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 community.
If you find OpenBSD useful, you are strongly encouraged to find a way to
- Buy OpenBSD products.
A number of items are available at the
OpenBSD store, including
shirts for your wearing enjoyment.
- Donate money.
The project has a constant need for cash to pay for equipment, network
Even small donations make a profound difference.
- Donate equipment and parts.
The project has a constant need for general and specific hardware.
- Donate your time and skills.
Programmers who enjoy writing operating systems are naturally always
welcome, but there are many other ways that people can be useful.
- Follow the mailing lists and help answer
questions from other users.
- Help maintain documentation by submitting new FAQ material to
- Form a local user group and get your friends
hooked on OpenBSD.
- Make a case to your employer for using OpenBSD at work.
If you're a student, talk to your professors about using OpenBSD as a
learning tool for Computer Science or Engineering courses.
The OpenBSD project maintains several mailing lists that users can 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
- announce - Project announcements.
- bugs - Bugs received via
and discussion about them.
- misc - General user questions and answers.
This is the most active list, and should be the "default" for most
questions and discussion.
- ports - Discussion of the ports tree.
- source-changes - Automated mailing of CVS source tree changes.
Every time a developer commits a change to the OpenBSD source, xenocara
or www tree, CVS will send out a copy of the commit message via this list.
- tech - Discussion of technical topics for OpenBSD developers and
You can find several archives, other guidelines and more information on the
mailing list page.
Subscriptions can be easily managed via the
OpenBSD comes with extensive documentation in the form of man pages.
They are the authoritative source of information for OpenBSD, and considerable
effort is made to ensure they're up to date and accurate.
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 users will check the man pages before asking for help.
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.
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.
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.
$ apropos "time zone"
tzfile(5) - time zone information
zdump(8) - time zone dumper
zic(8) - time zone compiler
$ 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.
Replace ps with pdf if you prefer the latter.
$ man -Tps <command> > outfile.ps
What are info files?
Some of the documentation for OpenBSD comes in the form of
This is an alternative form of documentation provided by GNU.
For example, to view information about the GNU compiler,
After using info, you will really appreciate our man pages!
$ info gcc
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:
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.
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.
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, you may be contacted by developers for additional
information or with patches that need testing.
You can also monitor the archives of the
firstname.lastname@example.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.
Here are some of the commonly encountered differences between OpenBSD and other
- OpenBSD is a BSD-style Unix, following the 4.4BSD design closely.
Linux and Solaris are System V style systems.
Some Unix-like operating systems mix System V and BSD characteristics.
A common place where this causes confusion is the
OpenBSD uses the rc(8) system.
- OpenBSD is a complete system, intended to be kept in sync.
It is not a kernel plus utilities that can be upgraded separately from
- OpenBSD maintains a ports tree to provide
third party software.
Pre-compiled packages are created and
distributed by the OpenBSD ports team.
- OpenBSD uses CVS to keep track of source code changes.
OpenBSD pioneered anonymous CVS, which
allows anyone to extract the full source tree for any version of OpenBSD
at any time.
There also is a web interface.
- OpenBSD has gone through heavy and continual security auditing to ensure
the quality and security of the code.
- OpenBSD does not support journaling filesystems.
Instead we use the soft updates
feature of the Fast File System (FFS).
- OpenBSD comes with Packet Filter (PF).
This means that Network Address Translation, queuing, and filtering are
handled through pfctl(8),
- OpenBSD's default shell is ksh,
which is based on the public domain Korn shell.
Shells such as bash and many others can be added from
- Devices are named by driver, not by type.
In other words, there are no eth0 and eth1 devices.
It would be em0 for an Intel PRO/1000 Ethernet card,
bge0 for a Broadcom BCM57xx or BCM590x Ethernet device,
ral0 for a RaLink wireless device, etc.
- OpenBSD/i386, amd64, and several other platforms use a two-layer disk
partitioning system, where the first layer is the
fdisk BIOS-visible partition and the
second is the disklabel.
- Some other operating systems encourage you to customize your kernel for
OpenBSD users are encouraged to simply use the standard GENERIC kernel
provided and tested by the developers.