Jim Paradis のおかげで、Linux/x86 のバイナリを Alpha 上で動かすことが できるようになりました。 em86 エミュレータは、Digital が Windows NT 用に 開発した FX!32 エミュレータとバイナリ・トランスレータ をベースにしています (残念ながら、バイナリ・トランスレータは Linux では利用できません)。
このエミュレータは現在のところベータ版としての位置づけですが、
Netscape や Applix などのアプリケーションがちゃんと動きます。いまのところ、
UDB では em86 を動かすには遅すぎるでしょう(もちろん忍耐力にもよります)。
でも、300MHz の 21164 であれば、十分に速く動作します(スピードの遅さに
我慢ができなくて、かつ Digital Unix のライセンスを持っているのであれば、
次章をご覧ください)。
将来のバージョンでは、現在のようにエミュレータで利用するために
x86 のライブラリをロードするのではなく、シェアードライブラリのコールを
Alpha のライブラリに直接変換する機能が付け加えられるでしょう。これにより、
スピードが速くなるだけでなく、余分なディスクスペースが不要になります。
詳細は em86 の ftp ディレクトリをご覧ください。README には、em86 を インストールするために必要な全ての情報が書かれています。2.0.30 の カーネル用に、 alpha-patches ディレクトリに em86 のためのパッチがあります。
em86 で動かすことができるアプリケーションです。
アプリケーションでの注意点
EM86 はいろんな状況下で xtetris などの小さなプログラムによってテ
ストされてきました。さらに、安定度はまちまちですが、主要な 3 つ
のパッケージが、EM86 で動作することが確認されています。
________________________________________________________________
アプリケーション______注意点____________________________________
Netscape Navigator インストール方法に書かれている通りに
Gold 3.01 Netscape Navigator Gold をインストールしま
す。
_____________ 警告 _______________
どんな場合でも、Java や JavaScript を有効
にしないでください。もし有効にすると、ブラ
ウザがクラッシュするでしょう。これは
Linux/x86 でも起きる問題なのですが、状況は
全く改善していません。私たちも現在この問題
を調査中です。
__________________________________
コマンドラインから ping は通っているのに、
Netscape がインターネットのホストを見つけ
られない場合、 /etc/nsswitch.conf というフ
ァイルを作成してください。
Adobe Acrobat Reader インストール方法に書かれているとおりにイン
3.0 ストールしてください。カーネルに
em86-patch が当たっていれば、アプリケーシ
ョンが普通に動作します。そうでなければ、
次のスクリプトのなかで EM86 から acroread
を呼び出すように修正します。
/usr/local/Acrobat3/bin/acroread
Applixware 4.2 Applixware は rpm を使ってインストールを
行うので、アーキテクチャ・チェックを無視
するようにします(rpm はデフォルトでは異
なるアーキテクチャのバイナリはインストー
ルできないようになっています)。方法は、
CD からインストール・スクリプトをハードデ
ィスクなどにコピーし、そのスクリプトの
rpm コマンドに "-ignorearch" を加えます。
Applixware には他のバイナリを呼び出すもの
もあるので、必ずカーネルに em86-patch
を当ててください。また、Applixware はスタ
ックを非常に多く使うため、カーネルに
traparg パッチも当てなければなりません。
em86 でできないことです。
制限
EM86 での制限事項は以下の通りです。
o EM86 は、ユーザモードのプログラムだけをエミュレートします。
o EM86 は、仮想メモリ・アドレス 78000000 を越えるプログラムは
動作しません。
o EM86 は現在、以下のシステムコールはサポートしません(将来も
サポートされないでしょう):setup、break、ptrace、stty、
gtty、prof、acct、phys、lock、mpx、ulimit、profil、ioperm、
iopl、idle、mx86、modify-Ldt、create_module、init_module、
delete_module、get_kernel_syms、bdflush、afs_syscall、
sysctl
o EM86 0.9.1 は以下のシステムコールはサポートしませんが、いず
れサポートされる予定です:mount、umount、uselib
old_readdir、sysinfo、ipc sigreturn、clone、adjtimex、
quotactl、sysfs、flock、msync、mlock、munlock、mlockall、
munlockall、sched_setparam、sched_getparam
sched_setscheduler、sched_getscheduler、sched_yield、
sched_get_priority_max、sched_get_priority_min、
sched_rr_get_interval、nanosleep、mremap
Alpha が Intel の CPU のように振る舞って、CPU サイクルを独占されるのを 避けたい場合は、次章で説明する他のアプリケーション動作方法をご覧ください。