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 by many security professionals as the most
secure UNIX-like operating system, as a
result of a never-ending comprehensive source code security audit.
- OpenBSD is a full-featured UNIX-like operating system available in source
form at no charge.
- OpenBSD integrates cutting-edge security technology suitable for
building firewalls and
private network services in a distributed
- OpenBSD benefits from strong ongoing development in many areas, offering
opportunities to work with emerging technologies with an international
community of programmers 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
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
OpenBSD runs on the following platforms:
Available on CD means the official CD set
includes that platform and a small selection of useful
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 appropriate hardware to run your OpenBSD system on is important, as it
can mean the difference between success and failure of a project.
- Let the application choose the hardware:
It is usually better to make an adjustment to the hardware you were
planning on using rather than compromising on your application design
because you have something you really wanted to use.
- Identify your bottlenecks:
Don't pay extra for the cutting-edge processor if your application is
restricted by disk I/O.
Don't pay for fast disks if your system is restricted by network speed.
- Keep it simple:
Simple hardware usually has simple problems.
Complex hardware that isn't supposed to ever break may take you a long
time to repair when it breaks anyway.
- Use multiple disks:
Instead of buying one large disk, buy multiple smaller disks.
While this may cost more, distributing the load over multiple spindles
will decrease the amount of time necessary to access data on the disks.
With more spindles, you can get more reliability and faster data access
- Avoid cheap network adapters:
OpenBSD supports a plethora of cheap network adapters.
These adapters work great in home systems and low or moderate throughput
business and research environments.
If you need high throughput and low impact on your server, you are better
off buying a quality network adapter.
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
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
OpenBSD, or parts of it, can also be freely incorporated into commercial
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,
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
If you find OpenBSD useful, you are strongly encouraged to find a way to
If none of the suggestions below are right for you, feel free to propose an
alternative by sending email to
- Buy an OpenBSD CD set or shirt.
It includes the current full release of OpenBSD and is bootable on many
It also generates revenue to support the OpenBSD project.
This inexpensive three CD set includes the full source.
Your friends could also use a copy!
OpenBSD CDs always come with very nice artwork and stickers.
Your system isn't fully complete without these.
We also have shirts for your wearing
- Donate money.
The project has a constant need for cash to pay for equipment, network
connectivity, and expenses relating to CD publishing.
Manufacturing CDs requires an up-front out-of-pocket investment for the
OpenBSD developers, without guaranteed return.
Even small donations make a profound difference.
- Donate equipment and parts.
The project has a constant need for general and specific hardware.
Items such as SCSI, SATA and SAS disks and various types of RAM are always
For other types of hardware such as computer systems and motherboards, you
should inquire as to current need.
- Donate your time and skills.
Programmers who enjoy writing operating systems are naturally always
welcome, but there are dozens of 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 users 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.
It's also worth mentioning one of the most important ways you should not
try to help the OpenBSD project: do not waste your time engaging in
operating system flame wars.
It does not help the project to find new users and can cause substantial
harm to important relationships that developers have with other
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
- announce - Project announcements and errata notices.
This is a low-volume list.
- 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 OpenBSD ports tree.
- ports-changes - Automated mailing of ports-specific CVS source
- 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.
Considerable effort is made to make sure the man pages are up-to-date and
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.
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
How do I write my own manual page?
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 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
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.
One important difference between OpenBSD and many other operating systems
is the documentation.
OpenBSD developers take great pride in the system
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
- 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 produces an official release available via
CD and HTTP every
six months on a predefined schedule.
Snapshots for all supported platforms
are made semi-regularly with the current development code.
- OpenBSD has gone through heavy and continual security auditing to ensure
the quality and security of the code.
- The names of hard disks are usually /dev/wd (SATA/IDE) and
/dev/sd (SCSI-like disks, such as USB drives).
- 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(1), which is based on the
public domain Korn
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.
The second layer is the disklabel, a
traditional BSD partitioning system.
- 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.