NetBSD
開発者
The NetBSD Foundation OSの系統
BSD 開発状況
開発中 ソースモデル
オープンソース 最新安定版
10.0 - 2024年5月28日 (6か月前) (2024-05-28 ) [ 1] [±] 最新開発版
9.99.x / Daily builds リポジトリ
パッケージ管理
pkgsrc プラットフォーム
Alpha , ARM , PA-RISC , 68k , MIPS , PowerPC , SH3 , SPARC , RISC-V , VAX , x86 カーネル 種別
モノリシックカーネル ライセンス
BSDライセンス ウェブサイト
The NetBSD Project 日本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程度とするデータがある[ 2] 。ある程度の利用者がいたとみられる2005年時点でも、FreeBSDの5分の1程度、さらに、NetBSDから分離してできた後発のOpenBSDに対しても2分の1以下の利用者しかいなかった[ 3] 。
このような状況下にもかかわらず、開発者グループ内の軋轢の結果、OpenBSDが分離し、開発リソースのさらなる減少と、類似したBSD系列間での開発内容の重複などの非効率化を招くこととなり、より一層開発が遅延する結果となった。その後も、開発者グループ内の内紛は絶えることがなく[ 4] 、沈滞傾向に拍車をかけることとなった。2000年以降NetBSDに関する日本語の書籍は刊行されていない。
NetBSDのソースコード は誰でも利用でき、そのライセンスはパーミッシブ・ライセンス である。なお「NETBSD」という名称のほうは、2004年 4月20日をもってThe NetBSD Foundationの登録商標 となっている。
特徴
移植性の高さ
NetBSDは"Of course it runs NetBSD."(「もちろんその機種でもNetBSDが動きます」といった意味)という標語を掲げて開発が行われており、幅広いアーキテクチャ に対して移植され、単一のソースツリーから、58以上のアーキテクチャに対してバイナリが構築可能である。
コードの分かりやすさ
ソースツリーは機種依存部分と機種独立部分を可能な限り分離するように構成されている。これにより、機種独立部分に追加された機能は、全てのアーキテクチャで利用可能となり、再移植が不要である。ドライバ の開発も機種独立である。あるPCIカード向けに書かれたドライバは、80386 、Alpha 、PowerPC 、SPARC などPCI バス を備えたアーキテクチャであればどれでも使うことができる。それ以外にも、PCI Express やUSB 等も同様にアーキテクチャに関係なく実装される。この機種独立性が、組み込みシステム での開発に大きく寄与している。コンパイラ 、アセンブラ 、リンカ その他の、クロスコンパイル に完全対応したツールチェーン 一式を持つNetBSD 1.6以降では、特に顕著である。
歴史
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に[ 5] バージョン0.2.2の非公式のパッチをあて、386BSDに不足していたいくつかのプログラムをNet/2リリースから再統合し、そのほかいくつかの改良が含まれていた。最初のマルチプラットフォームのリリースNetBSD 1.0は1994年10月に行われた。同年暮れ、創設者の一人テオ・デ・ラートがプロジェクトから追われることとなった。彼は1995年の終わりごろ、NetBSD 1.0のコードからフォークした新しいプロジェクトOpenBSD を立ち上げた。1998年、NetBSD 1.3でpkgsrc パッケージコレクションが導入された。
対称マルチプロセッシング
NetBSDは対称型マルチプロセッシング (SMP)を2004年リリースのNetBSD 2.0よりサポートしており[ 6] 、初期の実装はジャイアントロック を用いた方法であった。NetBSD 5のリリースに向けた開発サイクルで、SMPのサポートを改善する主要な作業が完了した。カーネルサブシステムの大半の部分がマルチプロセッサでも安全になり、細粒度 のロックを用いるよう修正された。新しい同期機構 が導入され、2007年2月にScheduler activations が1:1スレッドモデル に置き換えられた[ 7] 。スケーラブルなM2スレッドスケジューラが実装されたが、4.4 BSDのスケジューラがデフォルトで使用されている(これもSMPでスケールするよう変更された)。同期化の性能を向上させるため、スレッド化された割り込み が実装された。仮想メモリ システム、メモリ割り当て 、例外ハンドリング がマルチプロセッサでも安全になり、仮想ファイルシステム および主要なファイルシステム を含むファイルシステムフレームワークもマルチプロセッサ対応になった。2008年4月以降、ジャイアントロックで動作しているのはネットワークプロトコル と大半のデバイスドライバ のみとなっている。
バージョンについて
最新のバージョン
2022年8月4日現在、NetBSD の最新リリース版は9.3である。
これまでのリリース
年月日
バージョン
1993年
4月20日
0.8
8月23日
0.9
1994年
10月26日
1.0
1995年
11月26日
1.1
1996年
10月4日
1.2
1997年
5月20日
1.2.1
1998年
1月4日
1.3
3月9日
1.3.1
5月29日
1.3.2
12月23日
1.3.3
1999年
5月12日
1.4
8月26日
1.4.1
2000年
3月19日
1.4.2
11月25日
1.4.3
12月6日
1.5
2001年
7月11日
1.5.1
9月13日
1.5.2
2002年
7月22日
1.5.3
9月14日
1.6
2003年
4月21日
1.6.1
2004年
3月1日
1.6.2
12月9日
2.0
2005年
4月14日
2.0.2
2.0.1はサーバトラブルのためリリースされなかった
10月31日
2.0.3
11月2日
2.1
12月23日
3.0
2006年
7月24日
3.0.1
11月4日
3.0.2, 3.1
2007年
12月19日
4.0
2008年
10月14日
4.0.1
2009年
4月29日
5.0
8月2日
5.0.1
2010年
2月12日
5.0.2
11月19日
5.1
2012年
2月11日
5.1.2
5.1.1はリリースされなかった[ 8]
10月17日
6.0
12月3日
5.2
12月26日
6.0.1
2013年
5月18日
6.0.2, 6.1
8月22日
6.1.1
9月30日
6.0.3, 6.1.2
2014年
1月27日
5.1.4, 5.2.2, 6.0.4, 6.1.3
4月12日
6.0.5, 6.1.4
9月22日
6.0.6, 6.1.5
11月15日
5.1.5, 5.2.3
2015年
9月25日
7.0.0
2016年
5月28日
7.0.1
10月21日
7.0.2
2017年
3月11日
7.1
12月22日
7.1.1
2018年
3月15日
7.1.2
7月17日
8.0
8月29日
7.2
2019年
5月31日
8.1
2020年
2月14日
9.0
3月31日
8.2
10月18日
9.1
2021年
5月12日
9.2
2022年
8月4日
9.3
2024年
5月28日
10.0
対応機種
ポート
acorn26
acorn32
algor
alpha
amd64
amiga
amigappc
arc
atari
bebox
cats
cesfic
cobalt
dreamcast
emips
epoc32
evbarm
evbmips
evbppc
evbsh3
ews4800mips
hp300
hp700
hpcarm 例 Advanced/W-ZERO3[es]など[ 9]
hpcmips
hpcsh
i386
ia64
ibmnws
iyonix
landisk
luna68k
mac68k
macppc
mipsco
mmeye
mvme68k
mvmeppc
netwinder
news68k
newsmips
next68k
ofppc
pmax
prep
rs6000
sandpoint
sbmips
sgimips
shark
sparc
sparc64
sun2
sun3
vax
x68k
xen
zaurus
関連プロジェクト
pkgsrc
NetBSDには、独自のサードパーティー ソフトウェア集、NetBSD Packages Collection (別名pkgsrc )がある。2009年 7月現在、8,000を超えるパッケージが用意されている。
GNOME 、KDE 、Apache HTTP Server やPerl 等をインストールするには、適切なディレクトリに移動して"make install"とタイプするだけである。こうすると、ソースの取り寄せ、展開、configure、構築や、後で削除可能な形でのパッケージのインストールを自動的に行ってくれる。このようなコンパイルを行うかわりに、あらかじめ構築されたバイナリパッケージを使うこともできる。どちらを使うにせよ、事前準備や依存するパッケージのインストールは、パッケージシステムによりすべて自動で行われ、手動での調整は必要ない。
移植性の教義に従い、NetBSD Packages Collection (pkgsrc)は、Linux 、FreeBSD、OpenBSD、Solaris 、Darwin /macOS 、IRIX 、Interix (Windows Services for UNIX) など、NetBSD以外の多くのオペレーティングシステムに移植されている。
DragonFly BSD では標準のパッケージシステムをpkgsrcに変更した。
Lumina
BSD (BSDの子孫 )向けに開発された軽量デスクトップ環境 で、NetBSDでも利用可能。
使用例
NetBSDはNASA による国際宇宙ステーション の微小重力を調査するプロジェクトで使用され、また人工衛星 ネットワークにおけるTCP の利用に関する研究にも使用された
NetBSD のきれいな設計、高い性能とスケーラビリティ、幅広いアーキテクチャのサポートは組み込み機器やサーバー、特にネットワークや工業用途に適している。
商用のリアルタイムオペレーティングシステム QNX は、NetBSDのコードから派生したネットワークスタックを使用しており[ 10] 、デバイスドライバも NetBSD から多数ポートされている[ 11] 。
フォーステンネットワークス はNetBSDを高スケーラビリティのルーターで用いられるFTOS(Force10 Operating System)の基盤OSとして使用している[ 12] 。フォーステンはまた2007年、NetBSD財団の更なる発展とオープンな開発コミュニティを助けるため寄付を行っている[ 13] 。
Wasabi Systems は、組み込みのサーバーやストレージ機器への応用に焦点を置いてNetBSDに商用のエンタープライズ向けの機能拡張を行ったWasabi Certified BSDを提供している[ 14] 。
NetBSDはNASA による国際宇宙ステーション の微小重力を調査するプロジェクトで使用され、また人工衛星 ネットワークにおけるTCP の利用に関する研究にも使用された[ 15] 。
2004年には、SUNET がNetBSDを用いてInternet2 の地上における最高速記録を樹立している。このときNetBSDが選定された理由は「TCPコードのスケーラビリティ」である[ 16] 。
T-Mobile Sidekick LX 2009スマートフォン のオペレーティングシステムはNetBSDを元にしたものである[ 17] 。
インターネットイニシアティブ (IIJ)が自社開発するルータ「SEIL 」シリーズは、2000年 の「SEIL T1」以降NetBSDをベースOSに採用している[ 18] 。
脚注
関連項目
外部リンク