第36回
ITもの作りの原点
前回は「ビットの化石」と題してCP/M 1.4復元計画を実行し,エミュレータ上での動作が確認できた話をした.
その時点ではディスク内容のバイナリイメージを復元し,ネットで入手したエミュレータで個々のユーティリティの動作までは行ったが,その先,つまり完全なるCP/M 1.4の復元まではたどり着いていない.8080のエミュレータを使えばすぐにでもブートできそうなものだが,CP/M 1.4は77トラック×26セクタという8インチ片面単密度のFDの物理フォーマットを前提に作られているので,FDDのエミュレータも作らなければならない.
それ以前に,データリカバリを依頼した結果として帰ってきたのは,マスターディスクのコンテンツをファイルとして解読してWindowsのファイルシステムに変換してくれたものだった.データ復元という意味ではこれで良いのだが,私がやりたかったのはシステムの復元だったので,改めてディスクの物理復元を追加発注している所である.たかがCP/Mなのだが,0から始めるとなるとこれがなかなか疲れるのである.何でもそうだが,何もない所から始めることはたいへんなのである.
遠くなる技術の原点(?!)
20世紀末からの数年間だけで,IT革命,ITバブル崩壊,そしてユビキタスや電子タグをキーワードとし,組み込み系,IT,もの作りの復興と持ち上げられたり叩かれたりと忙しいIT業界なのだが,とりあえずハード,ソフトの開発手法高度化はどんどん進んでいる.開発を効率化しつつ信頼性をあげるためには,開発環境の高度化が必須なわけで,それがあっての現代IT社会が成立しているのは間違いない.
しかし,何かが変だと思うことがある.かつて開発スタイルが原始的だったころの開発に要求された技術常識と,今の抽象化された開発スタイルに要求される技術常識が変わってきているように見えるのである.
かつて手作りのパソコンにCP/Mを入れるときには,FDの物理フォーマットまで知っていることが常識だったのだが,DOS/Vパソコン時代になるとFDの常識はケーブルの接続法までで止まってしまう.ソフトウェアもVB世代になってソフト開発の重要なノウハウは,いかに多くのコンポーネントの使い方を知っているかということになってきている.
それ以前に,かつては組み込み系の話をするときに,ハード,ソフトという分化があいまいで,ハードを設計する人が,ソフトも作っていた.しかし,それでは効率が悪いということで,開発スタイルが階層化し,需要の多い上層担当の技術者が求められているのだから,そういう層に特化した技術者教育がもてはやされるのも当然といえば当然なのである.
原点を忘れると何がおこるか?
有名なところでは,インテル8080の初版でのGNDパターンの設計ミスの話がある.かつてインテルが8080を作ったとき,論理的にはエラーがなかったにも関わらず,GNDのパターンが細かったために,ワーストケースでは論理0の電圧が十分に低下しなくなり,動作条件が厳しくなってしまうということがあった.レイアウト,回路設計,論理設計が分化した結果,全体を見る視点で盲点が出たということか.LSIもオームの法則に縛られるという原点を忘れてはいけない.
ソフトウェア開発はスタート地点が高レベルになると,逆に自由度が低下する.高レベルな開発システムで作るとできあがるプロダクトの外見や機能が似てくるのである.もちろん,開発ツールを提供する側は,デザイン変更やコンポーネントそのものの開発もサポートするのだが,使う側は開発ツールに付属するサンプルコードの改造でできることに限定して使っていることが多い.
以前,ファイル圧縮解凍ツールを探したときのことなのだが,あるサイトでフリーソフトウェアがたくさんならんでいるのを見て,まだまだ日本のソフト開発力も捨てたものではないと思ったことがある.しかし,実際にダウンロードして走らせると肝心の圧縮・解凍のエンジンはどれも同じDLLを使っていて,違うのはユーザーインターフェースという皮の部分だけだった.これらツール開発の原点はアルゴリズムではなく,DLLであるらしい.
計算機業界ではずいぶんと昔にハードとソフトの分化がなされており,今では教育体系もまったく異なっている.たしかに情報処理としてのハードとソフトは最終製品のレベルで別物として取り扱われる社会通念が同時にできたため,自然と受け入れられているともいえる.
問題は,元祖日本組み込み系である.これは最終製品が「物」であり,ソフトとハードが不可分なのである.今一度,IT物づくりの原点を確認しておく必要があると感じている.
やまもと・つよし
北海道大学大学院工学研究科電子情報工学専攻
計算機情報通信工学講座 超集積計算システム工学分野
|