NetBSD

NetBSDは、UNIXライクなオープンソースのオペレーティングシステムである。いわゆるBSDの子孫のひとつであるが、そのなかでも、386BSDがフォークされて生まれた公式リリースの中で最初に生まれたものである。1993年5月に最初の公式リリースである0.8が公開された。さまざまなアーキテクチャへの高い移植性、コードの分かりやすさ、などに焦点が置かれて開発されている。→#特徴

互換性の乏しい商用UNIXが多数併存していた1990年代前半当時には、移植性を重視し、多くのハードウエア上で同一のUNIXが動作することを目指したNetBSDの方向性には一定の意味があると思われていた。しかしながら、実際には、商用UNIXを捨ててNetBSDにOSを載せ替える動きはほとんど見られず、NetBSDは事実上x86アーキテクチャーのPC用OSとして使われることになった。このことは、x86を優先的に考えるFreeBSDと比較した場合、移植性を重視するNetBSDはx86対応の開発が遅れがちになるという問題を抱えることとなり、FreeBSDや他のBSD系OSに、利用者数面で徐々に差をつけられることとなった。

2021年現在、NetBSDの利用者数はFreeBSDの300分の1程度とするデータがある。ある程度の利用者がいたとみられる2005年時点でも、FreeBSDの5分の1程度、さらに、NetBSDから分離してできた後発のOpenBSDに対しても2分の1以下の利用者しかいなかった。

このような状況下にもかかわらず、開発者グループ内の軋轢の結果、OpenBSDが分離し、開発リソースのさらなる減少と、類似したBSD系列間での開発内容の重複などの非効率化を招くこととなり、より一層開発が遅延する結果となった。その後も、開発者グループ内の内紛は絶えることがなく、沈滞傾向に拍車をかけることとなった。2000年以降NetBSDに関する日本語の書籍は刊行されていない。

NetBSDのソースコードは誰でも利用でき、そのライセンスはパーミッシブ・ライセンスである。なお「NETBSD」という名称のほうは、2004年4月20日をもってThe NetBSD Foundationの登録商標となっている。

1. 特徴
-----

移植性の高さNetBSDは"Of course it runs NetBSD."という標語を掲げて開発が行われており、幅広いアーキテクチャに対して移植され、単一のソースツリーから、58以上のアーキテクチャに対してバイナリが構築可能である。

コードの分かりやすさソースツリーは機種依存部分と機種独立部分を可能な限り分離するように構成されている。これにより、機種独立部分に追加された機能は、全てのアーキテクチャで利用可能となり、再移植が不要である。ドライバの開発も機種独立である。あるPCIカード向けに書かれたドライバは、80386、Alpha、PowerPC、SPARCなどPCI バスを備えたアーキテクチャであればどれでも使うことができる。それ以外にも、PCI ExpressやUSB等も同様にアーキテクチャに関係なく実装される。この機種独立性が、組み込みシステムでの開発に大きく寄与している。コンパイラ、アセンブラ、リンカその他の、クロスコンパイルに完全対応したツールチェーン一式を持つNetBSD 1.6以降では、特に顕著である。

2. 歴史
-----

NetBSDはカリフォルニア大学バークレー校のComputer Systems Research Group がリリースした4.3BSDから、Networking/2、および386BSDを介して派生したものである。NetBSDプロジェクトは、386BSDの開発者コミュニティ内の開発のペースや方向性に対する不満から始まった。四人のNetBSDプロジェクトの創始者Chris Demetriou、テオ・デ・ラート、Adam Glass、Charles Hannumは、移植性、きれいで正確なコードを軸とした開かれた開発モデルがプロジェクトに有益であると感じていた。彼らの目的は、統一された、マルチプラットフォームの、製品レベルの品質を持ったBSDベースのオペレーティングシステムを作り出すことであった。"NetBSD"の名称はインターネットなどの当時の急速に発展していたネットワークの重要性と、開発が分散した環境で共同で行われるというプロジェクトの性質からラートが提案したものである。

NetBSDのソースコードリポジトリは1993年3月21日に設立され、最初の公式リリースNetBSD 0.8は1993年4月に行われた。このときのコードは386BSD 0.1にバージョン0.2.2の非公式のパッチをあて、386BSDに不足していたいくつかのプログラムをNet/2リリースから再統合し、そのほかいくつかの改良が含まれていた。最初のマルチプラットフォームのリリースNetBSD 1.0は1994年10月に行われた。同年暮れ、創設者の一人テオ・デ・ラートがプロジェクトから追われることとなった。彼は1995年の終わりごろ、NetBSD 1.0のコードからフォークした新しいプロジェクトOpenBSDを立ち上げた。1998年、NetBSD 1.3でpkgsrcパッケージコレクションが導入された。

3. 対称マルチプロセッシング
---------------

NetBSDは対称型マルチプロセッシングを2004年リリースのNetBSD 2.0よりサポートしており、初期の実装はジャイアントロックを用いた方法であった。NetBSD 5のリリースに向けた開発サイクルで、SMPのサポートを改善する主要な作業が完了した。カーネルサブシステムの大半の部分がマルチプロセッサでも安全になり、細粒度のロックを用いるよう修正された。新しい同期機構が導入され、2007年2月にScheduler activationsが1:1スレッドモデルに置き換えられた。スケーラブルなM2スレッドスケジューラが実装されたが、4.4 BSDのスケジューラがデフォルトで使用されている。同期化の性能を向上させるため、スレッド化された割り込みが実装された。仮想メモリシステム、メモリ割り当て、例外ハンドリングがマルチプロセッサでも安全になり、仮想ファイルシステムおよび主要なファイルシステムを含むファイルシステムフレームワークもマルチプロセッサ対応になった。2008年4月以降、ジャイアントロックで動作しているのはネットワークプロトコルと大半のデバイスドライバのみとなっている。

4. バージョンについて
------------

4.1. 最新のバージョン
-------------

2022年8月4日現在、NetBSD の最新リリース版は9.3である。



5. 対応機種
-------

5.1. ポート
--------

6. 関連プロジェクト
-----------

6.1. pkgsrc
-----------

NetBSDには、独自のサードパーティーソフトウェア集、NetBSD Packages Collection がある。2009年7月現在、8,000を超えるパッケージが用意されている。

GNOME、KDE、Apache HTTP ServerやPerl等をインストールするには、適切なディレクトリに移動して"make install"とタイプするだけである。こうすると、ソースの取り寄せ、展開、configure、構築や、後で削除可能な形でのパッケージのインストールを自動的に行ってくれる。このようなコンパイルを行うかわりに、あらかじめ構築されたバイナリパッケージを使うこともできる。どちらを使うにせよ、事前準備や依存するパッケージのインストールは、パッケージシステムによりすべて自動で行われ、手動での調整は必要ない。

移植性の教義に従い、NetBSD Packages Collection は、Linux、FreeBSD、OpenBSD、Solaris、Darwin/macOS、IRIX、Interix  など、NetBSD以外の多くのオペレーティングシステムに移植されている。

DragonFly BSDでは標準のパッケージシステムをpkgsrcに変更した。

6.2. Lumina
-----------

BSD向けに開発された軽量デスクトップ環境で、NetBSDでも利用可能。

7. 使用例
------

NetBSD のきれいな設計、高い性能とスケーラビリティ、幅広いアーキテクチャのサポートは組み込み機器やサーバー、特にネットワークや工業用途に適している。

商用のリアルタイムオペレーティングシステムQNXは、NetBSDのコードから派生したネットワークスタックを使用しており、デバイスドライバも NetBSD から多数ポートされている。

フォーステンネットワークスはNetBSDを高スケーラビリティのルーターで用いられるFTOSの基盤OSとして使用している。フォーステンはまた2007年、NetBSD財団の更なる発展とオープンな開発コミュニティを助けるため寄付を行っている。

Wasabi Systemsは、組み込みのサーバーやストレージ機器への応用に焦点を置いてNetBSDに商用のエンタープライズ向けの機能拡張を行ったWasabi Certified BSDを提供している。

NetBSDはNASAによる国際宇宙ステーションの微小重力を調査するプロジェクトで使用され、また人工衛星ネットワークにおけるTCPの利用に関する研究にも使用された。

2004年には、SUNETがNetBSDを用いてInternet2の地上における最高速記録を樹立している。このときNetBSDが選定された理由は「TCPコードのスケーラビリティ」である。

T-Mobile Sidekick LX 2009スマートフォンのオペレーティングシステムはNetBSDを元にしたものである。

インターネットイニシアティブが自社開発するルータ「SEIL」シリーズは、2000年の「SEIL T1」以降NetBSDをベースOSに採用している。

8. 脚注
-----

9. 関連項目
-------

BSDの子孫
DragonFly BSD
FreeBSD
OpenBSD
macOS

10. 外部リンク
---------

[1]