Mona のドライバモデルをきちんと決めるべく既存の OS のドライバモデルを調べていこう。 前回までの調査 Windows - 既存のドライバモデルを調べよう BeOS - 既存のドライバモデルを調べよう BSDカーネルの設計と実装—FreeBSD詳解の必要部分を読み返した。 デバイス キャラクタデバイス cdevsw 構造体 open/close/read/write/ioctl/pool/map システム起動時、デバイス構成時などに生成 デバイス番号 デバイスドライバの種類を一意に特定 /dev/ に cdevsw の各要素がマッピングされる デバイスドライバの構成 自動コンフィギュレーションおよび初期化のための関数 ハードウェアの存在を検出(probe) 初期化時に1度呼ばれる 入出力要求を処理するための関数(カーネル上部) デバイスドライバ上部 システムコール、仮想記憶システムに