[go: up one dir, main page]

NetBSD

オープンソースなUnixライクオペレーティングシステム

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

NetBSD
開発者 The NetBSD Foundation
OSの系統 BSD
開発状況 開発中
ソースモデル オープンソース
最新安定版 10.0 - 2024年5月28日 (5か月前) (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ユーザーグループ
テンプレートを表示

互換性の乏しい商用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カード向けに書かれたドライバは、80386AlphaPowerPCSPARCなどPCI バスを備えたアーキテクチャであればどれでも使うことができる。それ以外にも、PCI ExpressUSB等も同様にアーキテクチャに関係なく実装される。この機種独立性が、組み込みシステムでの開発に大きく寄与している。コンパイラアセンブラリンカその他の、クロスコンパイルに完全対応したツールチェーン一式を持つ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 activations1: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を超えるパッケージが用意されている。

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

移植性の教義に従い、NetBSD Packages Collection (pkgsrc)は、Linux、FreeBSD、OpenBSD、SolarisDarwin/macOSIRIXInterix (Windows Services for UNIX) など、NetBSD以外の多くのオペレーティングシステムに移植されている。

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

Lumina

編集

BSDBSDの子孫)向けに開発された軽量デスクトップ環境で、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]

脚注

編集
  1. ^ Announcing NetBSD 10.0 (Mar 28, 2024)”. The NetBSD Foundation (2024年5月28日). 2024年7月28日閲覧。
  2. ^ *BSD Usage Statistics”. 2021年11月24日閲覧。
  3. ^ 2005 BSD Usage Survey Report”. 2021年11月24日閲覧。
  4. ^ NetBSDの将来”. 2021年11月24日閲覧。
  5. ^ GLYN MOODY 著、小山祐司監訳『ソースコードの反逆』株式会社アスキー、2002年6月11日、103頁。ISBN 4-7561-4100-5 
  6. ^ NetBSD 2.0 release notes”. 2009年7月25日閲覧。
  7. ^ Significant changes from NetBSD 4.0 to 5.0”. 2009年7月25日閲覧。
  8. ^ Re: NetBSD 5.1.1 released and no announcement?”. 2012年2月11日閲覧。
  9. ^ NetBSD/hpcarm News”. 2020年9月29日閲覧。
  10. ^ Core Networking 6.4: Neutrino's Next Gen Networking Stack and Foundry27”. 2009年7月25日閲覧。
  11. ^ Foundry27: Project Networking - Driver wiki page”. 2009年7月25日閲覧。
  12. ^ "Force10 Networks uses NetBSD to build software scalability into operating system" (Press release).
  13. ^ "Force10 Networks introduces unified operating system across product portfolio to lower total cost of owning and operating networks" (Press release).
  14. ^ Wasabi Certified BSD”. 2009年7月25日閲覧。
  15. ^ HTTP Page Transfer Rates over Geo-Stationary Satellite Links”. 2009年7月25日閲覧。
  16. ^ SUNET Internet2 Land Speed Record: 69.073 Pbmps”. 2009年7月25日閲覧。
  17. ^ Sidekick LX 2009 / Blade Will Run NetBSD”. www.hiptop3.com (2009年1月30日). 2009年2月5日閲覧。
  18. ^ SEILシリーズの歩み

関連項目

編集

外部リンク

編集