IBMのメインフレーム向け実験OSが源流の「CapROS」はディスクレスで動作するリアルタイムOS列伝(45)(2/3 ページ)

» 2024年04月09日 07時00分 公開
[大原雄介MONOist]

「KeyKOS」から「EROS」へ

 まぁKeyKOSになったからといって、別に何かが変わった訳ではない。ターゲットは引き続きSystem/370であり、1986年には最初の顧客を獲得、1987年にはKeyKOSで動作する最初の商用トランザクションアプリケーションがリリースされている。

 さらに、KeyKOSの上でCP(Control Program)のシミュレーターも動作し、このシミュレーター上でCMS/SP Release 4をゲストとして動作させることも可能となっていた。KeyKOSは1987年の予備調査で、NSA(米国家安全保障局)が1985年に定めた“DoD Trusted Computer System Evaluation Criteria”、通称オレンジブックのBレベルとしての評価に適した候補だ、という結論が出ており、これはSystem/370上でMVS(Multiple Virtual Storage)やVM(仮想マシン)などを直接動かすよりもセキュリティの面で優れているというものである。こうした用途向けにKeyKOSが選ばれたわけだ。

 1988年からKey LogicはKeyKOSをあらためてCで書き直し始める。この結果としてKeyKOSはまずARIXの68020ベースのシステム上で稼働を開始し、1990年10月にはオムロンのワークステーションであるLuna/88K上にも移植が完了した。またPOSIX APIへの対応やKeyKOS上で動作するUNIXの「KeyNIX」なども1990年までに完了している。このKeyNIXと、オムロンが提供したMACH 2.5の性能比較が論文に示されており、表1の様な結果になっている。遅い処理と早い処理が混じっていて微妙ではあるのだが、open()/close()などは遅い半面、fork()/exec()などは大幅に高速なのが面白い。

比較項目 繰り返し数 KeyNIX MACH 2.5 性能比
getpid(); 10,000 12,000/sec 30,000/sec 0.4
open();close(); 1,000 714/sec 2777/sec 0.26
fork();exit(); 100 64/sec 10/sec 6.4
exec(); 100 151/sec 12/sec 11.6
sbrk(4096);sbrk(-4096) 100 2564/sec 181/sec 14
Pipe (round trip) 1 0.588MB/sec 1.05MB/sec 0.56
Disk access program 1 4sec 26sec 6.5
表1 「KeyNIX」とオムロンのMACH 2.5の性能比較

 ところが、このKey Logicは1991年に解散してしまう。結果、もうKeyKOSのライセンスを新規に取得するのが不可能になってしまった。そこでペンシルバニア大学とジョン・ホプキンス大学の共同チームは、1991年に「EROS(Extremely Reliable Operating System)」のプロジェクトを立ち上げ、KeyKOSと同じ動作をするOSをクリーンルーム方式で作り直すことにした。

 ただし、1991年ともなると、メインストリームのアーキテクチャはx86になってきており、MC68020はともかくMC88000は非現実的であったが、その一方で386以降のアーキテクチャではユーザーとスーパーバイザーを分離するコスト(スーパーバイザーをカーネルモードで、アプリケーションをユーザーモードで動作させることになるので、Privilegeの上げ下げに必要となるレイテンシの増大)が深刻な課題となってしまった。これもあって、EROSプロジェクトは実用的なKeyKOSの後継を構築するものから、当時ペンシルバニア大学で博士課程を履修中だったJonathan S. Shapiro氏(それ以前はXanadu Operating CompanyのCEOを務めており、EROSプロジェクトでも中心的な開発者であった)の博士論文の題材という研究色の強いものに切り替わってしまう。

 なお、Shapiro氏は1999年までにPentiumの上で現実的な速度で動くEROSの実装を完成。連載第19回で少し触れた「L4 Kernel」と十分競合する性能を発揮することをベンチマークで示している。

Copyright © ITmedia, Inc. All Rights Reserved.