レベル: 初級 Cameron Laird (Cameron@Lairds.com), Vice President, Phaseit, Inc.
2003年 6月 05日 Linux上では、さまざまなオペレーティング・システムのエミュレーションが利用可能になっています。アカデミックな教室の環境にとどまらず、これらの「ホストOS」は企業のサーバー環境においても現実的な投資となります。
Linux上で他のオペレーティング・システムのプログラムを実行すること (オペレーティング・システムのエミュレーション)は、Linuxの優れたメリットの一つですが、実はこれが皆さんの生活をかなり単純化させることができるのです。
今日、多くの企業で、メンテナンス費、管理費、さらに電気代といった諸経費の軽減のために、「サーバー統合」に多額の投資をしていますが、その多くは他のUNIXへと移行していっているのが現状のようです。
残念ながら、LinuxのホストOS(エミュレーション)機能の範囲の広さと質の高さ、特に、CP/M、RSX、OpenVMS、およびDOSのような古いOSのエミュレーションの質が非常に高いということは、余り知られていません。さらに、この機能がどれくらいサーバー環境の働きを増強できるかについても必ずしも理解されてはいないでしょう。
当然、このLinuxのエミュレーション機能の有用性を解説することは、サーバー・クリニックの使命のひとつでしょう。昨年、このコラムでは、広くは適用されないものの、Linux環境でうまく機能する様々なオートメーションに注目してきました。それらは、Fortranアプリケーション、PDF生成、Wordドキュメント管理、Windows実行環境の構築などでした。今月は、「マイナー」レガシーOSに携わっているものにとって、Linuxがどれだけ役立てるかを確かめることにします。
CP/Mの新しい人生
例えば、少数のCP/Mプログラムを実行する必要があると仮定します。20年前にすたれたOSを動作させる「必要」があるときは、どうすればよいのでしょうか?組み込みシステムを開発していると、そのような必要性が現実となるかもしれません。製品が少なくとも毎年更新されるような情報技術とは対照的に、多くの組み込みシステムは一度で数十年間静かに動作し続けることになります。
このことは、少なくとも2?3の開発上の問題を提起しており、システム・コンサルティング・エンジニアのRene Tschaggelar氏は以下のように要約しています。「組み込みシステムは10?20年間、おそらくそれ以上動作することを考えれば、誰かがそれぐらい長くシステムをサポートできなければならない」。これは誰かが実際にそれらを保守する必要があり、また、時々起きる緊急事態を処理するために、レガシー設備およびプログラムをバックルームのどこかに保管しておくことを意味しています。
このようなことは多くの場合、費用がかかり、好ましいことではありません。古いCP/Mが動作するS-100装置のパーツは入手困難です。8インチのディスク(それらは実際フロッピーでした)上にアーカイブで保管したものを誰かが偶然に捨ててしまったので、契約を履行することができないとは顧客に伝えられないです。これに対する重大な代替案は、Linuxマシーンのうちの1台に仮想のCP/Mホストを作ることです。このことは、管理しやすい手頃な価格の仮想のCPUをただ作ったわけではないことに気づいてください。つまり、インストールされたファイル・システムおよびハードウェアが機能することで、バージョン・コントロール、アーカイブ、リモートアクセスなどの機能を含む既に適所に配置された全てのインフラストラクチャーを備えたメンテナンス実行を一元管理できるようになるのです。
この状況下でエミュレーションが引き起こす危険性といえば、エミュレータは要求に対してオリジナルのハードウェアの振る舞いを忠実に再現しないことです。しかしながら、多くのユーザは、既存のエミュレータに対する満足感を報告しています。さらに、オープン・ソース・ソフトウェアとしては、あなたあるいはあなたのもとで働く専門家が必要とするすべての修正が行えるという十分な可能性をもっています。
では、CP/Mを動作させるにはどれくらい手間がかかるのでしょうか?決して多くはないです。多数の異なるエミュレータが利用可能であり、私の現在のお気に入りはAndreas Gerlich氏のYAZE 2.0です。これは簡単にインストールでき起動できるうえに、例外的なハードウェアや他の用件に適合できるようとても柔軟になっています。これを使うには、単純にダウンロードして(参考文献よりリンクを参照してください)、解凍し、次のコマンドを実行してください。
そして、次のコマンドで実行を開始します。
すると、次のように表示されることでしょう。
A>dir
A: CCP COM : CPM3 COM : CPM3-OK COM
A: 3ERASE COM : 3SETDEF COM : CMP COM
A: COMP COM : CRC COM : DED COM
A: DIFF COM : E COM : I COM
A: II COM : L80 COM : LC COM
A: MAKE COM : MERA COM : MMUPRINT COM
A: MOUNT COM : PAUSE COM : PIP COM
A: PMARC COM : PMEXT COM : S COM
A: SENDUUE COM : SUB COM : SUBMIT COM
A: SYS COM : TABS6 COM : TOUCH COM
A: UNARC COM : UNLOAD COM : Z80ASM COM
A: ZEXALL COM : ZEXDOC COM : ZSID COM
A: 0-README 1ST : CRCKLIST CRC : DISKS TXT
A: MAKE DOC : MOUNT Z80 : PROFILE SUB
A: SYS Z80 : TABS6 DOC : TEST SUB
A: TOUCH DOC : UNIXMAKE MAN : WWW TXT
A: YAZERC TXT : Z80ASM DOC |
デフォルトでYAZEは、GerlichがE.COM、HELP.COM、およびdirという最も基本的なコマンドをもつ(仮想の)Aドライブ上に配置されています。E.COMの実行がエミュレーション・セッションを解放する標準的な方法であることに注意してください。
したがって、古いデバイス・ドライバを再コンパイルする長年の意図があれば、あるいは個々の顧客に対する対応を完了させるために古い組み込みシステム開発キットを実行する必要があれば、それを遅らせる理由はありません。古いハードウェアを修理する必要もありません。ただ手軽なLinuxホストにYAZEをインストールして、その仮想マシーンに仕事をコピーして、プロジェクトを終了すればよいのです。
さらに、エミュレーションは、C64、MP/Mコンピュータ、CP/M-86コンピュータ、Sinclairs、Apple IIsなどの同じような年代物の他のコンピューターについても利用が可能です。
大きな古い鉄
OpenVMSは対照的に興味深い方向に向かっています。CP/MのようなマイクロコンピュータOSとほぼ同じ世代でありながら、OpenVMSはライセンスとテクノロジーにおいては完全に異なっています。OpenVMSはまだ販売中で利用可能であり、有力な重大製品のままです。つまり、OpenVMSは分散ファイル・システム、異種言語間のインターオペラビリティー、およびクラスタリングなどを長い間提供してきており、他の商用OSより進んでいました。
しかし、OpenVMSハードウェアは高価で、それ故生き残り続けることが多いです。組織が少数の「不可欠な」OpenVMSアプリケーションしか保持していない場合、何万米ドルまたはそれ以上を毎年の維持費として正当化するのは困難です。
そこで再び救いの手として登場するのがLinuxです。適切に装備されたLinuxサーバーは、年間たった数時間レガシー・ホストが動作し続けるより、はるかに適切なコストでOpenVMSの許可されたコピーでハードウェアをエミュレートすることができます。この選択肢はエミュレーション専門のCharon-VAXという商用製品さえ存在しているほど重要なものです。
SIMHプロジェクトの目的は、1130、Eclipse、Altair、Interdata 16b、などを含む多数の古いシステムの全範囲で同じようなことを行うことです。
エミュレーションの世界にはわずかにギャップがあります。OpenVMSのようにMPE/iXは、活気があり活動的なユーザ・コミュニティや、Linuxエミュレーションと非常に関係している「中間的な」OSです。それゆえMPE/iXにはエミュレータがありそうですが、ライセンス供与に関する詳細が解決された後の2004年または2005年までエミュレータは登場しないことでしょう。
エミュレータによる作業に関するもう1つの現実は、それらが包括的な方法でドキュメント化されていないということです。ウェブ上の適切なリンクの多くは一般に古くなってきてしまっています。さらに、エミュレータ作家の多くは、エミュレータを必要としなくなり、もはや創作をサポートすることができなくなっています。
それでもやはり、エミュレーティング・ホストの利点は多くのオペレーションにとっていまだに大きなものです。Linuxでは、ハードウェアの不足がソフトウェアの実行の邪魔になることはありません。
参考文献
- サーバークリニックの他の記事も参照してください。
- Cameron氏は「
page of personal notes on emulators
」の中でサーバークリニックのこの記事に関連する資料について言及しています。
- Z80のエミュレーションの中で最も保守されていた「ジャンプ・ページ」は、Thomas Scherrer氏のZ80-Family Official Support Pageの一部です。
-
YAZEはLinux上ですべてのCP/M 3.0を本質的に利用可能にする正確なZ80エミュレータです。
- YAZEの作者であるMichael Haardt氏はCP/Mファイル・システムにアクセスするcpmtoolsについても言及しています。
- VGA、フロッピー、あるいはオリジナル8086-クラスパソコンのEMSの厄介になっているのであれば、David Hedley氏のpcemuプロジェクトに興味をお持ちになるかもしれません。これは後にDavid Given氏およびMichael Hope氏によって更新されています。
- OpenVMSは買収以前の旧Digital Equipment Corporation(DEC)によって開発されたものなので、Linux用のOpenVMSエミュレーションに関して調べるのであればDEC Emulation Web siteから始めることをお勧めします。
-
CHARON-VAXはOpenVMSが最初に登場したVAXアーキテクチャーをエミュレートする製品です。
-
Linux for VAXはSourceForgeにてホストされたオープンソース・プロジェクトです。
- SIMHと略されているComputer History Simulation Projectは、アーキテクチャーの広範囲をカバーしています。
-
JOYCEのホームページによれば、「JOYCEは、UnixまたはWindows上でAmstrad PCWをエミュレートしています。」
- 「サーバーのRTF」および「サーバーでのPDF活用」などを含んだこれまでのサーバー・クリニックの記事では、多くのプログラマがとどこかにホストされているに違いないと思っているLinuxを使用して仕事を行う方法について説明しています。Cameron氏 は、さらに「Fortran、Linux環境でくつろぐ」において、Linuxがうまく解決している別のレガシー問題について議論しています。
- 「レトロ・コンピューティング」エミュレーションの限界を追求したい方は、field-programmable gate arrays (FGPA)ハードウェアの再構築によって他のコンピューターをエミュレートするC-ONE Reconfigurable Computerにてついて知識を深めておいてください。
- Linuxは他のOSをホストするのに適しているだけでなく、単一のメインフレーム上で多数の独立したLinuxインスタンスを実行することが可能なz/VMにとりわけホストされることもできます。このRedbookでは、S/390上でのLinuxの概観を説明しています。また、Linux on zSeries libraryでは、広範囲な参考文献リストを参照することができます。
- developerWorks のLinuxゾーンには、他にも Linux関係の記事が多数掲載されています。
著者について  | 
|  | Cameronは、Phaseit, Inc. の常勤のコンサルタントです。オープン・ソースなどの技術的なトピックについて、数々の執筆や発言を行っています。Cameronのメール・アドレスはclaird@phaseit.net です。 |
記事の評価
|