Cannabis Ruderalis

OpenBSD
OpenBSD Logo with Puffy, the pufferfish.
"Secure by Default"
DeveloperThe OpenBSD Project
OS familyBSD
Working stateCurrent
Source modelOpen source
Latest release3.8 / November 1, 2005
Repository
Kernel typeMonolithic
Default
user interface
pdksh, fvwm for X11
Official websitehttp://www.openbsd.org

Template:Prerequisites header ! Computer and operating system |- ! Unix and Unix-like |- ! Software licensing |- ! Computer insecurity Template:Prerequisites footer

OpenBSD is a freely available Unix-like computer operating system descended from Berkeley Software Distribution (BSD), a Unix derivative created by the University of California, Berkeley. It was forked from NetBSD, the first open source operating system based on BSD, by OpenBSD project leader Theo de Raadt in 1994, and is widely known for the developers' insistence on open source and documentation, uncompromising position on software licensing, and focus on security and code correctness. The project's logo and mascot is Puffy, a pufferfish.

OpenBSD includes a number of security features not found or optional in other operating systems and has a tradition of developers auditing the source code for software bugs and security problems. The project maintains strict policies on licensing and prefers the open source BSD licence and its variants—in the past this has led to a comprehensive licence audit and moves to remove or replace code under licences found less acceptable.

In common with most other BSD-based operating systems, the OpenBSD kernel and userland programs, such as the shell and common tools like cat and ps, are developed together in a single source repository. Third-party software is available as binary packages or may be built from source using the ports tree.

OpenBSD currently runs on 16 different hardware platforms, including the DEC Alpha, Intel i386 and Motorola 68000 processors, Apple's PowerPC machines, Sun Sparc and Sparc64-based computers, the VAX and the Sharp Zaurus.

History and popularity

In December 1994, NetBSD co-founder Theo de Raadt was asked to resign his position as a senior developer and member of the core team, and his access to the source code repository was revoked. The reason for this is not wholly clear, although there are claims that it was due to personality clashes within the NetBSD project and on its mailing lists.[1] Theo de Raadt has been criticized for having a sometimes abrasive personality: in his book, Free For All, Peter Wayner claims that de Raadt "began to rub some people the wrong way" before the split from NetBSD;[2] interviewers admit to being "apprehensive";[3] and Linus Torvalds has described him as "difficult."[4] Others find his straightforwardness refreshing, and few deny he is a talented coder and security expert.

In October 1995, de Raadt founded OpenBSD, a new project forked from NetBSD 1.0. The initial release, OpenBSD 1.2, was made in July 1996, followed in October of the same year by OpenBSD 2.0.[5] Since then, OpenBSD has followed a schedule of a release every six months, each of which is maintained and supported for one year. The latest release, OpenBSD 3.8, appeared[6] on November 1, 2005.

OpenBSD 3.8-current booting

Just how widely OpenBSD is used is hard to ascertain: the OpenBSD project does not collect and publish usage statistics itself and there are few other sources of information. The nascent BSD Certification project performed a usage survey which revealed that 32.8% of BSD users (1420 of 4330 respondents) were using OpenBSD,[7] placing it second of the four major BSD variants, behind FreeBSD with 77.0% and ahead of NetBSD with 16.3%. The Distrowatch[8] website, well-known in the Linux community and often used as a reference for popularity, publishes page hits for each of the Linux distributions and other operating systems it covers. As of December 10, 2005 it places OpenBSD in 38th place, but fairly close to the average with 137 hits per day. FreeBSD is in 11th place with 493 hits per day and a number of Linux distributions range between them. From these statistics, it is possible to conclude that OpenBSD is a substantial presence in the BSD world, with somewhere around a third of the userbase of FreeBSD, and is not unnoticed in the wider open source and free software operating system community.

Open source and open documentation

When OpenBSD was created, Theo de Raadt decided that the source should be available for anyone to read at any time, so, with the assistance of Chuck Cranor,[9] he set up a public, anonymous CVS server. This was the first of its kind in the software development world: at the time, the practice was for only a small team of developers to have access to the CVS repository, a practice which had some flaws, notably that as outside contributors had no way to know what had been done, contributed patches would often be duplicates of already completed work. This decision led to the name OpenBSD and marked the start of the project's insistence on open and public access to source and documentation.

A revealing example of the OpenBSD project's attitude to open documentation occurred in March 2005, when Theo de Raadt made a post[10] to the openbsd-misc mailing list asserting that after four months of discussion, Adaptec had yet to disclose documentation needed to improve the OpenBSD drivers for their AAC RAID controllers. As in similar circumstances in the past, he encouraged the OpenBSD community to become involved and express their opinion to Adaptec. Shortly after this, FreeBSD committer, former Adaptec employee and author of the FreeBSD AAC RAID support Scott Long[11] made a comment[12] on the OSNews website castigating Theo de Raadt for not making contact with him regarding the issues with Adaptec. This caused the discussion to spill over onto the freebsd-questions mailing list, where Theo de Raadt countered[13] by claiming that he had received no previous offer of help from Scott Long, nor had Adaptec informed him that this was who he should contact. The debate was amplified[14] by disagreements between members of the two camps regarding the use of binary-only drivers and NDAs: Theo de Raadt and the OpenBSD project are strongly opposed to and do not permit the inclusion of closed-source binary drivers in the OpenBSD source tree and are reluctant to sign NDAs. However, the policy of the FreeBSD project has been less strict and much of the Adaptec RAID management code Scott Long proposed as assistance for OpenBSD was in closed-source form or written under an NDA. As no documentation was forthcoming before the deadline for release of OpenBSD 3.7, support for Adaptec AAC RAID controllers was removed from the standard OpenBSD kernel.

Licensing

OpenBSD 3.7 running X.org with the JWM window manager

A goal of the OpenBSD project is to "maintain the spirit of the original Berkeley Unix copyrights," which permitted a "relatively un-encumbered Unix source distribution."[15] To this end, the Internet Systems Consortium (ISC) licence, a simplified version of the BSD licence with wording removed that is unnecessary under the Berne convention, is preferred for new code, but the MIT or BSD licences are accepted. The GPL is considered overly restrictive in comparison with these:[16] code licensed under it, and other licences the project sees as undesirable, is no longer accepted for addition to the base system. In addition, existing code under such licences is actively replaced or relicensed when possible, although in some cases, such as GCC, there is no suitable replacement and creating one is time-consuming and impractical. Despite this, OpenBSD has made some significant strides in this area: of particular note is the development of OpenSSH, based on the original SSH suite and developed further by the OpenBSD team. It first appeared in OpenBSD 2.6 and is now the single most popular SSH implementation, available as standard or as a package on many operating systems. Also worth mentioning is the development, after licence restrictions were imposed on IPFilter, of the PF packet filter, which first appeared[17] in OpenBSD 3.0 and is now available in DragonFly BSD, NetBSD and FreeBSD; more recently, OpenBSD releases have seen the GPL licensed tools diff, grep, gzip, bc, dc, nm and size replaced with BSD licensed equivalents. The OpenBSD project is also behind the development of OpenNTPD and OpenCVS, BSD licensed alternatives to existing software.

In June of 2001, triggered by concerns over Darren Reed's modification of IPFilter's licence wording, developers began a systematic licence audit of the OpenBSD ports and source trees.[18] Code in more than 100 files throughout the system was found to be unlicensed, ambiguously licensed or in use against the terms of the licence. To ensure that all licences were properly adhered to, an attempt was made to make contact with all the relevant copyright holders: some pieces of code were removed, many were replaced, and others, including the multicast routing tools, mrinfo and map-mbone,[19] which were licensed by Xerox for research only, were relicensed so that OpenBSD could continue to use them.

Also of note during this audit was the removal of all software produced by Daniel J. Bernstein from the OpenBSD ports tree. At the time, Bernstein requested that all modified versions of his code be approved by him prior to redistribution, a requirement to which the OpenBSD project was unwilling to devote time nor effort.[20] The removal led to a clash with Bernstein, who felt it to be uncalled for, cited the Netscape web browser as much less free and accused the OpenBSD project and Theo de Raadt of hypocrisy for permitting it to remain while removing his software.[21] OpenBSD's stance was that Netscape, although not open source, had licence conditions that were much easier to meet;[22] they asserted that Bernstein's demand for control of derivatives would lead to a great deal of additional work and that removal was the most appropriate way to comply with his requirements. At present, after the release of OpenBSD 3.8, Daniel J. Bernstein's software is still absent from the ports tree.

Security

Shortly after OpenBSD's creation, Theo de Raadt was contacted by a local security software company named Secure Networks, Inc. or SNI.[23][24] They were developing a "network security auditing tool" called Ballista, later renamed to Cybercop Scanner after SNI was purchased by Network Associates, which was intended to find and attempt to exploit possible software security flaws. This coincided well with de Raadt's own interest in security, so the two agreed to cooperate, a relationship that was of particular use leading up to the release of OpenBSD 2.3[25] and helped to form the focal point of the OpenBSD project: where others might take the path of least resistance, OpenBSD would often go out of the way to do what was right, proper or secure, even at the cost of ease, speed or functionality. As bugs within OpenBSD became harder to find and exploit, the security company found that it was too difficult, or not cost effective, to handle such obscure problems. After years of cooperation, the two parties decided that their goals together had been met and parted ways.

Until June 2002, the OpenBSD website featured the slogan:

"No remote hole in the default install, in nearly 6 years."

In June 2002, Internet Security Systems discovered a bug in the OpenSSH code implementing challenge-response authentication.[26] This was the first and, so far, only vulnerability discovered in the OpenBSD default installation allowing an attacker remote access to the root account—it was extremely serious, partly due to the widespread use of OpenSSH by that time: the bug affected a considerable number of other operating systems.[27] This problem necessitated the adjustment of the slogan on the OpenBSD website to:

"Only one remote hole in the default install, in more than 8 years."

This statement has been criticized because little is enabled in a default install of OpenBSD and releases have included software that was later found to have remote holes; however, the OpenBSD project maintains that the slogan is intended to refer to a default install and that it is correct by that measure. One of the OpenBSD project's fundamental ideas is a drive for systems to be simple, clean and secure by default. For example, OpenBSD's minimal defaults fit in with standard computer security practice of enabling as few services as possible on production machines, and the project uses open source and code auditing practices argued to be important elements of a security system.[28]

Along with DragonFly BSD, OpenBSD is the only open source operating system with a policy of seeking out examples of classic, K&R-style C code and converting it to the more modern ANSI equivalent—this involves no functional change and is purely for readability and consistency reasons. A standard code style, the Kernel Normal Form, which dictates how code must look in order to be easily maintained and understood, must be applied to all code before it is considered for inclusion in the base operating system; existing code is actively updated to meet the style requirements. In addition, OpenBSD developers have a policy of continually auditing code for security problems and when one is discovered, searching the rest of the source for similar problems.

OpenBSD includes a large number of specific features designed to improve security, including API and toolchain alterations, such as the strlcpy and strlcat functions and a static bounds checker; memory protection techniques to guard against invalid accesses, such as ProPolice, StackGhost, the W^X page protection features, and the recent malloc alterations; and cryptography and randomization features, including network stack enhancements and the addition of the Blowfish cipher for password encryption. To reduce the risk of a vulnerability or misconfiguration allowing privilege escalation, some programs have been written or adapted to make use of privilege separation, privilege revocation or chrooting. Privilege separation is a technique, pioneered on OpenBSD and inspired by the principle of least privilege, where a program is split into two or more parts, one of which performs privileged operations and the other—almost always the bulk of the code—runs without privilege. Privilege revocation is similar and involves a program performing any necessary operations with the privileges it starts with then dropping them, and chrooting involves restricting an application to a small area of the file system, prohibiting it from accessing system files.

Uses

OpenBSD's security enhancements, cryptography and the PF firewall suit it for use in the security industry, particularly for firewalls, intrusion-detection systems and VPN gateways. It is also commonly used for web and other servers which need to be resistant against cracking attempts and DDOS attacks, and due to the inclusion of the spamd daemon, it occasionally sees use in mail filtering applications.

There are several proprietary systems which are based on OpenBSD, including Profense from Armorlogic ApS, IP360 Vulnerability Management Solution from nCircle, syswall from Syscall Network Solutions AG, GeNUGate and GeNUBox from GeNUA mbH and RTMX O/S from RTMX Inc. Of these, both RTMX and GeNUA have contributed back to OpenBSD: RTMX have sent patches to add further POSIX compliance to the system and GeNUA funded the development of SMP on the i386 platform. Several open source operating systems have also been derived from OpenBSD, notably Anonym.OS and MirOS BSD, as well as the now defunct ekkoBSD, MicroBSD and Gentoo/OpenBSD. In addition, code from many of the OpenBSD system tools has been used in recent versions of Microsoft's Services for UNIX, an extension to the Windows operating system which provides some Unix-like functionality, originally based on 4.4BSD-Lite. There have also been projects which use OpenBSD as part of images for embedded systems, including OpenSoekris and flashdist; together with tools like nsh, these allow Cisco-like embedded devices to be created.[29]

OpenBSD 3.8 running X.org with the default FVWM window manager

OpenBSD ships with the X window system. Following the XFree86 licence change, it includes a recent X.org release; an older XFree86 3.3 release is also available for legacy video cards. With these, it is possible to use OpenBSD as a desktop or workstation, making use of a desktop environment, window manager or both to give the X desktop a wide range of appearances. The OpenBSD ports tree contains many of the most popular tools for desktop use, including desktop environments GNOME, KDE, and Xfce; web browsers Mozilla Firefox and Opera; and multimedia programs. In addition, graphical software for many uses is available from both the ports tree and by compiling POSIX compliant software. Also available are compatibility layers, which allow binary code compiled for other operating systems, including Linux, FreeBSD, SunOS and HP-UX, to be run. However, since hardware providers such as ATI and NVIDIA refuse to release open source drivers or documentation for the 3D capabilities of their video cards, OpenBSD lacks accelerated 3D graphics support.

OpenBSD's performance and usability is occasionally criticized. Performance and scalability tests, most famously Felix von Leitner's tests,[30] often show OpenBSD to lag behind other operating systems. OpenBSD users and developers have countered this by asserting that although performance is certainly given consideration, security, reliability and correctness are seen as more important.[31] OpenBSD is also a relatively small project, particularly when compared with FreeBSD and Linux, and developer time is sometimes seen as better spent on security enhancements than performance optimisations. Critics of usability often point out the lack of user-friendly configuration tools, the bare default installation,[32] and "spartan" and "intimidating" installer.[33] These see much the same rebuttals as performance: a preference for simplicity, reliability and security; as one reviewer admits, "running an ultra-secure operating system can be a bit of work."[34]

Distribution and marketing

OpenBSD is available freely in various ways: the source can be retrieved by anonymous CVS or CVSup, and binary releases and development snapshots can be downloaded with ftp or http. Prepackaged CD sets can be ordered online for a small fee, complete with an assortment of stickers and a copy of the release's theme song. These, with their artwork and other bonuses, are one of the project's few sources of income, funding hardware, bandwidth and other expenses. To encourage the sale of the official CDs, OpenBSD makes only a small install ISO available for download rather than provide full release ISO images.

As with several other operating systems, OpenBSD uses ports and packages systems to allow for easy installation and management of programs which are not a part of the base operating system. Originally based on the FreeBSD ports tree, the systems are now quite distinct. Additionally, major changes have been made between the 3.6 and 3.8 releases and are still ongoing, including the replacement of the package tools, the tools available to the user to manipulate packages, by more capable versions, written in Perl by Marc Espie. In contrast to FreeBSD, the OpenBSD ports system is intended as a source used to create the end product, the packages: installing a port first creates a package and then installs it using the package tools. Packages are built in bulk by the OpenBSD team and provided for download with each release. OpenBSD is also unique among the BSDs in that the ports and base operating system are developed and released together for each version: this means that the ports or packages released with, for example, 3.7 are not suitable for use with 3.6 and vice versa, a policy which lends a great deal of stability to the development process, but means that the software in ports for the latest OpenBSD release can lag somewhat from the latest version available from the author.

File:Puffy OpenBSD mascot painted.png
Puffy, drawn

Puffy, the pufferfish, is the mascot of the OpenBSD project as well as its child projects: OpenSSH, OpenNTPD, OpenCVS and OpenBGPD. Puffy was selected because of the Blowfish encryption algorithm used in OpenSSH and the strongly defensive image of the puffer, whose spikes help deter predators. He quickly became very popular, mainly because of the appealing image of the fish and his distinction from the beastie used by FreeBSD and the horde of daemons then used by NetBSD. Puffy made his first public appearance in OpenBSD 2.6 and, since then, has appeared in a number of guises on tee-shirts and posters. These have included Puffiana Jones, the famed hackologist and adventurer, seeking out the Lost RAID; Puffathy, a little Alberta girl, who must work with Taiwan to save the day; Sir Puffy of Ramsay, a freedom fighter who, with Little Bob of Beckley, took from the rich and gave to all; and Puff Daddy, famed rapper and political icon.

After a number of releases, OpenBSD has become notorious for its catchy songs and interesting and often comical artwork. The promotional material of early OpenBSD releases did not have a cohesive theme or design but, starting with OpenBSD 3.0, the CDs, posters and tee-shirts for each release have been produced with a single style and theme, sometimes contributed to by Ty Semaka of the Plaid Tongued Devils. At first they were done lightly and only intended to add humour but, as the concept has evolved, they have become a part of the OpenBSD evangelism, with each release expanding a moral or political point important to the project, often through parody. Past themes have included: in OpenBSD 3.8, the Hackers of the Lost RAID, a parody of Indiana Jones linked to the new RAID tools featured as part of the release; The Wizard of OS, making its debut in OpenBSD 3.7, based on the work of Pink Floyd and a parody of The Wizard of Oz related to the project's recent wireless hacking; and OpenBSD 3.3's Puff the Barbarian, including an 80s rock-style song and parody of Conan the Barbarian, alluding to open documentation.

In addition to the slogans used on tee-shirts and posters for releases, OpenBSD occasionally produces other material: over the years, catchphrases have included "Sending script-kiddies to /dev/null since 1995," "Functional, secure, free – choose 3," "Secure by default," and a few insider slogans, only available on tee-shirts made for developer gatherings, such as "World class security for much less than the price of a cruise missile" and a crufty old octopus proclaiming "Shut up and hack!"

Books

A number of books on OpenBSD have been published, including:

See also

Notes and references

  1. ^ Glass, Adam. Message to netbsd-users: Theo De Raadt(sic), December 23, 1994. Visited January 8, 2006.
  2. ^ Wayner, Peter. Free For All: How Linux and the Free Software Movement Undercut the High Tech Titans, 16.3 Flames, Fights, and the Birth of OpenBSD, 2000. URL visited January 6, 2006.
  3. ^ NewsForge. Theo de Raadt gives it all to OpenBSD, January 30, 2001. Visited January 8, 2006.
  4. ^ Forbes. Is Linux For Losers? June 16, 2005. Visited January 8, 2006.
  5. ^ de Raadt, Theo. Mail to openbsd-announce: The OpenBSD 2.0 release, October 18, 1996. Accessed December 10, 2005.
  6. ^ de Raadt, Theo. Mail to openbsd-misc: 3.8 release, November 1 2005. Accessed December 9, 2005.
  7. ^ BSD Certification site: here; PDF of usage survey results: here.
  8. ^ Distrowatch site: here.
  9. ^ Chuck Cranor's site is here.
  10. ^ de Raadt, Theo. Mail to openbsd-misc: Adaptec AAC raid support, March 18, 2005. Accessed December 9, 2005.
  11. ^ Scott Long's site is here.
  12. ^ Long, Scott. Post to OSNews: From a BSD and former Adaptec person..., March 19, 2005. Accessed December 9, 2005.
  13. ^ de Raadt, Theo. Mail to freebsd-questions: aac support, March 19, 2005. Accessed December 9, 2005.
  14. ^ de Raadt, Theo. Mail to freebsd-questions: aac support, March 19, 2005. Accessed December 9, 2005.
  15. ^ OpenBSD.org. Copyright Policy. Visited January 7, 2006.
  16. ^ NewsForge. BSD cognoscenti on Linux, June 15, 2005. Visited January 7, 2006.
  17. ^ Hartmeier, Daniel. Design and Performance of the OpenBSD Stateful Packet Filter (pf). Accessed December 9, 2005.
  18. ^ NewsForge. OpenBSD and ipfilter still fighting over license disagreement, June 06, 2001. Visited November 23, 2005.
  19. ^ Man pages: mrinfo and map-mbone.
  20. ^ de Raadt, Theo. Mail to openbsd-misc: Re: Why were all DJB's ports removed? No more qmail?, August 24, 2001. Accessed December 9, 2005.
  21. ^ Bernstein, DJ. Mail to openbsd-misc: Re: Why were all DJB's ports removed? No more qmail?, August 27, 2001. Accessed December 9, 2005.
  22. ^ Espie, Marc. Mail to openbsd-misc: Re: Why were all DJB's ports removed? No more qmail?, August 28, 2001. Accessed December 9, 2005.
  23. ^ The Age. Staying on the cutting edge, October 8, 2004. Visited January 8, 2006.
  24. ^ ONLamp.com. Interview with OpenBSD developers: The Essence of OpenBSD, July 17, 2003. Visited December 18, 2005.
  25. ^ Theo de Raadt on SNI: "Without their support at the right time, this release probably would not have happened." From the 2.3 release announcement. Visited December 19, 2005.
  26. ^ Internet Security Systems. OpenSSH Remote Challenge Vulnerability, June 26, 2002. Visited December 17, 2005.
  27. ^ A partial list of affected operating systems is here.
  28. ^ Wheeler, David A. Secure Programming for Linux and Unix HOWTO, 2.4. Is Open Source Good for Security?, March 3, 2003. Visited December 10, 2005.
  29. ^ OpenSoekris, flashdist and nsh.
  30. ^ The test results and conclusions are: here.
  31. ^ Holland, Nick. Mail to openbsd-misc: Re: OpenBSD Benchmarked... results: poor!, October 19, 2003. Visited January 8, 2006.
  32. ^ NewsForge. Trying out the new OpenBSD 3.8, November 02, 2005. Accessed January 8, 2006.
  33. ^ NewsForge.Review: OpenBSD 3.5, July 22, 2004. Accessed January 8, 2006.
  34. ^ Distrowatch. OpenBSD - For Your Eyes Only, 2004. Visited January 8, 2006.

External links

Leave a Reply