2008年4月18日金曜日

デバイスチップのバグとOSの移植の大変さ

ARM CPUコア「Orion 88F5182」のバグ発見のニュースを見て思い出したことがある。
何かというと昔のPCに搭載のチップはバグだらけだったということ・・・

その一つの話としては、昔のPC98ノート互換のEPSONノートで経験したことを話す。
MINIXを98ノートに移植して締め切りまで後3日残し、さてようやく開放されると思っていたらEPSONからその3日でEPSONノートにも移植するように無理な依頼が入った。おかげで3日間徹夜をするはめになった。
先方はすぐに動くだろうと思っていたみたいだ。それだけ互換性に自信があったらしい。
しかしEPSONのあるNEC互換チップでMINIXの98用ドライバーは動かなかった。
いろいろ試みてドライバーを改造したがまったく駄目だった。この時ばかりはマイクロカーネルとカーネル内部のスレッドから受け取るパラメータの不一致性には疲れてしまった。
これは、HW互換性に問題があると見た私は、「EPSONにこれは非互換だから動かない。
ソースあげるから試してみてよ。」と渡した。数日連絡無しだった。連絡を受けて改造されたドライバーを見て驚いた理解不能なスパゲッティ・プログラムが追加されていた。
これは何かと問うたらオシロスコープで見たところタイミングが異なるのが問題だったそうだ・・・
タイミング??? そんなの色々試したよってね。相手は口を割らない。
どうみたって何か変だった。まあいいや、疲れてどうでもよかったからそのドライバーソースを組み込み
コンパイルしてソースとバイナリを納品した覚えがある。

大分後で、その貸しに対する見返りは、商用OSであるPANIXのPC98用X11ドライバーソースの京大マイコンクラブへの提供だった。
どうせ撤退するOSなので交渉したのだ。

MINIXは、アンドリュー・タネンバウム教授の開発した教育向けのマイクロカーネル型のOSで
カーネル内部はマルチスレッドで動いていた。

0 件のコメント: