OpenBSD

特徴

目標としているのは正しい思想 (correctness) と先制的なセキュリティ (proactive security) である。オープンソースおよびドキュメンテーションの重視、ソフトウェアライセンスに妥協しない姿勢でも知られている。テオ・デ・ラートの自宅がアルバータ州カルガリーということで、暗号の輸出制限がないカナダを開発の本拠地としている。ロゴおよびマスコットはフグのPuffy。
OpenBSD の目指す正しい思想には、GPLより制限の少ないBSDライセンスこそ真にフリーであるという意見や、正しく設計されたOSは移植が容易であるはずだという理念などが含まれる。もともと NetBSD から派生したため移植性は高いレベルにあったが、新しいプラットフォームへの移植のたびにコードが洗練されセキュリティの向上につながってきたとして、NetBSD とは別の観点から移植の意義を強調している。
また先制的なセキュリティとは、脆弱性が発見されてから問題を修正するのではなく、問題の起こりにくい設計や徹底したコード監査によって、事前にあらゆる危険性を排除しようとすることを意味する。
そのため、通常のインストールではほとんどのサービスが起動しないようになっており、これまでに「デフォルトインストールでのリモートセキュリティホールが2つしか発見されていない」ことを売り文句にしている。
その2つとは、2002年に発見された OpenSSH の桁あふれ問題 と、2007年に発見された IPv6 スタックのバッファオーバーフローである。
設計や仕様は文書化され、コーディングと同時にマニュアル (man) が更新されている。実態に即したマニュアルを保証することにより、管理者や開発者の無知・不注意に起因するセキュリティ問題を防止している。

成果

他のOSでも標準的に使われているSSHの代表的実装OpenSSHの他、C言語で文字列を安全に扱うためのstrlcpyとstrlcat、IPパケットをフィルタリングするPF（パケットフィルタ）、BSD系OSで暗号化ハードウェアサポートを可能にするOCF (OpenBSD Cryptographic Framework) などは他のBSDの子孫達にも取り込まれている。
CVS リポジトリを外部に公開したのは OpenBSD が最初だが、その後 anonymous cvs は subversion や git などの普及前の時期においてオープンソースプロジェクトの標準的な開発基盤となっていた。

歴史

1994年12月、NetBSD の立ち上げ時のメンバーでもあったテオ・デ・ラートは、上級開発者の地位とNetBSD中核チームメンバーという立場から退くよう要求され、ソースコードへのアクセスもできないようにされた。そうなった経緯は明らかではないが、NetBSDプロジェクトおよびメーリングリストでの性格の不一致が原因と言われている。テオはそれまでも周囲と衝突の絶えない性格を批判されていた。Peter Wayner は自著 Free For All の中でテオがNetBSDを離脱する直前「何人かの人々の気持ちを逆なでしはじめた」と書いている。リーナス・トーバルズはテオを「気難しい」と評している。あるインタビュアーは彼と会う前に「不安だ」ともらしている。しかし、そのように思わない人も多い。件のインタビュアーはテオがOpenBSDを立ち上げる際に「変化」し「チームの面倒を見ることを望んでいる」と述べた。彼が有能なプログラマであり、セキュリティに関する第一人者の1人であることを否定する者はほとんどいない。
1995年10月、テオは NetBSD 1.0 からのフォークとしてOpenBSDプロジェクトを立ち上げた。最初のリリースは1996年7月の OpenBSD 1.2 であり、同年10月には OpenBSD 2.0 をリリース。約半年ごとに新リリースが公開され、各リリースについて1年間サポートと保守を行う。ただし、開発者はシステム全体の整合性を保つ範囲でのみコードに変更を加えなくてはならないため、常時更新されているスナップショット版も安定して動作することが期待されている。2007年11月1日に公開された OpenBSD 4.2 は直前に急逝した萩野純一郎に捧げられている。
2007年7月25日、OpenBSD開発者 Bob Beck は OpenBSD Foundation の創設を発表した。これはカナダの非営利団体で「個人や法人がOpenBSDをサポートしたい場合に対応する窓口として働く」ものである。
OpenBSDがどれほど使われているかは確認が難しい。開発者側でも把握していないし統計も公表していないが、他の情報源が若干存在する。2005年9月、創設間もない BSD Certification Group が利用状況の調査を行い、BSD系OS利用者の32.8%（4330件の回答のうち1420件）がOpenBSDを使っているという結果が得られた。同調査ではFreeBSDは77%、NetBSDは16.3%であり、OpenBSDは2位だった。DistroWatchというウェブサイトはLinuxコミュニティではよく知られているが、各Linuxディストリビューションと他のOSのサイトのヒット数を公表している。それによると2018年7月22日現在、OpenBSDのサイトには1日146ヒットがあり、79位となっている。ちなみにFreeBSDは1日295ヒットで33位、NetBSDは1日101ヒットで107位である。
2016年9月1日の6.0のリリースに伴いEFIブートローダーを追加し、FATまたはextファイルシステムに代わって、FFSからU-Bootヘッダなしにカーネルを読み込めるようになった。

「オープン」という姿勢

OpenBSD プロジェクトが生まれた当時は、オープンソースプロジェクトであっても、ソースのリポジトリにアクセスできるのは選ばれた少人数の開発者チームだけというのが普通だった。この方式では、外部のコントリビュータは最新の開発状況を直接知ることができないため、貢献しようとしても作業がダブってしまい無駄になることが多かった。テオ・デ・ラートはソースを誰でもいつでも読めるようにすべきだと考え、Chuck Cranor の支援を求めた。Cranor は公開の匿名CVSサーバを立ち上げた。これはソフトウェア開発の世界で初の試みであり、この決断により OpenBSD という名称が生まれ、ソースコードと文書へのアクセスをオープンにするという姿勢を表すようになった。
OpenBSD のオープン性についての方針は、ハードウェアに関しても適用される。テオは2006年12月のプレゼンテーション用スライドで、ハードウェア仕様の詳細を示す文書が公開されていなければ「開発者がドライバを書く際に間違うことが多い」とし、「（やった、動いたぞ、という）快感を味わうことは難しく、開発者によってはあきらめてしまう」と説明している。更に、OpenBSD プロジェクトにとってベンダーの提供するバイナリドライバは信用できないし、「問題が生じても…修正する方法がない」ため、許容できないとした。また、ベンダーによるソースは「若干受け入れ可能」だが、依然として問題発生時に修正が困難だとしている。
このような方針を示す出来事として、2005年3月、テオが openbsd-misc というメーリングリストにポストしたメッセージを端緒とする議論がある。メッセージの中でテオは、アダプテックの AAC RAID コントローラ用のデバイスドライバを改良するために、同社に必要な文書を開示してくれるよう4カ月に渡って交渉してきたが、開示されなかったことを明らかにし、OpenBSD コミュニティ全体に対して、アダプテックに彼らの意見を表明することを奨励した（このような行動はこれ以前にも行われている）。その直後、アダプテック元従業員で FreeBSD 版 AAC RAID サポートの作者でもある FreeBSD のコミッター Scott Long が、テオがアダプテックとのこの問題について彼に直接コンタクトを取らなかったとして、テオを酷評する文章を OSNews というサイトで発表した。この件で freebsd-questions メーリングリストは議論が紛糾し、そこで OpenBSD プロジェクトのリーダーは Scott Long から支援の申し出は全くなかったし、アダプテックからも Long を紹介されなかったと反論した。議論は、バイナリ・ブロブと秘密保持契約 (NDA) の使用を許容するかしないかという2派に分かれての激論に発展した。OpenBSD の開発者らは、ソースツリー内にプロプライエタリなバイナリドライバの存在を許さない立場で、NDAにも消極的である。これに対してFreeBSDプロジェクトの方針は異なり、Scott Long がOpenBSDへの支援として提案したアダプテックの RAID 用コードの多くは、クローズドソースか NDA 契約に基づいて書かれている。結局 OpenBSD 3.7 の締め切りまでの文書は提供されず、アダプテックの AAC RAID コントローラサポートは、標準の OpenBSD カーネルからは削除された。

ライセンス

OpenBSDプロジェクトの目標のひとつとして、「元々のバークレー版Unixの著作権の精神を保ち」、それによって「相対的に邪魔されることのないUnixソースのディストリビューション」を可能にすることを掲げている。このため、ベルヌ条約によって不要となる言い回しをBSDライセンスから削除して単純化したISCライセンスを新規コードに適用することを基本としているが、MITおよびBSDライセンスも許容している。広く使われている GNU General Public License は、それらに比べると制限が厳しすぎると見なされている。不適切と見なされたライセンスで提供されているコードは、現在では基本システムには追加しない方針となっている。既存コードでそのようなライセンスで提供されているものは、可能な限り置換したりライセンスを変更しているが、適当な代替物がない場合や新たな開発に時間がかかる場合はそのままとなっている。ライセンス問題から開発したものとしてOpenSSHがある。元々の SSHスイートをベースとしてOpenBSDチームが開発したもので、、OpenBSD 2.6 で最初に登場し、今では最も広く使われているSSHの実装になっており、様々なOS上で利用可能である。同様なライセンス問題はIPFilterにもあり、その代替物としてPFパケットフィルタを開発した。OpenBSD 3.0 で最初に登場し、現在では DragonFly BSD、NetBSD、FreeBSD でも使える。最近ではGPLでライセンスされた diff、grep、gzip、pkg-config などのツールをBSDライセンスの代替物で置き換えている。また、新プロジェクトとしてOpenBGPD、OpenNTPD、OpenOSPFD、OpenSMTPDなども立ち上げている。2007年9月、OpenBSDチームはGNUコンパイラコレクション (GCC) を置き換える作業に乗りだし、手始めに Anders Magnusson によるBSDライセンスの Portable C Compiler (PCC) を導入した。
2001年6月、Darren Reed がライセンスの文言を変えたことで懸念が生じ、OpenBSDの全portsとソースツリーについての体系的なライセンスの監査が行われた。システム全体で100以上のファイルのコードについて、ライセンスが不明であるか、ライセンスに反した使い方をしていることが判明した。全てのライセンスを適切に遵守することを保証するため、それぞれの著作権者に連絡をとろうと試みた。結果として一部のコードは削除され、多くは置き換えられた。他に、ゼロックスが研究用途にのみライセンスしていたマルチキャストルーティングツール mrinfo と map-mbone などがあったが、ライセンスの変更を著作権者が受け入れたため、そのままOpenBSDで使うことができるようになった。この監査作業で削除されたソフトウェアとして、ダニエル・バーンスタインの作った全ソフトウェアがある。このときバーンスタインは、彼のコードの修正版を再配布する前に彼の承認を得ることを要求していたが、OpenBSDチームはそのための時間がないとしてその要求を退けたためである。これに対して、バーンスタインはいわれなく削除されたとして憤慨した。彼はもっとフリーでないライセンスで提供されているウェブブラウザNetscapeを引き合いに出し、彼のソフトウェアを削除しておいてNetscapeをそのままにしておくのは偽善だとOpenBSD開発者らを非難した。OpenBSDプロジェクトのスタンスは、Netscapeはオープンソースではないが、そのライセンス条件はプロジェクトの方針に適合しているというものだった。彼らは、派生物を制御しようとするバーンスタインの要求を受け入れると多大な労力が付随して必要になるため、削除が最も適切な対応だったとしている。

利用

暗号を組み込みファイアウォールスイートPFを備えるといったOpenBSDのセキュリティ強化により、セキュリティ関連での利用に適しており、ファイアウォール、侵入検知システム、VPNゲートウェイなどで特に利用されている。また、DoS攻撃やクラッキングへの耐性が必要なサーバでもよく使われており、spamdデーモンが含まれていることから電子メールフィルタリング用途にも使われることがある。
OpenBSDに基づいたプロプライエタリシステムもいくつかの業者が製品化している。例えば、Calyptix Security、GeNUA mbH、RTMX Inc、.vantronix GmbHなどがある。GeNUAは、i386プラットフォームでのSMP機能の開発に寄与し、RTMXはシステムをPOSIX準拠に近づけるためのパッチを送り、.vantronix はネットワークや負荷分散機能の追加に寄与した。OpenBSDのシステムツールのコードの多くは、マイクロソフトの Services for UNIX にも使われている（元々は4.4BSD-LiteをベースとしたUnix系機能をWindowsに提供する拡張）。Core Force はWindows向けのセキュリティ製品だが、OpenBSDのPFファイアウォールをベースにしている。組み込みシステム関係でOpenBSDを一部に利用しているプロジェクトとして、OpenSoekris、flashdist、flashrd などがある。
OpenBSDには X Window System が含まれている。そのためデスクトップあるいはワークステーションとしても利用でき、様々なデスクトップ環境やウィンドウマネージャを利用できる。portsツリーにはデスクトップ用の各種ツールが含まれており、デスクトップ環境としてはGNOME、KDE、Xfce、ウェブブラウザとしてはKonqueror、Mozilla Firefox、Opera、マルチメディア関連ではMPlayer、VLCメディアプレーヤー、xineなどがある。互換レイヤーも利用可能で、Linux、FreeBSD、SunOS、HP-UX などの他のOS向けにコンパイルされたバイナリを実行できる。
OpenBSDは性能やユーザビリティの面で批判されることがある。Felix von Leitner の性能/スケーラビリティのテストによれば、他のOSに比べて性能が低い。これに対してOpenBSD関係者は von Leitner の客観性と技法を批判しつつ、性能は確かに考慮に値するが、セキュリティの良さと正しい設計によって正当化されるとし、開発者 Nick Holland は「それは結局のところ、何を重要と考えるかに帰着する」とコメントした。また、OpenBSDはFreeBSDやLinuxに比べるとプロジェクトの規模が小さく、開発者の時間は性能の最適化よりもセキュリティ強化に費やされているように見える。ユーザビリティの批判としては、OpenBSDにはユーザーフレンドリーな設定ツールがない点、デフォルトのインストールがほぼ裸状態である点、インストーラが「簡素」で「威嚇的」な点を挙げることがある。これに対する反論も性能の場合とほぼ同じで、簡潔性、信頼性、セキュリティを重視した結果だという。あるレビューでは「極めてセキュアなOSを動作させることは、ちょっとした仕事と言えるかもしれない」と評している。

ディストリビューションとマーケティング

OpenBSDは様々な方法で無料で入手可能である。ソースは匿名CVSまたはCVSupで入手でき、バイナリ版リリースや開発スナップショットはFTPまたはHTTPでダウンロード可能である。CD-ROMのパッケージ版はわずかな代金でオンラインで注文でき、おまけとしてステッカーやリリースのテーマ曲が付いてくる。その収入やアート作品の代価や寄付金でプロジェクトが運営されており、ハードウェアなどのサイト運営費用を賄っている。OpenBSD 4.2 までは、完全版のCD-ROMセットの売り上げを確保するため、小さなインストール用ISOイメージしかダウンロードできないようにしていた。OpenBSD 4.2 から、完全版のISOイメージがダウンロードできるようになった。
他のいくつかのオペレーティングシステムと同様、OpenBSDではプログラムのインストールと管理を容易にするためにportsとパッケージシステムを使っており、それらはOS本体の一部ではない。元々はFreeBSDのportsツリーに基づいていたが、現在のシステムは全く異なる。さらに3.6のリリースで大きな変更が加えられ、特にパッケージツールを Marc Espie がPerlで書いた高機能なツールに置き換えた。FreeBSDとは対照的に、OpenBSDのportsシステムは製品版のパッケージを生成することを意図している。portをインストールするとパッケージが生成され、パッケージツールを使ってそれをインストールすることになる。リリースの度にOpenBSDチームがまとめてパッケージを作り、ダウンロード用に提供している。他のBSDの子孫と比較してユニークな点として、portsとOS本体が各バージョンで共に開発されている点が挙げられる。すなわち、例えば3.7でリリースされたportsやパッケージは3.6で使うのには適していない（逆も同様）。このポリシーによって開発プロセスの安定性が確保されているが、OpenBSDの最新リリースのportsにあるソフトウェアは、そのソフトウェアの原作者の最新バージョンより若干遅れることがある。
OpenBSD 2.7 がリリースされたころ、それまでのBSDデーモンに代わってオリジナルのマスコット Puffy を登場させた。これはフグ (pufferfish) とされている。実際のフグの多くはトゲがなく、Puffyの絵はどちらかといえばハリセンボンに近い。これは、OpenSSHがBlowfish（フグの意）暗号を使っていることと、ハリセンボンのトゲが外敵を防ぐイメージを表しているという。Puffyは OpenBSD 2.6 で最初に登場し、その後Tシャツやポスターに様々な姿で登場した。例えば、Puffiana Jones はハッカー学者にして冒険家であり、Lost RAID を追い求めている。Puffathy はアルバータの少女で、Taiwanと共に冒険する。Puff Daddy は有名なラッパーであり、政治的偶像である。
OpenBSDは、リリースごとに覚えやすいテーマ曲やコミカルなアート作品を生み出してきたことでも有名になった。初期のOpenBSDのリリースには統一感のあるプロモーション用素材はなかったが、OpenBSD 3.0 のCD-ROM版以降、テーマ曲、ポスター、Tシャツなどをリリースごとに統一的に生み出しており、時にはカナダの音楽グループ Plaid Tongued Devils の Ty Semaka が協力している。元々は単にユーモアを加えるだけの軽い意図だったが、コンセプトが成長するに従いそれらがOpenBSDの一部となり、パロディの形でプロジェクトの理念を表すようになっていった。例えば、OpenBSD 3.8 のテーマは Hackers of the Lost RAID、すなわちインディアナ・ジョーンズのパロディであり、新RAIDツールがリリースに加わったことと連携している。OpenBSD 3.7 のテーマは The Wizard of OS で、ピンク・フロイドの作品や『オズの魔法使』のパロディであり、無線通信関連のプロジェクトと連携している。OpenBSD 3.3 のテーマ Puff the Barbarian は80年代のロックや英雄コナンのパロディを含み、オープンドキュメンテーションを示唆している。
リリースごとのTシャツやポスターに書かれたスローガンに加え、プロジェクトは、"Sending script kiddies to /dev/null since 1995"、"Functional, secure, free  choose 3"、"Secure by default" といった様々なキャッチフレーズも生み出し、開発者のみの会合で配布されるTシャツに書かれた内部スローガンとして "World class security for much less than the price of a cruise missile" とか、"Shut up and hack!" といった言葉も生み出している。

対応プラットフォーム

順番は公式サイトに従う。