データ収集のサンプルの方は、 私自身の勉強を兼ねてゼロから書き上げたものです。 当時は業界でも VMS を見捨てて UNIX へ移行しようと していた時期で、私も Linux を (と言うか C 言語すらも) 使い始めて半年余りの頃でした。 Tcl/Tk スクリプトも、私が書いたものとしてはコレが 二つ目 (変数の trace を使って event-driven に書いた ものとしては初めて) です。
一旦動き始めてみると、 結構実用的かも知れないという気がして来たので anonymous ftp に置いた所、 存外多くの人が入手して使ったり問い合わせたりして来ました (CC/7000 が輸出規制されている外国からも)。 '97 年頃には既に CC/7000 は製造されなくなっていたのですが、 CC/7700 への移植は簡単だったし (少なくとも ISA 版への移植は私自身も 40 分で済みました)、 それぞれの人が適当に書き換えて使っていたので、 特に配布版を作成したりはしませんでした。 しかし最近になって kernel 2.2.x ベースのシステムが主流に なると、2.0.x → 2.2.x の非互換性でハマっている人が居る らしき噂を耳にしたのと、 他のメインに使っているデータ収集システムの移植のついでも 有って、 Vine-2.1 を入手したのを機会に真面目に取り組む事にしました。
ところで、
最初のシステムを
一夜漬けで作ったというのは大袈裟でなく、
当時の学生実験で CAMAC によるデータ収集にとりかかった第一日目には、
西森君からソースだけを貰って途方に暮れている所でした。
最初は割り込みの使い方もわからなかったので、
かろうじて理解した ioctl
による
LAM の polling を使って CAMAC の基本的な説明を行い、
この方法では如何に CPU を占有してしまうかを強調して、
一日目の学生実験を終わりにしました。
そして、
その日の夜にデバイスドライバの割り込み周りを整備し、
簡単なデータ収集プログラムを書いて、
次の日の学生実験では、
割り込みを使って LAM を検知すると
如何に CPU の負担が減って効率的であるかをデモしたものです。
この時たまたま Linux Journal でローダブルモジュールの解説を
連載していたのは本当に幸運でしたが、
教官がこんな綱渡りの苦労をしているとは、
教えられる側は意識していないんでしょうねぇ。