エミュレートされたハードウェア上で NetBSD を動かす
エミュレーター上の NetBSD について
ソフトウェアエミュレーター
エミュレーター上の NetBSD について
はじめに (トップ)
組み込みアプリケーションの開発や、 何らかの理由で現物が使えないハードウェアプラットフォーム上でソフトウェアのデモやテストをしたい場合、 どうしてもソフトウェアエミュレーターが必要となります。 エミュレーターは、時には一台のマシンでコンピューターネットワーク全体を動かすことさえできる、 究極の手段にもなります。そして、古き良き時代の PDP や VAX といった化石マシンがどのように動いていたかを (単なる興味から) 見てみたいという目的もあるでしょう。
この文書では、 NetBSD オペレーティングシステムを動作させるという観点で、 各種ハードウェアの相当品を紹介します。
エミュレーター上での NetBSD のセットアップ方法は? (トップ)
この質問への回答は、どのエミュレーターを使うかによって大きく異なります。 NetBSD をはじめとするゲスト OS をセットアップするために必要な情報は、 ほとんどの場合、エミュレーターの web サイトにすべて載っています。 詳細は、the section called “ソフトウェアエミュレーター” をご覧ください。
NetBSD ポートとエミュレーターの対応一覧表 (トップ)
以下の表中、Yes
は、最新の NetBSD リリース版
(またはカッコ内で記されているバージョン) に完全対応しているもの。
Untested
は、
当該プラットフォームで NetBSD が使えるはずのもの (ただし未確認)。
Almost
は、テスト中に若干の問題があったもの。
詳細は脚注をご覧ください。
ポート \ エミュレーター | bochs | gxemul | pearpc | qemu | simh | simics | ski | tme |
---|---|---|---|---|---|---|---|---|
algor | Yes | |||||||
amd64 | Untested | Yes | Yes | |||||
arc | Yes | Almost[a] | ||||||
cats | Yes | |||||||
cobalt | Yes | |||||||
dreamcast | Yes[b] | |||||||
evbarm | Yes[c] | |||||||
evbmips | Yes[d] | |||||||
hpcmips | Yes | |||||||
i386 | Yes | Yes | ||||||
ia64 | Experimental[e] | |||||||
landisk | Yes | |||||||
macppc | Yes | Almost[f] | Untested | |||||
netwinder | Yes | |||||||
pmax | Yes | |||||||
pmppc | Yes | |||||||
prep | Yes[g] | Untested | ||||||
sgimips | Yes | |||||||
sparc | Yes | Yes | ||||||
sparc64 | Yes | |||||||
sun2 | Yes | |||||||
sun3 | Yes | |||||||
vax | Yes | |||||||
[a] qemu 上の NetBSD/arc 5.0.2 は、 SCSI ディスク負荷が高くなると panic します。 [b] Ram ディスクカーネルまたはライブ CD が必要です。ルートファイルシステムを NFS にすることは、まだできません。 [c] 動作するバージョンは NetBSD 2.1 が最後のものです。 GXemul の ARM エミュレーションに問題があるためです。 [d] gxemul は Malta をエミュレートします。 [e] このエミュレーターは、NetBSD/ia64 ポートの開発用プラットフォームとして使われています。 [f] ブート中にクラッシュします。 [g] 動作するバージョンは NetBSD 2.1 が最後です。NetBSD 3.x は、 ディスクコントローラーの問題で動作しません。 |
ソフトウェアエミュレーター
Bochs (トップ)
bochs プログラムは、C++ で書かれた移植性の高いオープンソースx86 PC エミュレーターです。ほとんどの普及しているプラットフォーム上で動きます。 bochs は、Intel x86 CPU、標準的な IO デバイス、 専用の BIOS のエミュレーションをおこないます。現在、bochs は、 386, 486, Pentium, Pentium PRO, AMD64 CPU をエミュレートするようコンパイルすることができます。
emulators/bochs
でパッケージ化されています。
GXemul (トップ)
GXemul はマシンエミュレーターです。このエミュレーターの当初の目標は、 マイクロカーネルでマルチプロセッサーの実験をするための簡素な 64 ビット MIPS エミュレーターでしたが、 それ以外にもいろいろな使い方をすることができます。 シミュレーターのなかには CPU をシミュレートするだけのものもありますが、 GXemul は CPU 以外のハードウェアコンポーネントもシミュレートするので、 NetBSD, OpenBSD, Linux などのオペレーティングシステムに変更を加えることなく、 エミュレーターで実行することができます。
emulators/gxemul
でパッケージ化されています。
QEMU (トップ)
QEMU は、エミュレート速度向上のために動的変換を使った、 高速(!)なプロセッサーエミュレーターです。 QEMU には以下の 2 種類の操作モードがあります。
- フルエミュレーションモード。 このモードでは、QEMU はプロセッサーと各種周辺機器を含んだ完全なシステム (たとえば PC) をエミュレートします。これを使って、 PC をリブートすることなく複数のオペレーティングシステムを起動したり、 システムコードをデバッグしたりすることができます。
- ユーザーモードエミュレーション (Linux ホスト専用)。 このモードでは、QEMU は、ある CPU 用にコンパイルされた Linux プロセスを、 異なる CPU 上で動作させることができます。これを使って、 Wine Windows API エミュレーターを動作させたり、 クロスコンパイルやクロスデバッグをより簡単におこなったりすることができます。
emulators/qemu
でパッケージ化されています。
PearPC (トップ)
PearPC は、アーキテクチャー独立の PowerPC プラットフォームエミュレーターで、 ほとんどの PowerPC オペレーティングシステムを動作させることができます。
emulators/pearpc
でパッケージ化されています。
SIMH (トップ)
SIMH は、Bob Supnik による、 altair altairz80 eclipse gri h316 hp2100 i1401 i1620 ibm1130 id16 id32 nova pdp1 pdp10 pdp11 pdp15 pdp4 pdp7 pdp8 pdp9 s3 sds vax をはじめとする歴史的コンピューターのシミュレーターです。 simh 上での NetBSD/vax のインストール方法の説明は、 NetBSD SIMH HOW-TO をご覧ください。
emulators/simh
でパッケージ化されています。
Ski (トップ)
Ski は HP のプロプラエタリな IA-64 (Itanium Processor Family, IPF) 命令セットシミュレーターであり、 おもに、アプリケーションおよびカーネルレベルのソフトウェア開発に使うためのものです。
emulators/ski
でパッケージ化されています。
The Machine Emulator (トップ)
The Machine Emulator (tme) は、 コンピューターエミュレーション用の汎用的な枠組みを提供するプログラムです。 tme が最初にエミュレートしたマシンは、 Sun ワークステーションのなかでも最初に広く普及したもののひとつである Sun 2/120 です。 現在では、 Sun 3/150 や SPARCstation 2 などにも対応しています。なお、arthur による ILVSUN3 ページには、 TME に関する、 各種の有用な情報があります。
emulators/tme
でパッケージ化されています。
Virtutech Simics simulator (トップ)
デスクトップ以外のシステム向けにコードを書いているソフトウェア開発者は、 ある問題にしばしば直面します: コードをテストしたりデバッグしたりする際、 何の上で動かすのか? Simics Developer を使えば、 あらゆる電子システムを、開発者のデスクトップマシン上で動かすことができます。 小規模な組み込みシステムも、百万ドル級のエンタープライズサーバーも、 複雑にクラスター化されたマルチプロセッサーシステムもです。
商用製品です。