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

NetBSD
NetBSD textlogo.svg
Netbsd-unam.jpg
"WindowMaker環境でのNetBSD"
開発者 The NetBSD Foundation
OSの系統 BSD
開発状況 開発中
ソースモデル オープンソース
最新安定版 9.1 - 2020年10月18日 (6か月前) (2020-10-18)[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のソースコードは誰でも利用でき、そのライセンスはパーミッシブ・ライセンスである。なお「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に[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 activations1: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
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はリリースされなかった[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を超えるパッケージが用意されている。

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

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

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

使用例編集

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

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]

脚注編集

  1. ^ Announcing NetBSD 9.1”. The NetBSD Foundation (2020年10月18日). 2020年10月21日閲覧。
  2. ^ GLYN MOODY 著、小山祐司監訳『ソースコードの反逆』株式会社アスキー、2002年6月11日、103頁。ISBN 4-7561-4100-5
  3. ^ NetBSD 2.0 release notes”. 2009年7月25日閲覧。
  4. ^ Significant changes from NetBSD 4.0 to 5.0”. 2009年7月25日閲覧。
  5. ^ Re: NetBSD 5.1.1 released and no announcement?”. 2012年2月11日閲覧。
  6. ^ NetBSD/hpcarm News”. 2020年9月29日閲覧。
  7. ^ Core Networking 6.4: Neutrino's Next Gen Networking Stack and Foundry27”. 2009年7月25日閲覧。
  8. ^ Foundry27: Project Networking - Driver wiki page”. 2009年7月25日閲覧。
  9. ^ “Force10 Networks uses NetBSD to build software scalability into operating system” (プレスリリース), http://www.force10networks.com/news/pressreleases/2007/pr-2007-02-13.asp 
  10. ^ “Force10 Networks introduces unified operating system across product portfolio to lower total cost of owning and operating networks” (プレスリリース), http://www.force10networks.com/news/pressreleases/2008/pr-2008-01-28b.asp 
  11. ^ Wasabi Certified BSD”. 2009年7月25日閲覧。
  12. ^ HTTP Page Transfer Rates over Geo-Stationary Satellite Links”. 2009年7月25日閲覧。
  13. ^ SUNET Internet2 Land Speed Record: 69.073 Pbmps”. 2009年7月25日閲覧。
  14. ^ Sidekick LX 2009 / Blade Will Run NetBSD”. www.hiptop3.com (2009年1月30日). 2009年2月5日閲覧。

関連項目編集

外部リンク編集