Towards Untrusted Device Drivers

Device drivers are well known to be one of the prime sources of unreliability in today’s computer systems. We argue that this need not be, as drivers can be run as user-level tasks, allowing them to be encapsulated by hardware protection. In contrast to prior work on user-level drivers, we show that on present hardware it is possible to prevent DMA from undermining this encapsulation. We show that this can be done without unreasonably impacting driver performance.

[1]  Junfeng Yang,et al.  An empirical study of operating systems errors , 2001, SOSP.

[2]  Aled Edwards,et al.  Experiences implementing a high performance TCP in user-space , 1995, SIGCOMM '95.

[3]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[4]  Ben Leslie Mungi device drivers , 2002 .

[5]  Freeman L. Rawson,et al.  An Architecture for Device Drivers Executing as User-Level Tasks , 1993, USENIX MACH Symposium.

[6]  Thu D. Nguyen,et al.  Implementing network protocols at user level , 1993, TNET.

[7]  Michael M. Swift,et al.  Nooks: an architecture for reliable device drivers , 2002, EW 10.

[8]  Dennis Shasha,et al.  Don't trust your file server , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[9]  Tzi-cker Chiueh,et al.  Integrating segmentation and paging protection for safe, efficient and transparent software extensions , 1999, SOSP.

[10]  Jochen Liedtke,et al.  The mungi single‐address‐space operating system , 1998, Softw. Pract. Exp..

[11]  Gernot Heiser,et al.  Components + security = OS extensibility , 2001, Proceedings 6th Australasian Computer Systems Architecture Conference. ACSAC 2001.

[12]  Brian N. Bershad,et al.  Protocol service decomposition for high-performance networking , 1994, SOSP '93.

[13]  Wilson C. Hsieh,et al.  THE FLUKE DEVICE DRIVER FRAMEWORK , 2007 .

[14]  Stefanos Nektarios Damianakis,et al.  Efficient connection-oriented communication on high-performance networks , 1998 .

[15]  Ian A. Pratt The User-Safe Device I/O Architecture , 1997 .