Safekipedia

OpenBSD

Adapted from Wikipedia · Discoverer experience

A screenshot of the OpenBSD 6.1 computer desktop showing useful tools like a calculator, clock, and system monitor.

OpenBSD is a special kind of computer operating system that focuses on keeping things safe and secure. It was created in 1995 by Theo de Raadt, who started it by taking an existing system called NetBSD and making his own version. This new system was built to work well on many different types of computers and to do things the right way, with strong security built in from the start.

Because OpenBSD is free software, many other big companies use parts of it in their own products. For example, the safety features in Apple’s macOS computers, the basic tools in Android phones, and some important parts of Windows 10 all use ideas and code from OpenBSD. This shows how useful and reliable the system is.

The name “OpenBSD” tells us two important things: first, that anyone can see and use its code because it is available online, and second, that it works on many different kinds of hardware, from regular computers to newer types of processors. Even though it doesn’t have a fancy graphical interface by default, OpenBSD is powerful and trusted by people who care about keeping their computers safe.

History

In 1995, a person named Theo de Raadt started OpenBSD after leaving another project called NetBSD. He created OpenBSD to make a better and safer operating system. The first version was released in 1996, and since then, new versions have come out every six months.

In 2007, a group called the OpenBSD Foundation was created to help support the project. By 2024, OpenBSD had changed so much that none of the original files from NetBSD were left unchanged.

Usage statistics

It can be difficult to know how many people use OpenBSD because its developers do not keep track of user numbers.

In September 2005, a group asked 4,330 BSD users about their choices. About 32.8% said they used OpenBSD. More people used FreeBSD at 77%, while NetBSD was used by 16.3% and DragonFly BSD by 2.6%. The group that did the survey said their results might not be perfect because they shared the survey mostly with people already interested in BSD. This means it is hard to know exactly how many people use OpenBSD around the world.

Uses

OpenBSD has strong networking abilities and can work as a router or wireless access point. Its built-in cryptography and packet filter make it great for security tasks like firewalls, intrusion-detection systems, and VPN gateways.

Some versions of Microsoft's Windows Services for UNIX used code from OpenBSD. The pf firewall from OpenBSD is also used in FreeBSD and macOS. OpenBSD can be used on personal computers and includes many software packages like Firefox and Chromium.

OpenBSD can also be set up as a mail server, web server, FTP server, DNS server, router, firewall, NFS file server, or a mix of these. Starting with version 6.8, OpenBSD includes support for WireGuard directly in its software.

Security

See also: OpenBSD security features

After OpenBSD was created, its founder worked with a security company that made tools to find weak spots in software. This helped make security the main focus of OpenBSD.

OpenBSD has many features to keep it safe, like special tools to check for mistakes, ways to protect memory, and strong ways to keep information private. It also limits what programs can do to reduce risks. Developers often review the code to find and fix problems.

OpenBSD created a popular tool called OpenSSH, which helps computers talk to each other safely over the internet. The project believes in making computers simple and secure by default, so new users don’t have to worry about safety right away. Users can add more features themselves, thinking about safety first.

Subprojects

OpenBSD has helped create many useful tools and projects. Some of these include:

  • bioctl, a tool to manage RAID similar to ifconfig
  • CARP, a free tool to help computers work together, like Cisco's HSRP/VRRP
  • cwm, a program to organize windows on your screen
  • doas, a simpler way to give users special permissions instead of using sudo
  • OpenBSD httpd, a web server program implementing httpd
  • Game of Trees, a tool that works with Git
  • hw.sensors, a system to monitor hardware sensors
  • LibreSSL, a secure way to connect to the internet, created from OpenSSL 1.0.1g
  • mandoc, a tool to format help pages called man pages
  • OpenBGPD, a program for a special internet protocol called BGP-4
  • OpenIKED, a program for IKEv2
  • OpenNTPD, a simpler tool to keep time accurate
  • OpenOSPFD, a program for a special internet protocol called OSPF
  • OpenSMTPD, a mail server that works with IPv4/IPv6, PAM, Maildir, and virtual domains
  • OpenSSH, a secure way to connect to other computers
  • PF, a firewall for IPv4/IPv6 that includes NAT, PAT, QoS, and traffic normalization
  • pfsync, a tool to keep PF working well with high availability using CARP
  • rpki-client, a tool to help validate BGP announcements using the Resource Public Key Infrastructure (RPKI)
  • sndio, a tool for audio and music
  • spamd, a tool to block unwanted emails with greylisting
  • Xenocara, a special setup of X.Org for better performance

Some of these tools are now used in other operating systems, and many can be added to other Unix-like systems as extra features.

The Calgary Internet Exchange began in 2012 to help support OpenBSD.

In 2017, a project called Isotop started, aiming to make OpenBSD easier to use on desktops and laptops using xfce and later dwm.

Third-party components

OpenBSD includes many tools and programs from other sources, often with special updates made just for OpenBSD. Some of these include X.Org for graphics, Clang as the main compiler for certain types of computers, GCC, Perl, NSD, Unbound, ncurses, GNU binutils, GDB, and AWK. These tools help users do many different tasks on the OpenBSD system.

Development

OpenBSD is always being improved, and anyone with the right skills can help. The leader, Theo de Raadt, helps organize the work. Every year, there are two big updates, and these updates are supported for a year. There are also smaller updates available more often.

OpenBSD developers at c2k1 hackathon at MIT, June 2001

People can update their OpenBSD systems in a few ways. They can use a tool called syspatch, update from a special area called CVS, or use another tool called sysupgrade to get the newest features. For most users, the basic OpenBSD kernel that comes with the system is the best choice.

Extra programs for OpenBSD are kept up to date by different people. These programs are built for each type of computer, and most people should use the ready-made versions instead of building them themselves. OpenBSD developers sometimes meet to work together and focus on getting things done. Many new versions of OpenBSD also have a special song.

Open source and open documentation

OpenBSD is well-known for its clear and helpful guides. When OpenBSD was started, its creator decided that anyone should be able to see the source code. At that time, only a few developers could usually see a project’s code. This team thought that was unfair and made it hard for new people to help. So, they created a public system where anyone could view and work with the code. This let users join more actively and showed OpenBSD’s promise to keep things open.

OpenBSD does not use secret code or parts that need special agreements to see. Because it comes from Canada, it can use strong security methods without rules from other countries. It also makes computer actions unpredictable to keep it safer. For example, it uses random numbers for different parts of the system. This helps find mistakes and makes it harder for bad people to attack. The project also believes in having clear information about hardware so developers can create better tools.

Closed source and proprietary code

OpenBSD sometimes includes small pieces of code that are not fully open. This is because some devices need special instructions to work, and these instructions are provided by the device makers.

The project leaders have to balance wanting to keep everything open while also making sure users can use many different devices with OpenBSD. They try to be practical and accept some risks when they include these special instructions.

According to the GNU Project, OpenBSD does include some small parts of code that are not fully open, called "blobs". These are used for device firmware or are needed by drivers that have open licenses.

Licensing

See also: Comparison of free and open-source software licenses and Free software license

OpenBSD has very careful rules about the kinds of licenses it uses. It prefers simple and open licenses like the ISC license and the BSD license. The project wants to keep the open spirit of the original Berkeley Unix, which allowed free sharing of its code. Some other popular licenses, like the Apache License and the GNU General Public License, are seen as too strict by OpenBSD.

In 2001, OpenBSD checked all its code to make sure every piece had the right license. They found many files without clear licenses or with rules that didn’t fit OpenBSD’s standards. To fix this, they contacted the original creators. Some code was removed, some was replaced, and some, like the multicast routing tools mrinfo and map-mbone, got new licenses so OpenBSD could keep using them. They also stopped using software made by Daniel J. Bernstein because he required approval for any changes, which OpenBSD couldn’t agree to.

Because of these license issues, OpenBSD sometimes builds its own tools instead of using others. For example, they created the PF packet filter after finding the rules for IPFilter too limiting. PF started in OpenBSD 3.0 and is now used in many other systems. They also replaced some tools with simpler licenses, like switching from CVS and pkg-config to other options that fit OpenBSD’s rules better.

Funding

The OpenBSD project mainly relies on support from everyday users who buy CDs or make donations. In the early 2000s, it also received help from DARPA and the POSSE project, which provided salaries, hardware, and funding for events.

In 2006, OpenBSD faced money problems, and companies like the Mozilla Foundation and GoDaddy helped it continue. Later, in 2014, a big donation in bitcoins and other contributions saved the project from closing.

OpenBSD Foundation

The OpenBSD Foundation is a Canadian non-profit organization created to help manage support for OpenBSD and related projects like OpenSSH, OpenBGPD, and LibreSSL. Since 2014, big companies such as Microsoft, Facebook, and Google have contributed to the foundation.

Distribution

OpenBSD can be obtained in different ways. You can get the source code using anonymous CVS, or download binary releases and development snapshots using FTP, HTTP, and rsync. Before version 6.1, you could order pre-packaged CD-ROM sets online for a small fee, which included stickers and a theme song. These helped support the project's costs for hardware and Internet services.

OpenBSD includes a package management system called pkg* tools to easily install and manage extra programs. These programs are stored as binary files and can be added, updated, or removed using the package tools. The system also has a ports collection, which contains makefiles and other tools needed to create these packages. The ports and the main operating system are developed and released together for each version.

Songs and artwork

3D-rendered, animated OpenBSD mascot Puffy

OpenBSD used a special logo when it first started, created by an artist named Erick Green. Later, they chose a character named Puffy, a pufferfish, to represent the system. Puffy appears in songs and artwork for each release of OpenBSD. These songs and artworks often tell a fun story or share an important message about OpenBSD, sometimes by making funny copies of famous movies or songs.

Releases

The following table shows the version history of the OpenBSD operating system.

VersionRelease dateSignificant changes
Unsupported: 1.118 October 1995
OpenBSD CVS repository created by Theo de Raadt.
While the version number used at this stage was 1.1, OpenBSD 1.1 was not an official OpenBSD release in the sense which this term subsequently came to be used.
Unsupported: 1.21 July 1996
Creation of the intro(9) man page, for documenting kernel internals.
Integration of the update(8) command into the kernel.
As before, while this version number was used in the early development of the OS, OpenBSD 1.2 was not an official release in the subsequently applicable sense.
Unsupported: 2.01 October 1996
The first official release of OpenBSD, and also the point at which XFree86 first recognized OpenBSD as separate from NetBSD.
Initial integration of the FreeBSD ports system.
Replacement of gawk with the AT&T awk.
Integration of zlib.
Added sudo.
Unsupported: 2.11 June 1997Replacement of the older sh with pdksh.
Unsupported: 2.21 December 1997Addition of the afterboot(8) man page.
Unsupported: 2.319 May 1998Introduced the haloed daemon, or aureola beastie, in head-only form created by Erick Green.
Unsupported: 2.41 December 1998Featured the complete haloed daemon, with trident and a finished body.
Unsupported: 2.519 May 1999Introduced the Cop daemon image done by Ty Semaka.
Unsupported: 2.61 December 1999Based on the original SSH suite and developed further by the OpenBSD team, 2.6 saw the first release of OpenSSH, which is now available standard on most Unix-like operating systems and is the most widely used SSH suite.
Unsupported: 2.715 June 2000Support for SSH2 added to OpenSSH.
Unsupported: 2.81 December 2000isakmpd(8)
Unsupported: 2.91 June 2001
Filesystem performance increases from softupdates and dirpref code.
Unsupported: 3.01 December 2001
E-Railed (OpenBSD Mix), a techno track performed by the release mascot Puff Daddy, the famed rapper and political icon.
After license restrictions were imposed on IPFilter, IPFilter was removed from base, and the pf packet filter was developed. pf is now available in DragonFly BSD, NetBSD and FreeBSD.
Unsupported: 3.119 May 2002Systemagic, where Puffy, the Kitten Slayer, battles evil script kitties. Inspired by the works of Rammstein and a parody of Buffy the Vampire Slayer.
First official remote security hole - OpenSSH integer overflow
Unsupported: 3.21 November 2002Goldflipper, a tale in which James Pond, agent 077, super spy and suave lady's man, deals with the dangers of a hostile internet. Styled after the orchestral introductory ballads of James Bond films.
Unsupported: 3.31 May 2003
Puff the Barbarian, born in a tiny bowl; Puff was a slave, now he hacks through the C, searching for the Hammer. It is an 80s rock-style song and parody of Conan the Barbarian dealing with open documentation.
In 2003, code from ALTQ, which had a license disallowing the sale of derivatives, was relicensed, integrated into pf and made available in OpenBSD 3.3.
First release adding the W^X feature, a fine-grained memory permissions layout, ensuring that memory which can be written to by application programs can not be executable at the same time and vice versa.
Unsupported: 3.41 November 2003
The Legend of Puffy Hood where Sir Puffy of Ramsay, a freedom fighter who, with Little Bob of Beckley, took from the rich and gave to all. Tells of the POSSE project's cancellation. An unusual blend of both hip-hop and medieval-style music, a parody of the tale of Robin Hood intended to express OpenBSD's attitude to free speech.
i386 platform switched executable format from a.out to Executable and Linkable Format
The GPL licensed gzip was replaced by retooling the existing compress tool to include its functionality.
The GPL licensed grep was replaced with FreeGrep, an updated BSD licensed grep. This new grep is now also available in NetBSD.
A public domain diff was updated and used to replace the GPL licensed diff previously included.
Code from the LGPL licensed was relicensed to allow pf to feature passive operating system detection.
Basic sysctl hw.sensors API introduced for hardware monitoring.
Unsupported: 3.51 May 2004
CARP License and Redundancy must be free, where a fish seeking to license his free redundancy protocol, CARP, finds trouble with the red tape. A parody of the Fish Licence skit and Eric the Half-a-Bee Song by Monty Python, with an anti-software patents message.
CARP, an open alternative to the HSRP and VRRP redundancy systems available from commercial vendors.
GPL licensed parts of the GNU tool-set, bc, dc, nm and size, were all replaced with BSD licensed equivalents.
AMD64 platform becomes stable enough for release and is included for the first time as part of a release.
Unsupported: 3.61 November 2004
Pond-erosa Puff (live) was the tale of Pond-erosa Puff, a no-guff freedom fighter from the wild west, set to hang a lickin' on no-good bureaucratic nerds who encumber software with needless words and restrictions. The song was styled after the works of Johnny Cash, a parody of the Spaghetti Western and Clint Eastwood and inspired by liberal license enforcement.
OpenNTPD, a compatible alternative to the reference NTP daemon, was developed within the OpenBSD project. The goal of OpenNTPD was not solely a compatible license. It also aims to be a simple, secure NTP implementation providing acceptable accuracy for most cases, without requiring detailed configuration.
Because of its questionable security record and doubts of developers for better future development, OpenBSD removed Ethereal from its ports tree prior to its 3.6 release.
Added support for I2C master/slave devices
Unsupported: 3.719 May 2005The Wizard of OS, where Puffathy, a little Alberta girl, must work with Taiwan to save the day by getting unencumbered wireless. This release was styled after the works of Pink Floyd and a parody of The Wizard of Oz; this dealt with wireless hacking.
Unsupported: 3.81 November 2005Hackers of the Lost RAID, which detailed the exploits of Puffiana Jones, famed hackologist and adventurer, seeking out the Lost RAID, Styled after the radio serials of the 1930s and 40s, this was a parody of Indiana Jones and was linked to the new RAID tools featured as part of this release. This is the first version released without the telnet daemon which was completely removed from the source tree by Theo de Raadt in May 2005.
bioctl introduced as a new universal RAID management tool (similar to ifconfig)
Unsupported: 3.91 May 2006
Attack of the Binary BLOB, which chronicles the developer's fight against binary blobs and vendor lock-in, a parody of the 1958 film The Blob and the pop-rock music of the era.
Enhanced OpenBGPD feature-set.
Improved hardware sensors support, including a new IPMI subsystem and a new I2C scan subsystem; number of drivers using the sensors framework increased to a total of 33 drivers (compared to 9 in the prior 3.8 release 6 months ago).
Unsupported: 4.01 November 2006Humppa Negala, a Hava Nagilah parody with a portion of Entrance of the Gladiators and Humppa music fused together, with no story behind it, simply a homage to one of the OpenBSD developers' favorite genres of music.
Second official remote security hole - buffer overflow by malformed ICMPv6 packets
Unsupported: 4.11 May 2007Puffy Baba and the 40 Vendors, a parody of the Arabic fable Ali Baba and the Forty Thieves, part of the book of One Thousand and One Nights, in which Linux developers are mocked over their allowance of non-disclosure agreements when developing software while at the same time implying hardware vendors are criminals for not releasing documentation required to make reliable device drivers.
Redesigned sysctl hw.sensors into a two-level sensor API; a total of 46 device drivers exporting sensors through the framework with this release.
Unsupported: 4.21 November 2007100001 1010101, the Linux kernel developers gets a knock for violating the ISC-style license of OpenBSD's open hardware abstraction layer for Atheros wireless cards.
softraid added with support for RAID levels 0,1, and 5 plus CRYPTO, CONCAT, and RAID 1C
Usability of sensorsd improved, allowing zero-configuration monitoring of smart sensors from the hw.sensors framework (e.g., IPMI or bio(4)-based), and easier configuration for monitoring of non-smart sensors.
Unsupported: 4.31 May 2008Home to Hypocrisy
Unsupported: 4.41 November 2008
Trial of the BSD Knights, summarizes the history of BSD including the USL v. BSDi lawsuit. The song was styled after the works of Star Wars.
sparc64 port now supports many recent processors: Sun UltraSPARC IV, T1, and T2; Fujitsu SPARC64 V, VI, and VII.
New System-on-a-Chip PowerPC port for Freescale devices
malloc(3) randomization, guard pages, and randomized (delayed) free
The hw.sensors framework is used by 68 device drivers, after 7 new drivers were added as of this release.
Unsupported: 4.51 May 2009Games. It was styled after the works of Tron.
The hw.sensors framework is used by 72 device drivers.
Unsupported: 4.618 October 2009Planet of the Users. In the style of Planet of the Apes, Puffy travels in time to find a dumbed-down dystopia, where "one very rich man runs the earth with one multinational". Open-source software has since been replaced by one-button computers, one-channel televisions, and closed-source software which, after you purchase it, becomes obsolete before you have a chance to use it. People subsist on soylent green. The theme song is performed in the reggae rock style of The Police.
smtpd(8), privilege-separated SMTP server
tmux(1) terminal multiplexer
The hw.sensors framework is used by 75 device drivers.
Unsupported: 4.719 May 2010I'm Still Here
Unsupported: 4.81 November 2010El Puffiachi.
iked(8) IKEv2 daemon
ldapd(8) LDAP daemon
Unsupported: 4.91 May 2011The Answer.
rc.d(8) daemon control
Unsupported: 5.01 November 2011What Me Worry?.
Unsupported: 5.11 May 2012Bug Busters. The song was styled after the works of Ghostbusters.
Unsupported: 5.21 November 2012Aquarela do Linux.
nginx(8) HTTP server
SSLv2 disabled
Unsupported: 5.31 May 2013Blade Swimmer. The song was styled after the works of Roy Lee, a parody of Blade Runner.
Position-independent executables (PIE) by default for seven hardware platforms
Unsupported: 5.41 November 2013Our favorite hacks, a parody of My Favorite Things.
Unsupported: 5.51 May 2014Wrap in Time.
signify(1) cryptographic signatures of release and packages
64bit time_t on all platforms (Y2K38 ready)
Unsupported: 5.61 November 2014Ride of the Valkyries.
Apache HTTPD removed from base
Unsupported: 5.71 May 2015Source Fish.
rcctl(8) utility to control daemons
nginx(8) removed from base
procfs has been removed
Unsupported: 5.818 October 201520 years ago today, Fanza, So much better, A Year in the Life.
(20th anniversary release)
doas(1) replacement of sudo
Unsupported: 5.929 March 2016Doctor W^X, Systemagic (Anniversary Edition).
W^X enforced in i386 kernel
pledge(2) process restriction
Unsupported: 6.01 September 2016Another Smash of the Stack, Black Hat, Money, Comfortably Dumb (the misc song), Mother, Goodbye and Wish you were Secure, Release songs parodies of Pink Floyd's The Wall, Comfortably Numb and Wish You Were Here.
vmm(4) virtualization (disabled by default)
Removed vax and 32-bit SPARC support
Unsupported: 6.111 April 2017Winter of 95, a parody of Summer of '69.
syspatch(8) utility for binary base system updates
new arm64 platform
Unsupported: 6.29 October 2017A three-line diff
inteldrm(4) Skylake/Kaby Lake/Cherryview devices
clang(1) base system compiler on i386 and amd64 platforms
Unsupported: 6.32 April 2018
SMP is supported on arm64 platforms.
Several parts of the network stack now run without KERNEL_LOCK().
Multiple security improvements have been made, including Meltdown/Spectre (variant 2) mitigations. Intel CPU microcode is loaded on boot on amd64.
pledge() has been modified to support "execpromises" (as the second argument).
Unsupported: 6.418 October 2018
unveil(2) filesystem visibility restriction.
Unsupported: 6.524 April 2019
Support for parsing NMEA 0183 altitude and ground speed hw.sensors.
Xenocara: Xorg (X Window Server) is no longer setuid.
Unsupported: 6.617 October 2019
sysupgrade(8) automates upgrades to new releases or snapshots.
amdgpu(4) AMD RADEON GPU video driver.
Unsupported: 6.719 May 2020
Made ffs2 the default filesystem type on installs except for landisk, luna88k and sgi.
Unsupported: 6.818 October 2020
25th anniversary release.
New powerpc64 platform.
Unsupported: 6.91 May 2021
50th release.
Unsupported: 7.014 October 2021
51st release.
New riscv64 platform.
Unsupported: 7.121 April 2022
52nd release.
loongson support was temporarily discontinued for this release.
Unsupported: 7.220 October 2022
53rd release.
Unsupported: 7.310 April 2023
54th release.
Immutable permissions on address space regions.
"xonly" support on many architectures.
Support for full-disk encryption in the installer (via softraid driver)
Unsupported: 7.416 October 2023
55th release.
Unsupported: 7.55 April 2024
56th release.
Unsupported: 7.68 October 2024
57th release.
Supported: 7.728 April 2025
58th release.
Latest version: 7.822 October 2025
59th release.

Related articles

This article is a child-friendly adaptation of the Wikipedia article on OpenBSD, available under CC BY-SA 4.0.

Images from Wikimedia Commons. Tap any image to view credits and license.