Microdrivers: A New Architecture for Device Drivers

Vinod Ganapathy, Arini Balakrishnan, Michael M. Swift, Somesh Jha.

Proceedings of the 11th Workshop on Hot Topics in Operating Systems (HotOS XI); pages 85--90; San Diego, California; May 7-9, 2007.

Commodity operating systems achieve good performance by running device drivers in-kernel. Unfortunately, this architecture offers poor fault isolation. This paper introduces microdrivers, which reduce the amount of driver code running in the kernel by splitting driver functionality between a small kernel-mode component and a larger user-mode component. This paper presents the microdriver architecture and techniques to refactor existing device drivers into microdrivers, achieving most of the benefits of user-mode drivers with the performance of kernel-mode drivers. Experiments on a network driver show that 750f its code can be removed from the kernel without affecting common-case performance.

Paper: [ PDF | HTML ] (© USENIX)
Slides: [ Powerpoint | PDF ]

Papers page