VAXシミュレータ開発騒動記

組み込み開発の黎明から

かつての初芝通信では、端末機器あるいはシステム機器の組み込みソフトウェア開発をマイコン登場以前から進めてきていた。あまり知られては居ないことであるのだが、初芝グループの中でも先進の開発気風をもつ歴史をもっていた。ある意味でベンチャーとしての挑戦の系譜が電電ファミリーに立ち向かうという大きな命題の中で移動体電話をターゲットにして独自の開発を続けてきたことの発露でもあるのだろう。70年代に達成した自動車電話の開発は、初めての電電公社への参入という形になった。当時は、まだ8008が登場するかしないかといった時代である。実際問題として、試作機で搭載していたのは4000シリーズのSSIで構成されたマイクロコントローラだった。性根を据えての開発に向けて先行開発してきた16ビットマイコンや4ビットマイコンを投入して商用モデルの開発を実現したのである。やがて自動車電話の二強としてあらたな携帯電話に続く流れを生み出していったのでもある。

開発マシンとして選択したのは当初は国産のミニコンであった。これには初芝電器が自身としてはコンピュータ事業からの撤退を表明して、それまで独自に開発してきたミニコンピュータチームを国内コンピュータメーカーとの合弁会社を興し転籍させるという取り組みなどが背景にあった。当時、初芝で開発提供されていたミニコンピュータは独自アーキテクチャーで低価格を買われて各社がOEMとして導入しているという状況もあった。私自身そうしたことを西芝での学生工場実習などの経験で知りえていた。4kWのミニコンが、初芝通信ではいまでいうPC代わりのように活用されていてターゲットとの接続やPROMの書き込みなどのツールとして利用していた。また、クロスアセンブラの開発自体は、合弁会社のミニコンをプラットホームとして独自に実現されていった。

やがて8ビットマイコンが登場して、小規模な開発マシンやらICEといったものが提供されるようになり黎明期のように、利用者が開発ツールを開発整備するということはメジャーではなくなってきた。開発ツールを提供するのは主に、マイコンチップセットベンダーか計測器メーカーという図式あるいは、システムハウスとして自社開発用に整備してきたものを投入するといった形だった。初芝通信内でも、システムでもZ80や8085を使い始めたり端末にも6802などを使い始めるようになり様々な開発ツールが導入されていきソフトウェア開発がアセンブラベースであったこともあり共有といった概念が生まれにくいことも事実だった。大規模なシステム開発経験として自動車電話交換機システムの開発受注ならびに納入達成といったベンチャーとしての輝かしい時代を経て、アセンブラーベースとしての物づくりを個々の最適化システムにより達成することが出来ていった。

商用のコンピュータシステムをアセンブラベースで開発した分散マイコンのシステムでリプレースを実現したりと、ベンチャーの勢いをみせつつも世の中からの要請に応えていく開発サイクルの短縮要請などから高級言語での開発により資産共有などを目指すようになってきた。

混沌から集約へ

事の発端は、UNIXベースへの開発環境の集約を20年前に行った事だった。当時は、組み込み機器にマイコンが登場してより六年余りで、個別の小規模な開発環境やら、開発ツールベンダーのお仕着せの物やら雑多な状況で混沌としていたのが当時の状況であった。使うツール毎に、メディアも違えばコマンドも異なる。ターゲットとなる業界が違うからとそれぞれの業界に向けた開発費用の中から取り出された予算には大きな開きがあった。一人一人の開発環境を最高の物にしようという自動車電話のチームの考えと、開発する機器の規模や種類が多く多岐に渡る放送機器やシステム機器の開発部隊には考え方も開きがあった。

ソフトウェア開発のベースとなるマイコンが異なるのだから個別最適化でかまわないという意見もあった。ソフトウェアという資産を蓄積していくという発想に立つ経営者あるいはリーダーから見れば高級言語への移行は大きな魅力と映ったのである。ベル研究所で開発されたソフトウェア開発には至極使い勝手のよい自己拡張性にも優れたUNIXというOSは、思想として理想に走ったMULTICSというOSの反省にたってシンプルな物として造られた。そのOSの為に併せて開発された言語がC言語であった。

先進の開発環境を次々と導入して効率を上げて電子交換機の開発を実践していた米国ベンチャーとの提携などが初芝通信に与えた影響は計り知れない。それまで電子交換機の開発をIBMホストマシンやINTELのMDSなどで作っていた様子からは、竹槍手作りから工場への移行を感じるほどの差異があったように映ったのであろう。政治的な判断などから経営資源の投入を止めた先進開発ではあったが、開発方法論の導入は大きな成果として残ったのである。ホストコンピュータというような大型マシンではなくて技術開発用のコンピュータとして登場したのがスーパーミニコンと呼ばれるVAXというマシンだった。制御用などの目的で登場したミニコンピュータの規模を科学技術計算用という目的に照らして拡張されたものであった。

大型マシンとのコスト比較でいえば安価な部類に入るものだろうが当時の売り上げの規模などから考えると一億円を越す規模のこの開発マシンは清水の舞台から飛び降りる気持ちで経営トップや技術リーダーが考えて米国ベンチャーでの先進開発方法を学んで活用していくのが目的であった。UNIXに長けたシステムハウスの事例などに学びダムターミナルと呼ばれる端末をシリアルケーブルあるいは電話線で利用できる非同期構内モデムなどを利用して何十台もの端末を接続して高々1MIPSの開発マシンに集約したのである。一人で使うのならば最高のマシンなのだろうが・・・。

開発プラットホームとして選定されたツールは、当時の4.1BSD/4.2BSDといった時代の流れの渦中にありVAXとの組み合わせであれば安価なバイナリー版もVAX以外のマシンで稼働させるためにFortranやCなどのソース毎提供されるものなどがあったのだが、UNIXの本質を忘れてVAXベースのバイナリーで安価なツール導入を果たしていったのだ。まだまだマシンのハードに掛ける費用としての認識とソフトにかける費用とには差があった。無論ツールの中には、ホストマシンで動作していたFortranベースで書かれたツールなどもあった。当時の時代背景で言えば、国内でソフトウェア開発力強化の目的で立ち上がっていた国家プロジェクトの影響もあった。

アセンブラとバッチからCやmakeへ

UNIXのメリットはDIYの精神であり、小さなツールをフィルターのような作りで構成してPIPEで繋いで利用するという美学かも知れない。makeによるビルドなどの自動化の考え方、ドキュメント処理などのTeXなどもあった。とはいえ、こうしたよくできているけれども自分で環境構築や開発をするという課題を楽しい物として捉えられた者もいたし。何もそろっていないから使えないと判断するリーダーもいたのは事実である。それまでの開発方法論から抜け出せないのはそうした温度差あるいは文化や意識の差が原因であったし、ソフトウェア開発を委託する側と受託する側という役割分担においてソフトウェアを開発するためのソフトウェアを作ることに発注側から予算が払われない仕組みも課題だったろう。

なにもないところからスタートアップするのは、正にブートストラップ大佐の話になってしまう。私が初めて、UNIXを使ってマイコン開発した時には、系列の半導体事業部門において4ビット用のコンパイラを開発されていた。Cライクな言語仕様で出来たコンパイラではあったがある意味仮想アセンブラ的な目的で使おうとした。デバッグツールとしては、ハードウェアシミュレータという名前のブレッドボードである。これに必要な無線機としてのハードを接続してダムターミナルの横に置くといっぱしの開発環境に見えるのだが・・・。出来上がったオブジェクトコードをハードウェアシミュレータに入れるというパスは自作せざるを得なかった。

ハードウェアシミュレータには16進のキーボードが付いているのでダンプリストに基づいてインプットするというオプションもある。又、この装置の仕様を良く調べると、シリアルインタフェースが搭載されていて、こちらからキーボードのコードを入れるとリモート制御出来るという機能が判明した。インテルヘキサと呼ばれるオブジェクトコードあるいはモトローラSという形式もあるのだが、これらのオブジェクトファイル形式を読み取って必要なキー操作を作り出してシリアルに送り出せばダウンロードが出来ることになるのだ。

早速、そうしたソフトを書き出して一時間も取り組めばダムターミナルの向こうにはソフトが動作するのが確認出来た。ファイルを食わせて生成したキー操作をファイルに落としてみて内容をツールが確認すればOKだ。ケーブルを作成して繋ぎツールを動作するとデータがダウンロードされるのである。こんなことは一例であるが、目的のマイコンで動作するソフトを作り上げるために副次的に開発するツールのデバッグや開発している時間もかなりあるのだ。こうした時間は息抜きともいえる。ある時は、デバッグしずらいのでコンパイルされたソースとアセンブリコードを並列リストしたものを再度アセンブルして機械語とアセンブラとCコードを三つ併記したようなリストを作り出してデバッグしたりもしていたのである。

こうしたツールを作ったりする工夫を昔の製造部門の系譜としての貴重な文化ともいえる「提案」という制度を活用して上司に具申すると効果を評価してもらった上で幾らかのコーヒー代程度の報奨金や図書券などをもらえた。Cでツールが開発出来るという便利さはVAXという開発母体というよりUNIXが動作するという環境としての評価に繋がり、やがて自分たちのチームで専用のスーパーミニコンを導入したりして事業部の流れからは離反するというよりも先の世界に突き抜けていってしまった。与えられた環境がそこそこ使えるようになってきてから様子見の人たちが使い出してマシンの能力が飽和不足してくると道具作りや次のことを進めている身にとっては合わない世界になってしまうからだ。

旧来の開発環境と繋がるといった意味も手伝ったりして別の会社のスーパーミニを手に入れてますますUNIXツールの上にソフトウェアのアーカイブを積み上げていったのである。そういうことが理解されない人たちは、開発するという時折のテーマを解決する為に必要なツールをバイナリーで購入して利用するということに終始しがちとなるのは致し方ない。長年に渡り開発環境を維持していくという目的にとってUNIX環境という選択肢はすばらしい物のVAXというハードにディペンドしたソフトウェアをバイナリーで購入してしまったつけは先送りにされた。次々と新機種が発表されて改良されていくDECという会社のVAX教に終焉が来るとは誰も考えようとはしなかったのである。買ったときには、あとでソースにしておく必要があるなと思っていたのかもしれないが・・・その時以降にそうしたツールベンダーが存在しているのかどうかが課題なのであった。

VAX11からDEC Alphaへ

開発環境として、構築されたUNIXマシンから個別のWindowsベースの環境などに移行する時代に入ろうとしていた。事業部開発環境の中核を成してきたVAXもメーカーであるDECが新たに開発した新しいアーキテクチャーであるALPHAに移行しようとしていた。超高速を売りにする次世代アーキテクチャーをフルに活用すべく512MBのメモリーの実装をメーカーであるDECには要求したのだが、何故にそんなに大容量のメモリーがいるのかという質問が逆にメーカーからは出てきたりしていた。高速さを活用してシミュレーションによるソフトウェア開発を実践したいという要請自体が、まだ認識されているとは思えないような様子だった。

東川達は、端末指向の中で利用してきた三菱マイコンの37700開発環境としてシステムシミュレータを開発してきていた。PHSシステム開発の中で作り出した環境はUNIXベースで作成されていた為に当初からEWSであるHPのマシンや中核マシンとして稼働していたVAXの双方とで使えるようにしていた。環境構築とツール開発の双方の経験から自社開発したツールを稼働させていたのだった。そうした積極的な体制で使おうとするのは3σの範囲外であるのは確かだった。ソフトウェア開発を受託分担しているグループの会社であっても、そうした気質を持ったエンジニアは同様な分布であった。意識を同じくする仲間達とのコミュニケーションのパイプはミニコミ誌として編纂を続けていたTechPaperという雑誌が一つのコネクションの輪であった。要素技術としてOSやツールや共通ボードの開発などを続けている仲間たちが繋がりシステム開発の輪が構成されて初芝電器のネットワークの範囲ではあったが西と東さらには北を結んでいた。

新に事業部で導入された最新型のDECαマシンは当時としては潤沢なメモリーの搭載も含めて自作したツール達が快走した。システム開発の中でDSPソフトの開発している仲間達も信号処理のソフトを自分たちで書いていたので、その快速ぶりには互いに満足していた。多くの3σの範囲の技術者たちにとっては、自分たちの開発環境として必要な開発ツールが揃わないαマシンに対しては印象も薄く、むしろ衛星として付けられた三台のμVAXにログインしていたのでαマシンは単なるディスクサーバーとして見ていたようだった。東川たちにしてみたら高速マシンのリソースが確保されていたので迷惑な事ではなかったが将来についてはVAXが消えることは無いと思っていた。

DEC中心として開発ツールのプラットホームとして君臨していたVAXは、αの時代には、チップメーカーやツールメーカーの関心は離れていってしまった。Windowsベースでまともな大規模プログラミングが達成できてきたことが要因であったろう。CDROMのインストールで簡単にセットアップ出来るのはツールベンダー自身のサポートも彼らの評価コストなども安価に済むのが背景だった。自分たちでツールを作るという観点ではUNIXに大きな点があるとは思うのだがWin32の環境が漸く評価され始めてきたということでもあろう。シュリンクラップされたツールを買い求める時代になってきたのだろう。

時を同じくしてPC自体で動作するまともなUNIXも登場してきた。BSD/OSとしてBSDの流れを組むUNIXやLinux1.0以前なども登場してきた。ツール環境としてEWSと共有しつつ安価なUNIX環境をPCで構築するという方法論なども自ら実践し有用性を確認して広く社内に提案もしていた。そうした技術論としてパフォーマンスと機能がフルカバー出来るという点で3σの外側のメンバーと意識共有をしてきた。「SunやHPを増やせばいいじゃないの、なんでそんなことをするの?」という人たち3σの範囲の人達だった。PCUNIXとEWS-UNIXでパフォーマンスを追求しつつコンパイルサーバーの様なツール環境を構築して実践してみても理解されないのは寂しいことだった。より使いやすい環境を安価に供給出来るという感覚で満足していた仲間同士では、周囲から理解されないことが理解できない事だった。時代に取り残されていく感覚を伝えられないのは悲しいことでもあった。

DECからCOMPAQそしてHPへ
VAXを導入した1983年からの流れが弾けようとしていたのは1998年の事だった。15年の歳月が流れてVAX自体は五代目のマシンとなっていた。さらに次の型のマシンも導入されたものの異なるアーキテクチャーのマシンに切り替えるという大英断をDEC社が行った。そののちにエクセレントカンパニーはパソコンメーカーであるCOMPAQに買い取られるという時代になった。スーパーミニコンあるいはEWSという事業からPCへの変遷という時代の反映なのかもしれない。会社が変わるということから、二つのOSを支えてきたエクセレントカンパニーは、自社OSと自前移植版のUNIXの二つを支えていくということには難しい時代となった。かつてあったDEC/COMPAQ/HPといった会社が最終的に統合されてしまいEWSというビジネスがすっかりPC化してしまうことに誰しも気づくべきだったのである。

この為に長寿なシステム製品を保守していく為に、異例とも思われる長寿環境に頼ってきた会社には破綻の時が近づいてきた。マシンの保守を使用しているOSによっては中止するというのが、最初のwarningであった。1999年一杯でCOMPAQ社と名前を変えていたDEC社は2000年問題という課題を抱えた自社版のUNIX-OSの保守が国内に二社しか無くなったユーザーのみの為に出来なくなるというのが根源の理由であった。マシン環境としての移ろいは既にVAXがメジャーでなくなっていることの業界の状況を示していたのだろう。長くメインテナンスを必要とするという概念は、まだまだ当時の組み込みビジネスの中ではなかったことなのだろう。とはいえ開発環境の維持という命題を開発部門のサポート部隊としてマシンリプレースなどを続けて対応してきたのが実情だったのである。会社の飯の種を止めるわけにはいかなかった。といってunixベースのバイナリーなソフトウェアをvmsに切り替えることなどは、PCに移行するのと同義語であったので、保守の方達の実務が続けられる最善を伸ばしていただく要請が現実的なことだったようだ。

そうした悲鳴を挙げていた技術管理部門の職場に転籍してきた私は、開発現場時代に少なくともそうした事態を聞かされていたものの、解決も見ないままに続いているという事態に愕然とした。自分たちにとっては高速で使いやすい次世代のマシンが普通のユーザーにとってはツールの動かないマシンとして位置づけられて一番忙しく動いているのは未だにVAXの末裔であるmicroVaxだったのだ。そうして、三台予備も含めて設置されていたこのマシンも事業部の分割という経営判断で三つの事業部にそれぞれ一台づつ分けられて稼働はしていた。長期間の保守が不要な端末事業部では考える必要も無く「こわれて保守不能になってもしかたない」という意識だったが、残る二つの事業部では死活問題ともいえた。とくに2000年問題を提起された会社としては、旧システムのソフトウェアの見直しや修正までも急に始まろうとしていた矢先の出来事でもあったのである。開発現場を支えるスタッフ部門としての手腕を問われているようなものでもあるのだが、開発部隊の環境への認識の低さの結果の自業自得といった面もあった。

ともかくスタッフ部門のエンジニアとして二つの対応策を考えた。環境を切り替えるというものと維持するというものである。オプションAの切り替えるとは動作させていたクロスアセンブラーなどのツールを現在保有している次代のマシン(Alpha)で動作できるように切り替えるという方法だ。過去に積み上げてきた大規模なシステム商品のオブジェクトが全く同一に生成できるのかという確認やら命令記述などの変換を行うことなど膨大なリソースが必要となることは明白だった。開発マシン切り替えというテーマに対して開発部隊に保守の為に予算確保以外にテストリソースの要求など出来るはずもなく非現実的な選択だった。もとより、一つの設備としては三年周期程度で切り替えてきたのではあるが、動作させているソフトウェアとしての設備は17年も使い続けてきていたからだ。開発部隊としては、開発が終了した商品の為の道具立てについて意識を払うこともなかったから余計問題が表面化していなかったのだ。何も生み出さない開発成果の保守という仕事に新たな開発投資をしていくことについては百家争鳴となることは明白で期日までの目標達成にはならないことも明白だった。

過去の開発ツールを使い続けるために

オプションAを選択してみたところで、いつまでもCOMPAQ社がAlphaをサポートしつづけるはずもないし、同様な事態が早晩発生することも想像に難くないことでもあった。組み込みソフト開発ということを自社としての特異性として認めるならば何らかの、技術投資をそこに持つべきなことも事実だった。何ごともなかったように使い続けていくためには何かを騙すしかないのだろう。対応策のオプションBの選択には、別の意味で困難が伴った。この選択をするということは、COMPAQ社になりかわってVAXの代替品を開発するということである。といってもハードを開発するわけではなくて、VAXのシミュレータを開発するという提案なのだ。こんなオプションをCOMPAQ社が呈示するはずもない。出来たとして課題は、著作権あるいは使用権ということについての問題が発生する。即ち購入した開発ツールを別のマシンで動作させることになるので、そのことについて問題がないのかどうかという点である。そうした意味においては、マシンは既に五回も変わっているのではあったが・・・。

開発ツールの追求というテーマ事態は、実際にクロスアセンブラーやクロスコンパイラー、ICE改良、シミュレータなどの開発を続けてきた東川にとって開発ツール・シミュレータという二つの言葉から連想される人物は、この業界では絞られてくる。マイコンのシステムシミュレータを開発してしいるその会社であればVAXの命令セットシミュレータとUNIXのシステムコールを接続することは可能であろうという予測である。その人物であるツールベンダーでCTOを務めているK氏に話を持ちかけることにした。幸いそのチャンスは直ぐにやってきた。開発ツールの展示会の案内が彼から贈られて来たのである。VIP待遇の招待というのはただ飯を用意するぐらいだから、何か買って導入して欲しいツールの宣伝の目的である。管理部長宛のこの招待状を別の目的で活用したのは言うまでもないことだが・・・。展示会場を訪問して、相談を持ちかけた。彼のリアクションは予想通りで、まずGAIOのツールへの乗り換えの打診であり移行費用と検証費用が捻出出来ない旨も理解をされて第二段階に進んだ。彼の会社GAIOではシステムシミュレータの開発をしていてマイコンのシミュレーションとVHDLシミュレータとの同期などが得意な分野であったからだ。課題はVAXのシミュレーションと共にUNIXとしての動作確認ということなどが課題として認識された上で所用期間半年で二人くらいで開発できるだろうという指針をもらった。また、K氏からは「東川さん、まだ1999年末までは時間があるから必要な時期の半年前に話を持ってくれば・・・いいと思うし、きっとあんたの事だから別のオプションも考えているんだろう。判るさぁ、でもね、うちは作れるからね必ず。安心しな」とコメントをくれた。流石のK氏の反応に脱帽した。

確かに、この環境の構築は正に保守的な位置付けの仕事であり会社の技術開発へのメリットを生み出すようなものではなかった。積極的な取組みとはいえるが、その為に貴重な開発予算を充てて行うものなのかどうかという勘定することが必要であった。開発環境としての維持に必要なお金はマシンの保守費用である。幸いなことにスーパーミニコンの保守費用は、割高な物であり今後の保守年月を考えると、少しはまとまった費用が作れそうな状況になる。マシン自体は、対象となるかつてのスーパーミニコンの性能よりもパソコンの方が速いのである。技術的な見地でいえば、仮想マシンと実環境を接続するという目的であり学校の先生のテーマとして検討していただくの現実的な選択肢として浮上してきたのである。どこかの大学あるいは高専などの範疇でUNIXに明るく開発ツールに造詣の深いという先生にでも巡り会わなければという天文学的な困難が脳裏をよぎっていた。

灯台もと暗し

知人のネットワークを通じてUNIXに明るい先生を探そうとした。教育現場でも情報教育に取り組んでいる会津大学にUNIXに詳しいという先生の知人がいるという伝手を辿り問い合わせのメールで説明をしたのだがカーネルレベルの話に辿り着く前に、開発環境やVAXの事はわからないと終わってしまった。初芝通信でも開発環境に取り組んでいた仲間で母校に戻って教鞭を執られているかたがいたのだが、UNIXの内部に踏み込むのは難しいという事だった。初芝電器で社内教育に取り組んでいた霰女史にも問い合わせをしていたが、彼女からは「初芝電器の研究所でUNIXの上でクロスコンパイラの開発をしていた山野先生は、ご存じですか」というメールが届いた。

丁度、出張で大阪に来ているときだったのでホテルから早速内容の説明をもどかしく感じつつも懸命にEmailで書き連ねた。何度かメールのやり取りをして打ち合わせに先方まで訪問することにした。折しも新型の夜行寝台列車であるサンライズ出雲が開通していた。宿泊費や飛行機代などを浮かすという効果もあり二も無く、その夜行列車を選び月曜の朝には米子に行っていた。米子は、鳥取の最西端でもあり隣接するのは島根県となる。宍道湖の蜆や境港の水木しげるなどが著名な町でもある。行く先は、普通の人には説明が必要となる教育機関である国立高専で、山野先生は米子高専の電子制御工学科の先生であった。

米子駅からタクシーを飛ばして着いたのは東川の母校の木更津高専と同様な雰囲気のある校舎だった。高専という学校は大学とも工業高校とも異なり少し匠を目指す若者たちという印象のある専門大学と考えていただければ良いだろう。キャンパスライフという軽薄な言葉はあまり当てはまらない。大学入試を知らずに五年間の専門教育を続けている様には世間知らずという面もあるが若い時期は、そうして勉強に没頭しても良いのではないかと考えている。

山野先生の部屋を尋ねて連結された校舎に入っていった。低層の校舎が連なる様は、やはり学校のスタイルである。山野先生の写真は既にホームページに設けられていた自己紹介から見ていた。初芝電器での仕事ぶりや作業服姿も思い浮かぶ明るい頼もしい印象を受けた。聴けば初芝電器で開発していた高性能16ビットマイコンのクロス処理系の開発を中央研究所で進められていた様だ。文武両道も追求されていて卓球に賭ける情熱は時として仕事を上回るようだ。母校である米子高専に戻られてからはまだ10年ほどらしい。仮想空間と実空間とをシミュレータで接続して実制御となる部分は、ベースとなる現状のFreeBSDを環境としてインテルマシンの上で動作させてVAXの部分はシミュレータとして動作させたいということを説明した。

「山野先生にお願いしたいのは、この研究あるいはテーマが実現可能なのかどうかという検討なんです。」こう説明すると山野先生は、少しきょとんとした顔をした。東川は、今の開発環境の現状と移植に必要な時間とを説明して半年で実現性の検討をしていただき残る一年で仕上げて欲しいというのが願いであると補足した。学校との共同研究という形で必要な手続きについては、以前山梨大学の先生とケイ佐藤が行っていたので会社としての実績があるので問題は無かったし、ソフトウェアハウスに依頼にいって説明している間の打ち合わせの費用だけでも先生への委託研究費用の額を上回ってしまうと考えていたのだ。(いつまでもこうしたお役所予算確保のベースにある実績払いのような土木メソッドが続くとは考えられないのだったが・・・)検討していただく旨を快諾頂き、共同研究費用の手続きの用紙などをいただき帰途に就いた。話し合いの結果に基づき、今までの検討背景と内容について説明して決裁の手続きに入った。

混迷の入口で

この先生との検討成果に伴い必要になってきたのは、やはりベースとなる4.2BSDのソースコードであった。初芝電器としてライセンスを取得してベル研究所からライセンスを受領した上で提供を受けていた4.1/4.2BSDのカーネルソースコードは現在のFreeBSDなどのベースコードとはいえ所謂暗黒の時代のコードであり4.4BSD以降をベースとしているFreeBSDのコードとの差異があるのであれば確認が必要である。利用してきたBSD-UNIX自体はFreeBSDなどとの係争の果てに大往生してしまったところがある。大きなテープリールで見たことがあった4.2BSDのコードを探して、初芝通信の開発の守り神と勝手に私が読んでいる「ビッグママ」にメールを入れると「なにを今ごろ言っているの、ULITRIXに変えてからは事業部でソースコードは管理していないし、在ったとしてもそのテープ読めないと思うわよ・・・」と返事があった。「・・・」返す刀はなかった。

同じような返答は、ツール管理をしていた初芝システムからもあった。彼らもULTRIXに切り替えていてカーネルソースコードは持っていない様だった。「東川さん、初芝電器なら持っているんじゃないかな・・・」とコメントをもらったが当時の体制から現在までの開きが有りすぎてリンクが切れてしまった。こうなると頼りは、ことの説明をしたメールやニュース投稿しかない。初芝電器も以前に日経エレクトロの誌上で非難されるほどだった社内コミュニケーションインフラは識者により改善されるようになっていた。社外のニュースの配送と共に社内のニュースグループの配送も始まっていた。反応は早かった、初芝技研のメンバーからUSBの先生が4.1から4.3BSDをCDROM化して有償で配布しているというのだ。

早速、その先生に先生に問い合わせのメールを送り、翌朝には返事をもらっていた。BSD暗黒の時代のコードはベル研究所のライセンス取得者もしくは教育関係者にしか配布できないというのが回答だった。無くし物はソースだけではなかった。「どっかで見たんだけどなぁ」と皆が口にはする物の現物は出てこなかった。協同でライセンス取得していた事から、ソースと同様にやはり元の木阿弥となった。こうなると、その時代にそうした活動をしていた人物を知る人を頼りにリンクを構築するしかなかった。開発環境などのテーマは技術トップが変わる度になぜかコロコロと変わってしまい立ち消え足り復活したりと猫の目のような中で、そうした担当になった人達が詣でるような人が頼りになる。山野先生を教えてくれた、霰女史は当時を回想して思い出してくれた。担当の方の名前とメールを入手して背景説明のメールと電話を入れた。

「UNIXのライセンスですか、こちらの部署で管理していますよ。まだ現役で使っている製品がありますからね。そちらの事業部では、これから使うというのですか?」、必要なライセンスシートはあるようだ。「まずは、ライセンスシートのコピーを戴けないでしょうか、こちらのFAXに送付していただければ結構ですので」とまずはお願いをすることにした。先方からはFAXならば有効にはならないだろうと考えたようで、ほどなくFAXにBELL研究所からのライセンスシートが届いた。初芝通信を対象にした旨の物であった。もらったFAXをそのままUCBの先生にFAXで送付する。またUSBの先生には、なぜこのソースが必要なのかという背景とVAXのシミュレーターを組み込む物が必要なので取り組んでいるのだがと説明を拙い英語で書きつづった。

ネットワークの驚異

翌朝になると、CDROM代金の送付の確認とベル研究所のライセンスが認識された。あわせて書き込んでいた話について「VAXじゃないけれどPDPならば貴方のいうような事例を作った先生がいるよ。又、VAXなどの命令セットのシミュレータならば、事例はいくつかあるので詳しい人のURLを教えてあげるよ」ととんでもない成果が時差の向こうからやって来た。又、このメールのCCに記載された方はPDPのシステムシミュレータを作られた方でUNIXの稼働に成功した人らしい。さすがにUNIXのPascalを開発されていた中心人物らしくヒューマンネットワークは軽い、最近知人のW君がLinuxに嵌まっているのは判る気がした。メールを読んでいる中に時差のないオーストラリアから、このメールへの返事が更に届いていた。

オーストラリアの大学の先生から、「VAXのシミュレータか面白いね、自分のサイトにPDPでの成果がおいてあるからアクセスして利用しなさい。」という旨で書かれていた。その後、FAXで50回分のワンタイムパスワードが送られてきた。二度ほど失敗したものの10回も使うまでには至らず先生の成果を入手した。又、UCBから教えてもらったURLで色々と使えそうなVAXのシミュレータがソースで入手可能なことが判った。教育用の目的でクラシックなコンピュータとしてVAXはよい材料なのだろう。ほとんどのシミュレータは浮動小数点をサポートしていないか、組み込んだけど試験したことはないというような状況だった。使えそうなシミュレータとしては、マッキントッシュで稼働していたものが利用できそうかなという印象だった。

山野先生からは、FreeBSDのソースと4.2BSDとの差異を確認しつつファイルのアクセスなどのシステムコールの実装やシミュレータが動作した際のシグナルのハンドリングなどについて問い合わせや検討の成果などを明らかにしていった。第一段階である研究の続行の可否についての検討成果はOKという結果で山野先生が方向性を確認してくれた。次には、揃ってきた使えそうなベースをツールに仕上げてもらうメンバーの確保である。OS2の使い手までも抱える、幅広いエンジニアをダイナミックに配置することでプロジェクトへの対応とOJTのチャンスを広げていくという信念に基づいた会社シスコムがある。単なる請負の会社ではない、「あまり予算は無いのだが、手がけて勉強になるテーマがあるのだがUNIXに明るい人をアサイン出来ないだろうか」と開発協力を持ちかけた。シスコムの三鷹主任からは「あうかどうかは、判らんのですがやれそうな奴とやりたそうな奴はいます。例によって高崎なんですが、いいですか」と回答をもらった。高崎と横浜そして米子を結ぶ開発こそネットで進めるべきことである。

技術管理の東川の仕事としてVAXの保守費用を想定した今後五年間という形で保守費用を予測算定した額を予算化する計画を書き起こし決裁を取ることにした。この中には、山野先生への研究委託費も含まれる。開発で必要となるリモートアクセス環境には、まだVPN環境ではなくバックドアしかないのでコールバックによるセキュリティ確保を実施できるよう高崎からのアクセスと米子からのアクセスを設定した。開発評価に用いるVAXへのアカウントの作成やプロジェクトスペースの確保なども必要な手続きである。開発用マシンとしてのPC手配も実施した。FreeBSDのCD整備も必要なテーマであったが既に社内設備のイントラサーバーなどで導入整備してきたLinuxなどと同一次元で準備がはかられた。情報交換の為の特別メーリングリストも作成し、発生した課題や対応などの情報共有を円滑に進めるように細心の注意をした。問題の早期発見と解決にこうしたインフラが役に立つのである。費用は捻出することが出來たし、ある意味でコストダウンにもなった。古い方法論のまま手を付けてこなかった事がイケなかったわけだがスタッフ部門にもやりがいのある仕事があったということだ。

止まっていたギアは動き出した

東川の中で、少し止まりかかっていたモノづくりのギアが入ったような感じがあった。スタッフ部門だからといって、モノづくりへの視点が変わるだけでやるべき仕事は作り出せると感じることが出来た。日々の業務としてこなしてきたネットワークインフラの担当もこうした時には活用してリモート開発にも問題はなかった。堅苦しい仕事の仕方も変えようとした活動は、先行して動いていた高速サーバーペンチャーからの試作導入という挑戦も似たような背景だったし進め方はそちらも同様だった。事業部内のイントラネットサーバー構築の予算を流用して試作サーバーで事業部内のトラフィックを軽々と消化しつつ安定稼働の評価も兼ねたいという無謀なやり方でもあったが、挑戦させてくれた新しい上司にも恵まれた。

新たなことをするのにかかった費用は、東川の出張費用ぐらいだった。初芝電器は大阪をベースにする会社であり初芝通信もその衛星会社として一体の経営協力が出来る体制で運営されていて、大阪と新横浜の間の新幹線乗車券などは日常のことだった。管理部門としての大阪出張が金曜日にあり、米子高専に頼まれた講演に対応する出張が月曜日になることが分かったことから、その年度末の週末を夫婦で大阪に活用するという悪だくみが起きたのは、ごく自然なことだった。

会社から支給された二枚の乗車券は二人でシェアして、金曜の朝から大阪に出張した私を追って、細君が夜着で大阪にきて合流する。大阪の夕方を楽しむのにはラパレットもアランジアロンゾもいろいろある。お気に入りの神座でラーメンを食べればあとは明日の大阪-米子の家族旅行モードに入るだけである。

土曜の朝は、新大阪から500系のぞみに乗って岡山までのわずかな区間の旅で、神戸・姫路とやりすごしてコーヒーを呑んでいる間に岡山についてしまい消化不良な細君だったが、連絡するはずの伯備線は、何故か走って乗り換える始末となった。伯備線の旅は一転してのんびりしたルートに変わりゆったりと米子に向かって進んでいく。夜行で来るさいの伯備線の風景は朝がたなので昼間の移動の風景はまたちよっと違う。

米子につくと日ごろ私が囁く、山陰地区の喫茶店最強伝説を確認しようとさっそくスイーツを確認堪能してから、米子城址に向かい風景を一望しながら買ってきたおにぎりをぱくついたのは気持ちのよいものだった。境港線を使って境港まで進み、水木しげるロードなどを見て歩き、境港にあった国民宿舎に泊まって、翌日は朝から美保関へ繰り出して隠岐を展望したり、隕鉄落下の展示を見に行ったりした。私は月曜の講演があり、帰りは別々にしたがフライト代金は、講演の往復費用を片道二回で使った計算だ。会社の仕組みを活用して楽しんでいる姿は、細君にとっても新たな職場で吹っ切れたように映り安心もしたようだった。

月曜日の講演は、スタッフエンジニアとして取り組んでいた当時の第三世代携帯電話が向かうサービスの世界やサーバーの世界についてを紹介することで終えたのだが、この米子高専との交流あたりから私の活動が様相を変えてきたのではと回想する次第だ。社畜とはいえないようなマイペースな暮らしをしつつ、芯棒は通していくという生活だったのだが、このあと大きな時代の流れに押し流される事態が待っているとは知る由もなかった。

ノストラダムスの年は明けて

東川が米子高専との間で行き来している間に、いよいよ1999年に突入してノストラダムスの大予言に突入していく。序章となったのは年明けに起きたQuad社と北欧メーカーとの間の第三号選択という事態だった。スタッフ部門では、ライセンス問題が解消する前提で描いていた未来が崩れて大慌てという状況だった。でもこの時点では7の月に何が起こるのかまでは考えてもいなった。

日常の活動としてスタッフ部門に移籍してからつづけてきたプロセス改善活動の試行プロジェクトの成果も順調になり、東川と同時に大阪からやってきた技術管理部の課長が3次元設計の先達として、通信システム事業部に持ち込んできた新たな文化の一つに彼らの前身が調理機器の事業部だったことでコーヒーメーカーを置かせてもらったことが大きかった。新たな取り組みの流れをしていくのに作られた推進室でコーヒーをのみながら議論していくというスタイルは日本企業っぽくない形だったと思う。

そして東川が当時出てきたPCUNIX上に構築したメールと漢字ページャーがリンクするシステムやメールをFAXに転送したりする仕組みなども時代のOpenSourceな流れの結果だったし、なにより自分たちが作ろうとしていたシミュレータも新たな時代では当たり前のことを進めているのに相違なかった。そんな風に自分自身を冷めた目で見ている自分がいた。では、自分たちが作っている製品とはいったいなんなんだろう。

機会は自在に活用する

米子高専との共同研究は、ソフトハウスも加えてスムーズに進みだすことになった。共同研究の縁も含めて、米子高専での地域企業へのセミナーに外部講演を依頼され、初芝通信が取り組んできている第三世代携帯電話開発からの未来について講演することになった。講演に対して往復の航空券を出してもらえると聞いていた。

図らずも管理部門としての大阪出張が金曜日にあった、米子高専に頼まれた講演に対応する出張が月曜日になることが分かったことから、その年度末の週末を夫婦で大阪に活用するという悪だくみが起きたのは、ごく自然なことだった。初芝電器は大阪をベースにする会社であり初芝通信もその衛星会社として一体の経営協力が出来る体制で運営されていて、大阪と新横浜の間の新幹線乗車券などは日常のことだった。

会社から支給された二枚の乗車券は二人でシェアして、金曜の朝から大阪に出張した私を追って、細君が夜着で大阪にきて合流する。大阪の夕方を楽しむのにはラパレットもアランジアロンゾもいろいろある。お気に入りの神座でラーメンを食べればあとは明日の大阪-米子の家族旅行モードに入るだけである。

土曜の朝は、新大阪から500系のぞみに乗って岡山までのわずかな区間の旅で、神戸・姫路とやりすごしてコーヒーを呑んでいる間に岡山についてしまい消化不良な細君だったが、連絡するはずの伯備線は、何故か走って乗り換える始末となった。伯備線の旅は一転してのんびりしたルートに変わりゆったりと米子に向かって進んでいく。夜行で来るさいの伯備線の風景は朝がたなので昼間の移動の風景はまたちよっと違う。

米子につくと日ごろ私が囁く、山陰地区の喫茶店最強伝説を確認しようとさっそくスイーツを確認堪能してから、米子城址に向かい風景を一望してから境港線を使って境港まで進み、水木しげるロードなどを見て歩き、境港にあった国民宿舎に泊まって、翌日は朝から美保関へ繰り出して隠岐を展望したり、隕鉄落下の展示を見に行ったりした。私は月曜の講演があり、帰りは別々にしたがフライト代金は、講演の往復費用を片道二回で使った計算だ。

月曜日の講演は、スタッフエンジニアとして取り組んでいた当時の第三世代携帯電話が向かうサービスの世界やサーバーの世界についてを紹介することで終えたのだが、この米子高専との交流あたりから私の活動が様相を変えてきたのではと回想する次第だ。社畜とはいえないようなマイペースな暮らしをしつつ、芯棒は通していくという生活だったのだが、このあと大きな時代の流れに押し流される事態が待っているとは知る由もなかった。

この事とは別に技術管理部門に移籍してスケーラブル高速サーバー技術という調査を通信キャリアに納入するという案件を黒子として技術調査してきていた。米国のベンチャーの技術導入評価を社内サーバーとして運用して評価してみようという実験を進めてきていたのだ。しかしベンチャー自身の問題で試作品が納入する段階にまで達しなかった。サーバー技術を売り込みに来ていたケイ佐藤からは申し訳ないの連呼となったが、急遽代替策のイントラネットの構築を果たさなければならなくなったのも事実だった。世界で起きている新時代への迷走と社内で起きた迷走はレベルが違うのだがこちらは私の責任としてきっちり果たす必要があり小規模向けサーバーとしてUNIXマシンをコンパクトにしてWindowsもMacも集約できるマシンとして売り出されていたものを分散処理で部門単位で持つ形で階層型の仕組みにしてメールも振り分けサーバーを介してアカウント毎の当該サーバーに転送するような仕組みも構築することでその年度を終えることができた。

1999年6の月 未来の語り部が現れる

新年度になって、昨年度に迷惑をかけたとケイ佐藤がベンチャーの社長の来日に合わせてランチミーティングを申し入れてきた。日本代表の山羽氏も一緒だった。有楽町の国際記者クラブでそれは行われてサーバー技術の最新状況の更新をしてくれた。社内での評価作業としての導入はできなかったものの溜池テレグラムのDOYAサーバーの話は時間軸もあってF社のものをOEM納入することになるようだった。とはいえ技術ウォッチャーとしてはトラックしなければならなかった。

ランチミーティングが明けて会社に戻る中で別件であって話がしたい旨の電話がケイからあった。朝ならば時間は大丈夫だった、コアタイム勤務が守られればスタッフ部門でもあり自由な裁量での仕事が出來たからでもある。翌朝、会社通勤ルートである横浜駅前の西海岸コーヒーの店にいくと、ケイは待っていた。サーバーベンチャーから昨日見せられた資料についての意見を言おうとしたら、ケイは言葉を遮りあの仕事は辞めたんだという。昨日は顔つなぎと接点だったことのわびなのかと理解したが腑に落ちずにいると、ケイは嬉しそうにこちらにはすごい話があるんだといって資料を取り出してうちの会社に来ないかと切り出してきた。

ケイはサーバーベンチャー以外にも、その会社のあるサンディエゴのもう一つの会社のコンサルティングもしていたのは聞いていた。それはQuad社だったのだ。Quad社のメンバーとして激震だった第3号選択の発表にも列席していたようだった。頭の中が少し混乱していた。しかし、あの番組「世紀を超えて」はパテント戦争の特集としての回でQuad社の回は見ていた気がする。その問題のパワーコントロールで第3号選択になったのは、ご存知の通りだけれど、そのパテントを否定することの研究していたのが成果となって超高速なデータ通信専用の技術が生まれたんだという。ワイドではないCDMAの帯域で、これから先将来の目標として描いていたIMT2000の目標速度である2Mbpsを達成できたという。

そして、この技術を使うと通信料金を固定化して低料金でサービスすることができるようになるという未来について語りだした。この実用化を含めて最先端の日本の地でビジネスを始めることになり日本の通信とソフトがわかるエンジニアが欲しいんだよという。頭が混乱してよくは覚えていない。まだ東川の心が大企業のエンジニアという枠から弾け切ったわけではなかったが、弾けそうなことは確かだった。現在の仕事について聞きたいから、かれらのオフィスに来てほしいということで別れた。それから多分自分の会社に向かったのだろうけれど、よくは覚えていない。

自分が向かいたい未来はなんだろうか

このVAXシミュレータ開発を起草して、山野先生と一緒に開発を進めてきた。メンバーもそろい開発完成に向けて不安はない。そして、そのシステムが出来上がった後に描かれる未来に、いったい自分は会社でなにをしていることになるのだろうと深く考えるに至った。ソフトウェアの開発プロセス改善についても、いったいどんな社会に役立つシステムを提供していけるのだろうか。後輩たちをWCDMAの戦線に供給して、見知ったお客様たちへのケアが薄くなり、それでもWCDMAの最前線で初芝が先進的に引っ張るというよりも溜池テレグラムの天啓のような仕様書が降りてくるのを待っている。そんな風景をよく見てきた。この状況から続く未来は違うのではないかと感じてきていた。

自分のアイデアで始まった、このシミュレータ開発も早晩当たり前の話となる瞬間の加速度を感じてきたのエンジニアとして素晴らしいことで、そうしたことを後輩につなぐことが出来ればよいのだが、今の状況ではそうした未来は描けそうになかった。むしろ、通信機器のソフトエンジニアとして通信料金固定化の低価格通信の開く未来を推進していく側から会社を支えていきたいと真摯に思うようになった。おりしも開発プロセス改善では、リーダーが指針を示して現場にまかせっきりにした事例がとても機能したという現実もみて、私がこのまま叱咤し続けなくともルールは回っていくし、自分が考えるほど周りが評価していないのではないかとさえ感じるのだ。

サンディエゴでの青空の下で見た、新しい未来に向けて8月末に初芝通信での生活を終えることになった。

ツールは開発できたが、そこに自分はいなかった

山野先生と一緒に開発を進めてきた、このシステムは1999年暮れに完成をみた。そのときに自分がその場にはいないという新しい未来は考えてもみなかったし、またFreeBSDを搭載したX86マシンの上で、VAXのバイナリーツールはンかつてのVAX以上の性能で動作することにもなった。入社当時に見ていたミニコンのシミュレーションが実用性がないと思っていた時代からは、コンピュータの進化がはるかに進み、またシステムシミュレーションにしたことによりいわゆるアプリだけがシミュレーション動作となりIO処理はネイティブなOSが動作することも、当時のアプローチとは異なっていた。

どうやら、この仕事を契機に、東川はパラレルゾーンを移動してしまったのだといえる。これ以降も度々、山野先生のところを訪ねては少しずつ経歴の変わった内容で高専の学生たちに講演を重ねてきている。大きな会社という仕組みゆえに無駄になっていたかもしれない投下費用も見方を変えると活用して別の意義ある使い方に変換させることが出来たし、そうしたことはベンチャー的な活動の萌芽だったかもしれない。

このシステム開発を通じて、いろんな人との出会いがあって自分自身の知らない自分に出会い、気づかなかった自分の発見と挑戦が出來て、新たなページをめくるのではなくて違うノートに飛び出した感さえある。多くの人のネットワークの重要性を再発見して、かつて起草していたコミュニティ雑誌の再刊を果たすこともやめるに際して行うことにしたし、取り組んでいたことの記録として個々に記載するとともに、これを仕上げてくれた先生や仲間たちに感謝を述べたい。ともあれ同僚たちのために作り上げてきたルールやツールが活用されることは私からの気持ちだった。

Cコンパイラ開発顛末記 小窓次郎

はじめに
C3POとは、6809用に開発されたMicroCをベースにして日立のHD6301/6303にカスタマイズとチューニングを行った組み込み目的のCコンパイラです。現在DOSで動作するバイナリ-とソースコードとマニュアルなどがあります。開発の機会を与えてくださった、前職場の上司ならびに、快く端末開発の過程で付き合ってくれた仲間達、また没頭を許してくれた細君に感謝いたします。このコンパイラは、現在の状況で使う価値があるかといえば・・・?ということだと思います。まあ、まだチップとして630Xシリーズがあればフリーのコンパイラとしての価値があるのかもしれません。注意を加えるならば、このコンパイラはアセンブラソースコードを吐くタイプのコンパイラであってクロスアセンブラが必要になります。当時のクロスアセンブラの文法には準じたコードが出ますし、またその部分もコードが独立していますのでカスタマイズは可能です。ソースコードですのでご参照いただければ明白です。

開発されたのは、1984年12月が最初の版のリリースでした。1988年頃までは実務と趣味でメンテナンスをしてきたと思います。

アーカイブ(LZH形式です)

目的と開発の背景
このコンパイラの開発目的は次のようなものでした

  • 組み込み開発で適用可能なコンパイラが欲しかった
  • C言語を勉強する必要があった
  • アセンブラでのプログラミングノウハウをコンパイラにカプセル化したかった

今ならば、GCCも有りますし、昨今の溢れかえったFlashサイズなどからこだわりはなくなってしまったようですが、開発当時(1984)の組み込み開発事情を考えていただければまともに使えるコンパイラとは当時の8080用に開発されたLSI-Cだったかと思います。無論6809用であればMicroCはエレガントなコードを生成してくれました。コンピュータとしてのアーキテクチャが綺麗だったこともあります。しかし、私の暮らしていた組み込みの世界では、アーキテクチャよりも消費電力や多機能が搭載されていたマイクロコントローラという概念でかのモトローラと特許係争にまで陥ったほどのベストセラーになった日立の8ビットコントローラが厳然としたデファクトとしてありました。このCPUで16kBを越す大規模なソフトウェア開発の効率を上げたいというのが当時の背景でありました。

アセンブラベースで8kBぐらいの容量でメモリーダイヤル搭載の自動車電話を開発していた時代なのです。当時のアセンブラベースでICEと睨めっこしつつの開発というのは、現在のCベースで10MBを越すアプリケーション開発をしている状況から考えると稚拙に思われるかもしれません。せいぜい開発人数も3人で半年位かけて開発しているわけで8KBのコードですとアセンブラソースコードで9000行クラスでしょう。そうなると開発規模は、一人あたりの生産性は300ライン/月くらいだといわれていた時代でもあります。いまは、ベースとなるソースコードがCになって同様の数字なのでしょうか。アセンブラで記述するということによる問題点は相当の熟練を要するというのが背景にあります。スタック操作を誤れば簡単に暴走できますし、そうしたことからリアルタイムトレースといったツールや方法の必要論がまかり通っていました。

続きを読む