NetBSD
NetBSD(ネットビーエスディー)は、UNIXライクなオープンソースのオペレーティングシステムである。FreeBSDやOpenBSDと同じくBSDの子孫の1つである。近代的なオープンソースBSDとしては最も古く、1993年5月に最初の公式リリースである0.8が公開された。
目次
特徴
NetBSDは、幅広いアーキテクチャに対して移植されている。このことは、NetBSDの標語である "Of course it runs NetBSD." にも表れている。単一のソースツリーから、58以上のアーキテクチャに対してバイナリが構築可能である。ソースツリーは機種依存部分と機種独立部分を可能な限り分離するように構成されている。これにより、機種独立部分に追加された機能は、全てのアーキテクチャで利用可能となり、再移植が不要である。ドライバの開発も機種独立である。あるPCIカード向けに書かれたドライバは、80386、Alpha、PowerPC、SPARCなどPCI バスを備えたアーキテクチャであればどれでも使うことができる。それ以外にも、PCI ExpressやUSB等も同様にアーキテクチャに関係なく実装される。この機種独立性が、組み込みシステムでの開発に大きく寄与している。コンパイラ、アセンブラ、リンカその他の、クロスコンパイルに完全対応したツールチェーン一式を持つNetBSD 1.6以降では、特に顕著である。
"NETBSD"は、2004年4月20日をもって、The NetBSD Foundationの登録商標となっている。
歴史
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パッケージコレクションが導入された。
対称マルチプロセッシング
NetBSDは対称型マルチプロセッシング(SMP)を2004年リリースのNetBSD 2.0よりサポートしており[1]、初期の実装はジャイアントロックを用いた方法であった。NetBSD 5のリリースに向けた開発サイクルで、SMPのサポートを改善する主要な作業が完了した。カーネルサブシステムの大半の部分がマルチプロセッサでも安全になり、細粒度のロックを用いるよう修正された。新しい同期機構が導入され、2007年2月にScheduler activationsが1:1スレッドモデルに置き換えられた[2]。スケーラブルなM2スレッドスケジューラが実装されたが、4.4 BSDのスケジューラがデフォルトで使用されている(これもSMPでスケールするよう変更された)。同期化の性能を向上させるため、スレッド化された割り込みが実装された。仮想メモリシステム、メモリ割り当て、例外ハンドリングがマルチプロセッサでも安全になり、仮想ファイルシステムおよび主要なファイルシステムを含むファイルシステムフレームワークもマルチプロセッサ対応になった。2008年4月以降、ジャイアントロックで動作しているのはネットワークプロトコルと大半のデバイスドライバのみとなっている。
バージョンについて
最新のバージョン
2014年4月12日現在、NetBSD の最新リリース版は6.1.4である。
これまでのリリース
- 2014年
- 4月12日 - NetBSD 6.1.4
- 4月12日 - NetBSD 6.0.5
- 1月27日 - NetBSD 6.1.3
- 1月27日 - NetBSD 6.0.4
- 1月27日 - NetBSD 5.2.2
- 1月27日 - NetBSD 5.1.4
- 2013年
- 9月30日 - NetBSD 6.1.2
- 9月30日 - NetBSD 6.0.3
- 8月22日 - NetBSD 6.1.1
- 5月18日 - NetBSD 6.1
- 5月18日 - NetBSD 6.0.2
- 2012年
- 12月26日 - NetBSD 6.0.1
- 12月3日 - NetBSD 5.2
- 10月17日 - NetBSD 6.0
- 2月11日 - NetBSD 5.1.2 (5.1.1はリリースされなかった。[3])
- 2010年
- 11月19日 - NetBSD 5.1
- 2月12日 - NetBSD 5.0.2
- 2009年
- 8月2日 - NetBSD 5.0.1
- 4月29日 - NetBSD 5.0
- 2008年
- 10月14日 - NetBSD 4.0.1
- 2007年
- 12月19日 - NetBSD 4.0
- 2006年
- 11月4日 - NetBSD 3.1
- 11月4日 - NetBSD 3.0.2
- 7月24日 - NetBSD 3.0.1
- 2005年
- 12月23日 - NetBSD 3.0
- 11月2日 - NetBSD 2.1
- 10月31日 - NetBSD 2.0.3
- 4月14日 - NetBSD 2.0.2 (2.0.1はサーバトラブルのためリリースされなかった。)
- 2004年
- 12月9日 - NetBSD 2.0
- 3月1日 - NetBSD 1.6.2
- 2003年
- 4月21日 - NetBSD 1.6.1
- 2002年
- 9月14日 - NetBSD 1.6
- 7月22日 - NetBSD 1.5.3
- 2001年
- 9月13日 - NetBSD 1.5.2
- 7月11日 - NetBSD 1.5.1
- 2000年
- 12月6日 - NetBSD 1.5
- 11月25日 - NetBSD 1.4.3
- 3月19日 - NetBSD 1.4.2
- 1999年
- 8月26日 - NetBSD 1.4.1
- 5月12日 - NetBSD 1.4
- 1998年
- 12月23日 - NetBSD 1.3.3
- 5月29日 - NetBSD 1.3.2
- 3月9日 - NetBSD 1.3.1
- 1月4日 - NetBSD 1.3
- 1997年
- 5月20日 - NetBSD 1.2.1
- 1996年
- 10月4日 - NetBSD 1.2
- 1995年
- 11月26日 - NetBSD 1.1
- 1994年
- 10月26日 - NetBSD 1.0
- 1993年
- 8月23日 - NetBSD 0.9
- 4月20日 - NetBSD 0.8
対応機種
ポート
- acorn26
- acorn32
- algor
- alpha
- amd64
- amiga
- amigappc
- arc
- atari
- bebox
- cats
- cesfic
- cobalt
- dreamcast
- emips
- epoc32
- evbarm
- evbmips
- evbppc
- evbsh3
- ews4800mips
- hp300
- hp700
- hpcarm
- 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/Mac OS X、IRIX、Interix(Windows Services for UNIX)など、NetBSD以外の多くのオペレーティングシステムに移植されている。
DragonFly BSDでは標準のパッケージシステムをpkgsrcに変更した。
使用例
NetBSD のきれいな設計、高い性能とスケーラビリティ、幅広いアーキテクチャのサポートは組み込み機器やサーバー、特にネットワークや工業用途に適している。
商用のリアルタイムオペレーティングシステムQNXは、NetBSDのコードから派生したネットワークスタックを使用しており[4]、デバイスドライバも NetBSD から多数ポートされている[5]。
フォーステンネットワークスはNetBSDを高スケーラビリティのルーターで用いられるFTOS(Force10 Operating System)の基盤OSとして使用している[6]。フォーステンはまた2007年、NetBSD財団の更なる発展とオープンな開発コミュニティを助けるため寄付を行っている[7]。
Wasabi Systemsは、組み込みのサーバーやストレージ機器への応用に焦点を置いてNetBSDに商用のエンタープライズ向けの機能拡張を行ったWasabi Certified BSDを提供している[8]。
NetBSDはNASAによる国際宇宙ステーションの微小重力を調査するプロジェクトで使用され、また人工衛星ネットワークにおけるTCPの利用に関する研究にも使用された[9]。
2004年には、SUNETがNetBSDを用いてInternet2の地上における最高速記録を樹立している。このときNetBSDが選定された理由は「TCPコードのスケーラビリティ」である[10]。
T-Mobile Sidekick LX 2009スマートフォンのオペレーティングシステムはNetBSDを元にしたものである[11]。