NetBSD










































NetBSD

Netbsd-unam.jpg
"WindowMaker環境でのNetBSD"

開発者
The NetBSD Foundation
OSの系統
BSD
開発状況
開発中
ソースモデル
オープンソース
最新安定版リリース
8.0 / 2018年7月17日[1]
カーネル種別
モノリシックカーネル
ライセンス
BSDライセンス
ウェブサイト
www.jp.netbsd.org
テンプレートを表示

NetBSD(ネットビーエスディー)は、UNIXライクなオープンソースのオペレーティングシステムである。FreeBSDやOpenBSDと同じくBSDの子孫の1つである。近代的なオープンソースBSDとしては最も古く、1993年5月に最初の公式リリースである0.8が公開された。




目次






  • 1 特徴


  • 2 歴史


  • 3 対称マルチプロセッシング


  • 4 バージョンについて


    • 4.1 最新のバージョン


    • 4.2 これまでのリリース




  • 5 対応機種


    • 5.1 ポート




  • 6 関連プロジェクト


    • 6.1 pkgsrc




  • 7 使用例


  • 8 関連項目


  • 9 外部リンク


  • 10 参考文献





特徴


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よりサポートしており[2]、初期の実装はジャイアントロックを用いた方法であった。NetBSD 5のリリースに向けた開発サイクルで、SMPのサポートを改善する主要な作業が完了した。カーネルサブシステムの大半の部分がマルチプロセッサでも安全になり、細粒度のロックを用いるよう修正された。新しい同期機構が導入され、2007年2月にScheduler activationsが1:1スレッドモデルに置き換えられた[3]。スケーラブルなM2スレッドスケジューラが実装されたが、4.4 BSDのスケジューラがデフォルトで使用されている(これもSMPでスケールするよう変更された)。同期化の性能を向上させるため、スレッド化された割り込みが実装された。仮想メモリシステム、メモリ割り当て、例外ハンドリングがマルチプロセッサでも安全になり、仮想ファイルシステムおよび主要なファイルシステムを含むファイルシステムフレームワークもマルチプロセッサ対応になった。2008年4月以降、ジャイアントロックで動作しているのはネットワークプロトコルと大半のデバイスドライバのみとなっている。



バージョンについて



最新のバージョン


2018年7月17日現在、NetBSD の最新リリース版は8.0である。



これまでのリリース


  • 2018年

    • 7月17日 - NetBSD 8.0

    • 3月15日 - NetBSD 7.1.2



  • 2017年

    • 12月22日 - NetBSD 7.1.1

    • 3月11日 - NetBSD 7.1



  • 2016年

    • 10月21日 - NetBSD 7.0.2

    • 5月28日 - NetBSD 7.0.1




  • 2015年
    • 9月25日 - NetBSD 7.0.0


  • 2014年

    • 11月15日 - NetBSD 5.1.5

    • 11月15日 - NetBSD 5.2.3

    • 9月22日 - NetBSD 6.1.5

    • 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はリリースされなかった。[4]



  • 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/macOS、IRIX、Interix (Windows Services for UNIX) など、NetBSD以外の多くのオペレーティングシステムに移植されている。


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



使用例




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


NetBSD のきれいな設計、高い性能とスケーラビリティ、幅広いアーキテクチャのサポートは組み込み機器やサーバー、特にネットワークや工業用途に適している。


商用のリアルタイムオペレーティングシステムQNXは、NetBSDのコードから派生したネットワークスタックを使用しており[5]、デバイスドライバも NetBSD から多数ポートされている[6]


フォーステンネットワークスはNetBSDを高スケーラビリティのルーターで用いられるFTOS(Force10 Operating System)の基盤OSとして使用している[7]。フォーステンはまた2007年、NetBSD財団の更なる発展とオープンな開発コミュニティを助けるため寄付を行っている[8]


Wasabi Systemsは、組み込みのサーバーやストレージ機器への応用に焦点を置いてNetBSDに商用のエンタープライズ向けの機能拡張を行ったWasabi Certified BSDを提供している[9]


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


2004年には、SUNETがNetBSDを用いてInternet2の地上における最高速記録を樹立している。このときNetBSDが選定された理由は「TCPコードのスケーラビリティ」である[11]


T-Mobile Sidekick LX 2009スマートフォンのオペレーティングシステムはNetBSDを元にしたものである[12]



関連項目







  • BSDの子孫

  • DragonFly BSD

  • FreeBSD

  • OpenBSD

  • macOS



外部リンク



  • オフィシャルページ

  • Japan NetBSD Users' Group


  • Jibbed LiveCD



参考文献





  1. ^ “NetBSD 8.0 released”. 2018年7月23日閲覧。


  2. ^ “NetBSD 2.0 release notes”. 2009年7月25日閲覧。


  3. ^ “Significant changes from NetBSD 4.0 to 5.0”. 2009年7月25日閲覧。


  4. ^ “Re: NetBSD 5.1.1 released and no announcement?”. 2012年2月11日閲覧。


  5. ^ “Core Networking 6.4: Neutrino's Next Gen Networking Stack and Foundry27”. 2009年7月25日閲覧。


  6. ^ “Foundry27: Project Networking - Driver wiki page”. 2009年7月25日閲覧。


  7. ^ “Force10 Networks uses NetBSD to build software scalability into operating system” (プレスリリース), http://www.force10networks.com/news/pressreleases/2007/pr-2007-02-13.asp 


  8. ^ “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 


  9. ^ “Wasabi Certified BSD”. 2009年7月25日閲覧。


  10. ^ “HTTP Page Transfer Rates over Geo-Stationary Satellite Links”. 2009年7月25日閲覧。


  11. ^ “SUNET Internet2 Land Speed Record: 69.073 Pbmps”. 2009年7月25日閲覧。


  12. ^ “Sidekick LX 2009 / Blade Will Run NetBSD”. www.hiptop3.com (2009年1月30日). 2009年2月5日閲覧。







Popular posts from this blog

android studio warns about leanback feature tag usage required on manifest while using Unity exported app?

SQL update select statement

'app-layout' is not a known element: how to share Component with different Modules