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
redistribution.
More about OpenBSD's copyright policy can be found
here.
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,
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.
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
here.
OpenBSD runs on the following platforms:
Specific hardware support details are on the respective platform pages.
Manual Pages
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:
All of the OpenBSD man pages can be found on the web at
man.openbsd.org as well as in
the man70.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.
$ 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
Mailing Lists
The OpenBSD project maintains several mailing lists that users can subscribe
to and follow.
Some of the more popular lists are:
- announce - announcements and security advisories
- bugs - bugs received via
sendbug(1)
and discussion about them
- misc - general user questions and answers
- ports - discussion of the
ports tree
- source-changes - automated mailing of CVS source tree changes
- tech - discussion of technical topics for OpenBSD developers and
advanced users
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.
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
Unix variants.
- 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
startup scripts.
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
each other.
- 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),
pf(4) and
pf.conf(5).
- 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
packages.
- 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
your machine.
OpenBSD users are encouraged to simply use the standard GENERIC kernel
provided and tested by the developers.
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: user@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
https://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, 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.
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
contribute.
- Donate money.
The project has a constant need for cash to pay for equipment, network
connectivity, etc.
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
misc@openbsd.org.
- 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.