COFFEE-HOWTO: ソフトウェア

次のページ 前のページ 目次へ

## 3. ソフトウェア

## 3.1 ソフトウェア

以下のような機能を持った実行プログラム を設計するべきだろう。

- ioperm コマンドでカーネルコールすることによって、 I/O アドレス空間を使うために許可を得る。 例えば、ioperm(BASE, range ,1); となる。
- パラレルポートを 電圧 0-5V にするために、出力要求命令を実行する。 例えば、outb(1,BASE); となる。
- コーヒーが用意される十分な時間を待機する。 コマンドラインで確認することで時間が読めるなら親切だな。
- その次にコーヒーメーカー電源を切る― outb( 0 , BASE );
- 終了前に、ioperm(BASE, range, 0); を使って パラレルポートを返すべきだろう。

/dev/lp0 なら BASE = 0x3bc , /dev/lp1 なら BASE = 0x378 , /dev/lp2 なら BASE = 0x278 , range=8 に変更するべし。

そのプログラムを setuid しておけば、だれもがコーヒーを飲めるので、 より親切だろうね。

## 3.2 デバイスドライバ

kernel hacker's guide を読んで 、デバイス ドライバを実装する。 (それはユーザ空間にできるだろうと私は考えている。) アップデートの度にカーネルコンパイルしなくていいように、 モジュールとしてコンパイルして下さいね。次のように書く―

    echo cappuccino >/dev/coffee

すると、１分で熱いコーヒーができるだろう。 /dev/coffee に許可を与えるのを忘れないことだ。それは root だけにしか コーヒーを作ることを望まないか否かに依存する。

この方法の利点は、パラレルポートの ACK を使ってコーヒーメーカーからの フィードバックをサポートすることで、 賢いコーヒーメーカーなら割り込みをかけることが可能だ、という点にある。

それは宿題とする。

## 3.3 インターネットとの接続

C プログラムを書いたことがあるなら(前述)、コーヒーメーカーを ON/OFF する 簡単なCGIスクリプトを書くだけでよい。 どうやってコーヒーを作るかを説明して、それらを apache web server に置いたら、きっと素敵なウェブページが書けるだろう。

次のページ 前のページ 目次へ