Journal of Computer Science and Technology

, Volume 20, Issue 5, pp 654–664 | Cite as

User-Level Device Drivers: Achieved Performance

  • Ben LeslieEmail author
  • Peter Chubb
  • Nicholas Fitzroy-Dale
  • Stefan Götz
  • Charles Gray
  • Luke Macpherson
  • Daniel Potts
  • Yue-Ting Shen
  • Kevin Elphinstone
  • Gernot Heiser
Special Section on Advanced Computer Systems Architecture


Running device drivers as unprivileged user-level code, encapsulated into their own process, has often been proposed as a technique for increasing system robustness. However, in the past, systems based on user-level drivers have generally exhibited poor I/O performance. Consequently, user-level device drivers have never caught on to any significant degree. In this paper we demonstrate that it is possible to build systems which employ user-level device drivers, without significant performance degradation, even for high-bandwidth devices such as Gigabit Ethernet.


device drivers operating systems performance reliability 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Jochen Liedtke, Ulrich Bartling, Uwe Beyer et al. Two years of experience with a μ-kernel based OS. Operating Systems Review, April 1991, 25(2): 51–62.Google Scholar
  2. [2]
    Alessandro Forin, David Golub, Brian Bershad. An I/O system for Mach 3.0. In Proc. the USENIX Mach Symposium, 1991.Google Scholar
  3. [3]
    Stephen R Schach, Bo Jin, David R Wright, Gillian Z Heller, A Jefferson Offutt. Maintainability of the Linux kernel. In IEE Proceedings, Software, 2002, 149: 18–23.Google Scholar
  4. [4]
    Thorsten von Eicken, Anindya Basu, Vineet Buch, Werner Vogels. U-Net: A user-level network interface for parallel and distributed computing. In Proc. the 15th ACM Symp. OS Principles, Copper Mountain, CO, USA, Dec. 1995, pp.40–53.Google Scholar
  5. [5]
    Andy Chou, Jun-Feng Yang, Benjamin Chelf, Seth Hallem, Dawson Engler. An empirical study of operating systems errors. In Proc. the 18th ACM Symp. OS Principles, Lake Louise, Alta, Canada, Oct. 2001, pp.73–88.Google Scholar
  6. [6]
    Michael M Swift, Steven Marting, Henry M Levy, Susan G Eggers. Nooks: An architecture for reliable device drivers. In Proc. the 10th SIGOPS European Workshop, St Emilion, France, Sept. 2002, pp.101–107.Google Scholar
  7. [7]
    George Candea, Armando Fox. Recursive restartability: Turning the reboot sledgehammer into a scalpel. In Proc. the 8th Workshop on Hot Topics in Operating Systems, 2001, pp.125–130.Google Scholar
  8. [8]
    Brian N Bershad, Stefan Savage, Przemysław Pardyak et al. Extensibility, safety and performance in the SPIN operating system. In Proc. the 15th ACM Symp. OS Principles, Copper Mountain, CO, USA, Dec. 1995, pp.267–284.Google Scholar
  9. [9]
    Margo I Seltzer, Yasuhiro Endo, Christopher Small et al. Dealing with disaster: Surviving misbehaved kernel extensions. In Proc. the 2nd USENIX Symp. Operating Systems Design and Implementation, Nov. 1996, pp. 213–228.Google Scholar
  10. [10]
    Robert Wahbe, Steven Lucco, Thomas E Anderson, Susan L Graham. Efficient software-based fault isolation. In Proc. the 14th ACM Symp. OS Principles, Asheville, NC, USA, Dec. 1993, pp.203–216.Google Scholar
  11. [11]
    George C Necula, Peter Lee. Safe kernel extensions without run-time checking. In Proc. the 2nd USENIX Symp. Operating Systems Design and Implementation, Seattle, WA, USA, Oct. 1996, pp.229–243.Google Scholar
  12. [12]
    David Maziéres, Dennis Shasha. Don't trust your file server. In Proc. the 8th Workshop on Hot Topics in Operating Systems, Elmau, Germany, May 2001, pp.113–118.Google Scholar
  13. [13]
    Digital Equipment Corporation. DIGITAL Semiconductor 21174 Core Logic Chip Technical Reference Manual, 1997.Google Scholar
  14. [14]
    Michael M Swift, Brian N Bershad, Henry M Levy. Improving the reliability of commodity operating systems. In Proc. the 19th ACM Symp. OS Principles, Bolton Landing (Lake George), New York, USA, Oct. 2003.Google Scholar
  15. [15]
    J Bradley Chen, Brian N Bershad. The impact of operating system structure on memory system performance. In Proc. the 14th ACM Symposium on OS Principles, Asheville, NC, USA, Dec. 1993, pp.120–133.Google Scholar
  16. [16]
    David B Golub, Guy G Sotomayor Jr, Freeman L Rawson III. An architecture for device drivers executing as user-level tasks. In Proc. the USENIX Mach III Symposium, 1993, pp.153–171.Google Scholar
  17. [17]
    D Stuart Ritchie, Gerald W Neufeld. User level IPC and device management in the Raven kernel. In Proc. the 2nd USENIX Workshop on Microkernels and other Kernel Architectures, San Diego, CA, USA, Sept. 1993, pp.111–125.Google Scholar
  18. [18]
    Galen C Hunt. Creating user-mode device drivers with a proxy. In Proc. the 1st USENIX Windows NT Workshop, 1997.Google Scholar
  19. [19]
    Kevin Thomas Van Maren. The Fluke device driver framework [Thesis]. University of Utah, Dec. 1999.Google Scholar
  20. [20]
    Lambert Schaelicke. Architectural support for user-level I/O [Dissertation]. University of Utah, 2001.Google Scholar
  21. [21]
    Ian A Pratt. The user-safe device I/O architecture [Dissertation]. King's College, University of Cambridge, Aug. 1997.Google Scholar
  22. [22]
    Peter Druschel, Larry L Peterson, Bruce S Davie. Experiences with a high-speed network adaptor: A software perspective. In Proc. the ACM Conf. Communications, Sept. 1994, pp.2–13.Google Scholar
  23. [23]
    Nanette J Boden, Danny Cohen, Robert E Felderman et al. Myrinet: A gigabit-per-second local-area network. IEEE Micro, 1995, 15(1): 29–36.CrossRefGoogle Scholar
  24. [24]
    Matthias A Blumrich, Cezary Dubnicki, Edward W Felten et al. Virtual-memory-mapped network interfaces. IEEE Micro, 1995, 15(1): 21–28.CrossRefGoogle Scholar
  25. [25]
    Greg Buzzard, David Jacobson, Milon Mackey et al. An implementation of the Manlyn sender-managed interface architecture. In Proc. the 2nd Symposium on Operating Systems Design and Implementation, Seattle, WA, USA, Oct. 1996, pp.245–259.Google Scholar
  26. [26]
    Ian Pratt, Keir Fraser. Arsenic: A user-accessible Gigabit Ethernet Interface. In Proc. the 20th IEEE INFOCOM, April 2001.Google Scholar
  27. [27]
    Tzi-cher Chiueh, Ganesh Venkitachalam, Prashant Pradhan. Integrating segmentation and paging protection for safe, efficient and transparent software extensions. In Proc. the 17th ACM Symp. OS Principles, Kiawah Island, SC, USA, Dec. 1999, pp.140–153.Google Scholar

Copyright information

© Springer Science + Business Media, Inc. 2005

Authors and Affiliations

  • Ben Leslie
    • 1
    Email author
  • Peter Chubb
    • 1
  • Nicholas Fitzroy-Dale
    • 1
  • Stefan Götz
    • 2
  • Charles Gray
    • 1
  • Luke Macpherson
    • 1
  • Daniel Potts
    • 1
  • Yue-Ting Shen
    • 1
  • Kevin Elphinstone
    • 1
  • Gernot Heiser
    • 1
  1. 1.National ICT Australia and School of Computer Science and EngineeringUniversity of New South WalesSydneyAustralia
  2. 2.Wilhelm-Schickard-Institute for Computer ScienceUniversity of TübingenTübingenGermany

Personalised recommendations