request handling and interrupts (only 23.3%), initialization and cleanup (36%), error handling (5%), configuration (15%), power management (7.4%), ioctl handling (6.2%) 15%のドライバは計算処理をしている(sound, NIC, wireless, CD-ROM, ..) 複数デバイスサポート(3,217個のバス・デバイスドライバで14,000デバイス) ドライバの相互作用 デバイス内プロセッサの活用,汎用性向上,隔離用インターフェイス {Kernel library, Memory management, Synchronization}, Device library, Kernel services 多くのドライバはカーネルサービスとの相互作用少⇒ユーザレベル・VM等での隔離が容易 デバイスもカーネルも直接は呼び出さないドライバ⇒”miniport”ドライバとして単純化可能 ドライバの冗長性 ライブラリやサブシステムによる抽象化の機会 8%のコードに類似性がある