さて、DECはPDP-11の後継として1977年に仮想記憶をサポートした32ビットのVAXアーキテクチャと、これに基づく最初の製品であるVAX-11/780をリリースしている。このVAX-11/780は、最小構成でもキャビネット2つを占有する巨大なもので、組み込み機器に使うには無理があったが、これに続いてVAX-11/750やVAX-11/725、730といったローエンド向け製品が投入される。
VAX-11/780は、TTL ICを組み合わせた巨大な構成だったが、VAX-11/750はバイポーラのゲートアレイ、VAX-11/725・730はAMDのAm2901を組み合わせて構成された関係で、性能こそVAX-11/780には及ばなかったものの、はるかにコンパクトに収まった関係で、組み込み向けにも利用できるものとなった。ただ、PDP-11を置き換えるにはまだ大型すぎ、かつ高価な嫌いはあった。DECはこれに引き続き、まずV-11と呼ばれる4チップ構成のフルセットVAX、次いでKD32と呼ばれる2チップ構成のサブセットVAXの開発を行ったが、構造が簡単だったためにこのKD32の方が先に世に出ることになり、これはMicroVAX Iと呼ばれている。MicroVAX Iはいろいろと欠点もあり、性能も低かった(例えば、DMAの機能を搭載しておらず、本来DMAで処理されるべきことを全てCPUのPIOでエミュレーションしていた)ものの、低価格かつコンパクトに実装された。DECはこれに続き、KD32の後継として78032と呼ばれるフルセットVAXのCPUを開発。これを実装したMicroVAX IIは同社の大ヒット製品となった。
ということでやっと話がVAXELNに戻ってきた。ちょうどKD32や78032あたりを開発しているタイミングで、DECはPDP-11+RT-11として利用されていた組み込み向けを、MicroVAX IIベースで置き換えることを想定し始めたのだ。もっと正確に言えば、もともとはV-11をターゲットとして、途中からMicroVAX I/IIベースに切り替えたというべきか。ただし、このためには新しいRTOSが必要になった。ハードウェアはMicroVAX IIベース(もちろんVAX-11/730や、何ならもっと性能が上のVAX-11でも動作はした)で確定なのだが、実はVAX-11とV-11やMicroVAX I/IIの決定的な違いの一つが、PDP-11コンパチブルモードの実装の有無である。
VAX-11シリーズはPDP-11との互換モードがあり、これによってRSX-11や何ならRT-11を動かすこともできたが、V-11やMicroVAXを選んだ時点でこの選択肢はなくなった。このため、新しいRTOSはRT-11との互換性を考える必要がなかった(というか、互換性を捨てるためにMicroVAXをターゲットにした可能性すらある)。この新RTOSの開発の指揮を執ったのは、その後MicrosoftでWindows NTを開発したことでも有名なDave Cutler氏である。RSX-11やVAX/VMS(VAX-11の上で動くDEC独自のOS)の開発に携わった後の仕事がこれである。開発開始はV-11とほぼ同じ1979年末であったが、最初のバージョンはわずか18カ月で完成した。当初はVAX ELAN(Executive for Local Area Network)という名称だったが、既にElanという商標が欧州で利用されていたため、これを避けるためにELNと改称し、VAXELNとなったらしい。
VAXELNはVAXアーキテクチャ上でリアルタイム制御を行う用途に向けて開発されたRTOSである。特徴は以下の通りで、これらだけ見るとよくあるRTOSという感じである。
さすがにディスクレスでのブートはできない(ネットワークブートは可能だった)が、メモリフットプリントは相応に小型化されていた。ただし、VAXELNの最大の特徴は、なぜかカーネルがPascalで記述されていたことだ。なぜかは不明(昔どこかで理由を見かけた覚えがあるのだが、もう確認できない)である。筆者はカーネルコードを見たことがあるのだが、確かにPascalで記述されていた。ちなみにアプリケーション向けにはPascal以外にCとFortran、それとAdaのサポートがあった。
このAdaは、当時DoD(米国防総省)がアプリケーションの記述言語にAdaを指定し、かつそのAdaの開発環境の認証を行っていたこともあり、米軍向けのシステムはDoDの認証を受けたシステム上で、やはり認証を受けたAdaコンパイラを使って記述する必要があった。VAXELNはAdaの実行環境に関してDoDの認証を受けており、またDECはVAXELN用にDoDの認証を受けたAdaコンパイラを提供していた関係で、米軍向けにMicroVAXやVAX+VAXELNという構成で納入するケースが非常に多かった。どうかすると軍用向けのインタフェース(例えばMIL-1553-B)用のAdaで記述されたドライバなんてものが存在しており、それもVAXELN上で動作した。こういう、非常に特定の用途向けにVAXELNは重用されることになった。
Copyright © ITmedia, Inc. All Rights Reserved.