NetBSD
"WindowMaker環境でのNetBSD" | |
開発者 | The NetBSD Foundation |
---|---|
OSの系統 | BSD |
開発状況 | 開発中 |
ソースモデル | オープンソース |
最新安定版 | 10.0 - 2024年5月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が公開された。さまざまなアーキテクチャへの高い移植性、コードの分かりやすさ、などに焦点が置かれて開発されている。→#特徴
NetBSDのソースコードは誰でも利用でき、そのライセンスはパーミッシブ・ライセンスである。なお「NETBSD」という名称のほうは、2004年4月20日をもってThe NetBSD Foundationの登録商標となっている。
特徴
- 移植性の高さ
NetBSDは"Of course it runs 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に[2]バージョン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よりサポートしており[3]、初期の実装はジャイアントロックを用いた方法であった。NetBSD 5のリリースに向けた開発サイクルで、SMPのサポートを改善する主要な作業が完了した。カーネルサブシステムの大半の部分がマルチプロセッサでも安全になり、細粒度のロックを用いるよう修正された。新しい同期機構が導入され、2007年2月にScheduler activationsが1:1スレッドモデルに置き換えられた[4]。スケーラブルなM2スレッドスケジューラが実装されたが、4.4 BSDのスケジューラがデフォルトで使用されている(これもSMPでスケールするよう変更された)。同期化の性能を向上させるため、スレッド化された割り込みが実装された。仮想メモリシステム、メモリ割り当て、例外ハンドリングがマルチプロセッサでも安全になり、仮想ファイルシステムおよび主要なファイルシステムを含むファイルシステムフレームワークもマルチプロセッサ対応になった。2008年4月以降、ジャイアントロックで動作しているのはネットワークプロトコルと大半のデバイスドライバのみとなっている。
バージョンについて
最新のバージョン
2020年10月18日現在、NetBSD の最新リリース版は9.1である。
これまでのリリース
- 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
- 12月6日 - 1.5
- 11月25日 - 1.4.3
- 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はリリースされなかった[5]。)
- 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
対応機種
ポート
- 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]など[6]
- 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に変更した。
使用例
NetBSD のきれいな設計、高い性能とスケーラビリティ、幅広いアーキテクチャのサポートは組み込み機器やサーバー、特にネットワークや工業用途に適している。
商用のリアルタイムオペレーティングシステムQNXは、NetBSDのコードから派生したネットワークスタックを使用しており[7]、デバイスドライバも NetBSD から多数ポートされている[8]。
フォーステンネットワークスはNetBSDを高スケーラビリティのルーターで用いられるFTOS(Force10 Operating System)の基盤OSとして使用している[9]。フォーステンはまた2007年、NetBSD財団の更なる発展とオープンな開発コミュニティを助けるため寄付を行っている[10]。
Wasabi Systemsは、組み込みのサーバーやストレージ機器への応用に焦点を置いてNetBSDに商用のエンタープライズ向けの機能拡張を行ったWasabi Certified BSDを提供している[11]。
NetBSDはNASAによる国際宇宙ステーションの微小重力を調査するプロジェクトで使用され、また人工衛星ネットワークにおけるTCPの利用に関する研究にも使用された[12]。
2004年には、SUNETがNetBSDを用いてInternet2の地上における最高速記録を樹立している。このときNetBSDが選定された理由は「TCPコードのスケーラビリティ」である[13]。
T-Mobile Sidekick LX 2009スマートフォンのオペレーティングシステムはNetBSDを元にしたものである[14]。
脚注
- ^ “Announcing NetBSD 10.0 (Mar 28, 2024)”. The NetBSD Foundation (2024年5月28日). 2024年7月28日閲覧。
- ^ GLYN MOODY 著、小山祐司監訳『ソースコードの反逆』株式会社アスキー、2002年6月11日、103頁。ISBN 4-7561-4100-5。
- ^ “NetBSD 2.0 release notes”. 2009年7月25日閲覧。
- ^ “Significant changes from NetBSD 4.0 to 5.0”. 2009年7月25日閲覧。
- ^ “Re: NetBSD 5.1.1 released and no announcement?”. 2012年2月11日閲覧。
- ^ “NetBSD/hpcarm News”. 2020年9月29日閲覧。
- ^ “Core Networking 6.4: Neutrino's Next Gen Networking Stack and Foundry27”. 2009年7月25日閲覧。
- ^ “Foundry27: Project Networking - Driver wiki page”. 2009年7月25日閲覧。
- ^ "Force10 Networks uses NetBSD to build software scalability into operating system" (Press release).
- ^ "Force10 Networks introduces unified operating system across product portfolio to lower total cost of owning and operating networks" (Press release).
- ^ “Wasabi Certified BSD”. 2009年7月25日閲覧。
- ^ “HTTP Page Transfer Rates over Geo-Stationary Satellite Links”. 2009年7月25日閲覧。
- ^ “SUNET Internet2 Land Speed Record: 69.073 Pbmps”. 2009年7月25日閲覧。
- ^ “Sidekick LX 2009 / Blade Will Run NetBSD”. www.hiptop3.com (2009年1月30日). 2009年2月5日閲覧。
関連項目
外部リンク
- 公式ウェブサイト
- 日本NetBSDユーザーグループ (Japan NetBSD Users' Group, JNUG)