古典的UNIXシステムコールから生まれた『魔法の泥』の使い道は?
前回,『逃し弁』をモデルにUNIXコマンドを作りましたが,今度は『魔法の泥』の異名を持つ『ウーブレック』という流体のようなコマンドが出来ました.『ウーブレック』とは,歩いている間は浮くのに,止まると沈む,あの不思議な液体です.
一方,UNIXにはselect()という古典的なシステムコールがあります.新たなデータが到来したり,ディスクが書き込み可能になったりした瞬間を教えてくれる仕組みですが,これを使うと『ウーブレック』のような性質を持つコマンドが簡単に作れてしまうのです.
果たして,ウーブレックのようなコマンドとは何なのか?現実世界ではウーブレックの上で走ったり沈んだりしてはしゃぐくらいの使い道しかない物体なのに,そのような性質を持つコマンドに一体どんな実用性があるというのか?筆者にもさっぱりわかりません.
そこで,せっかく作ったこのウーブレックコマンドについて下記の点を大真面目に解説し,
- 現実世界の『ウーブレック』とはどういうものか
- ウーブレックをソフトウェア的に実装する方法
- ウーブレックを使ってデータを選別するアイデア
- コマンドマニュアル/使い方チュートリアル
読者の皆さんからアイデアを募ろう(出てきたらいいな)という本です.
目次
- はじめに ― これはどんな本か?
- 目次
- 1章 oobleckコマンド作成の経緯
- 1. nanoKONTROL2操作データが欲しい
- 1. 操作中のデータは不要。確定値だけくれ!
- 2. 確定値だけをどうやって得るか
- 2. さて、名前はどうするか……
- 1. そんな「弁」は現実世界に無い
- 2. 水面を歩けるあの不思議な流体
- 3. 魔法の泥
- 2章 oobleckコマンドのイメージ
- 1. ウーブレック装置の構造
- 1. 装置の構成要素
- 2. 入ってきた物体(データ)の行方
- 2. ケーススタディー
- 1. データが到来し続けている場合
- 2. データの到来が止んだ場合
- 3. まとめ
- 3章 oobleckコマンドチュートリアル
- 1. コマンドのインストール
- 1) 「トキデリ」のダウンロードと展開
- 2) コマンドのコンパイル&インストール
- 2. 使ってみる
- 0. インストール成功かどうかの確認
- 1. 初級編 ― まずは“Hello, world!”
- 2. 中級編 ― もう一回“Hello, world!”
- 3. 応用編 ― 実践的なデータをoobleckする
- 3. oobleckコマンドマニュアル
- 名称
- 書式
- 説明
- 引数の説明
- オプション
- 戻り値
- 使用例
- バグ
- 規格への準拠
- 4章 oobleckコマンドの実装
- 1. 沈む・沈まないの表現にはpselect()
- 1. システムコールのselect()とは
- 2. select()の精密版がpselect()
- 3. oobleckコマンドへのselect()の応用
- 2. プール上の空間はリングバッファで
- 1. リングバッファとは何か(復習)
- 2. なぜリングバッファが適しているのか
- 3. まとめ
- 5章 最大の難関は、使い道の発見
- あとがき
- 奥付
書面サンプル




▲トップに戻る |