エミュレートされたハードウェア上で NetBSD を動かす
エミュレーター上の NetBSD について
はじめに
組み込みアプリケーションの開発や、
何らかの理由で現物が使えないハードウェアプラットフォーム上でソフトウェアのデモやテストをしたい場合、
どうしてもソフトウェアエミュレーターが必要となります。
エミュレーターは、時には一台のマシンでコンピューターネットワーク全体を動かすことさえできる、
究極の手段にもなります。そして、古き良き時代の
PDP や VAX といった化石マシンがどのように動いていたかを
(単なる興味から) 見てみたいという目的もあるでしょう。
この文書では、
NetBSD オペレーティングシステムを動作させるという観点で、
各種ハードウェアの相当品を紹介します。
エミュレーター上での NetBSD のセットアップ方法は?
この質問への回答は、どのエミュレーターを使うかによって大きく異なります。
NetBSD をはじめとするゲスト OS をセットアップするために必要な情報は、
ほとんどの場合、エミュレーターの web サイトにすべて載っています。
詳細は、
をご覧ください。
NetBSD ポートとエミュレーターの対応一覧表
以下の表中、Yes は、最新の NetBSD リリース版
(またはカッコ内で記されているバージョン) に完全対応しているもの。
Untested は、
当該プラットフォームで NetBSD が使えるはずのもの (ただし未確認)。
Almost は、テスト中に若干の問題があったもの。
詳細は脚注をご覧ください。
ポート \ エミュレーター
algor
Yes
amd64
Untested
Yes
Yes
arc
Yes
Almost
qemu 上の NetBSD/arc 5.0.2 は、
SCSI ディスク負荷が高くなると panic します。
cats
Yes
cobalt
Yes
dreamcast
Yes
Ram ディスクカーネルまたはライブ CD が必要です。ルートファイルシステムを NFS
にすることは、まだできません。
evbarm
Yes
動作するバージョンは NetBSD 2.1 が最後のものです。
GXemul の ARM エミュレーションに問題があるためです。
evbmips
Yes
gxemul は Malta をエミュレートします。
hpcmips
Yes
i386
Yes
Yes
ia64
Experimental
このエミュレーターは、NetBSD/ia64
ポートの開発用プラットフォームとして使われています。
landisk
Yes
macppc
Yes
Almost
ブート中にクラッシュします。
Untested
netwinder
Yes
pmax
Yes
pmppc
Yes
prep
Yes
動作するバージョンは NetBSD 2.1 が最後です。NetBSD 3.x は、
ディスクコントローラーの問題で動作しません。
Untested
sgimips
Yes
sparc
Yes
Yes
sparc64
Yes
sun2
Yes
sun3
Yes
vax
Yes
ソフトウェアエミュレーター
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 を使えば、
あらゆる電子システムを、開発者のデスクトップマシン上で動かすことができます。
小規模な組み込みシステムも、百万ドル級のエンタープライズサーバーも、
複雑にクラスター化されたマルチプロセッサーシステムもです。
商用製品です。