Skip to main content
Log in

User-Level Device Drivers: Achieved Performance

  • Special Section on Advanced Computer Systems Architecture
  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  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. Alessandro Forin, David Golub, Brian Bershad. An I/O system for Mach 3.0. In Proc. the USENIX Mach Symposium, 1991.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  13. Digital Equipment Corporation. DIGITAL Semiconductor 21174 Core Logic Chip Technical Reference Manual, 1997.

  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.

  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.

  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.

  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.

  18. Galen C Hunt. Creating user-mode device drivers with a proxy. In Proc. the 1st USENIX Windows NT Workshop, 1997.

  19. Kevin Thomas Van Maren. The Fluke device driver framework [Thesis]. University of Utah, Dec. 1999.

  20. Lambert Schaelicke. Architectural support for user-level I/O [Dissertation]. University of Utah, 2001.

  21. Ian A Pratt. The user-safe device I/O architecture [Dissertation]. King's College, University of Cambridge, Aug. 1997.

  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.

  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.

    Article  Google Scholar 

  24. Matthias A Blumrich, Cezary Dubnicki, Edward W Felten et al. Virtual-memory-mapped network interfaces. IEEE Micro, 1995, 15(1): 21–28.

    Article  Google Scholar 

  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.

  26. Ian Pratt, Keir Fraser. Arsenic: A user-accessible Gigabit Ethernet Interface. In Proc. the 20th IEEE INFOCOM, April 2001.

  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.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ben Leslie.

Additional information

National ICT Australia is funded by the Australian Government's Department of Communications, Information Technology, and the Arts and the Australian Research Council through Backing Australia's Ability and the ICT Research Centre of Excellence programs.

Ben Leslie is a Ph.D. candidate at the University of NSW, Australia, and programmer for National ICT Australia. His research area is micro-kernel based systems design.

Peter Chubb is a senior research engineer at National ICT Australia and a research officer at UNSW. He completed his Ph.D. under Associate Professor John Lions in 1989. Dr. Chubb worked at Softway Pty Ltd. as a consultant and software engineer doing UNIX kernel, security, and embedded work. He joined Gelato@UNSW at its inception in 2002.

Nicholas FitzRoy-Dale is a Ph.D. candidate at the University of New South Wales. His interests include component architectures, embedded operating systems, and combining the two with a minimum of pain.

Stefan Götz is a Ph.D. candidate at University of Tübingen, Germany. His area of research is in the areas of distributed and peer-to-peer systems. He received his M.S. degree in 2003 from the University of Karlsruhe, Germany.

Charles Gray is currently a Ph.D. candidate in the School of Computer Science and Engineering at the University of New South Wales. His supervisor is Professor Gernot Heiser. Charles received the B.Sc. degree (Hons) in computer science from the University of New South Wales in 2002.

Luke Macpherson is a Ph.D. candidate in the School of Computer Science and Engineering, at the University of New South Wales. He received the B.Sc. degree (Hons) in computer science from the University of New South Wales. His interests include networked operating system performance.

Daniel Potts is a Ph.D. candidate in the School of Computer Science and Engineering at the University of New South Wales. Daniel received the B.E. degree in computer engineering from the University of New South Wales in 2000. His interests are distributed systems, microkernel-based systems and user-level device drivers.

Yue-Ting Shen was awarded a bachelors degree in electronic communication from Taiyuan University of Technology, China, and in 2001, earned a masters degree in electronic communication from Dalian University of Technology, China. In Feb. 2004, she joined in the ERTOS group of NICTA as a research assistant, where she has been working on user-level device drivers and locally developed operating systems Mungi and Iguana. She also spent two years with Alcatel Shanghai Bell in the telecommunication research and development group as a software and test engineer. Before this she was an associate lecturer in the Computer Science Department of Huabei University of Technology, China. Her research interests include data communication, microkernel and single-address-space operating systems, and user-level device driver.

Kevin Elphinstone is a senior lecturer in the School of Computer Science and Engineering, at the University of New South Wales, and a senior researcher with National ICT Australia. He received his B.Sc. degree in computer science, B.E. degree in electrical engineering, and Ph.D. degree in computer science all from the University of New South Wales. He has been a visiting scientist at the IBM TJ Watson Research Center, NY, USA, and a research associate at the University of Karlsruhe, Germany. His interests include operating systems, microkernel-based systems and security.

Gernot Heiser received his B.Sc. degree in physics from the University of Freiburg, his M.Sc. degree in physics from Brock University, and his Ph.D. degree in computer engineering from ETH Zurich. In 1991 he joined the faculty at the University of New South Wales, since 2001 holding the Operating Systems Chair. He joined National ICT Australia at its creation in 2001 as the leader of the Embedded, Real-Time and Operating Systems Program. He also leads the Gelato@UNSW team, part of the world-wide Gelato.org federation which aims to improve Linux on Itanium. Dr. Heiser's current research interests are in the area of operating systems for secure and trustworthy embedded systems, and specifically the use of microkernels as the core of a minimal trusted computing base for such systems. He is also interested in performance and scalability of high-end computing systems. In the past he has made contributions to the numerical modelling of silicon solar cells.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Leslie, B., Chubb, P., Fitzroy-Dale, N. et al. User-Level Device Drivers: Achieved Performance. J Comput Sci Technol 20, 654–664 (2005). https://doi.org/10.1007/s11390-005-0654-4

Download citation

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11390-005-0654-4

Keywords

Navigation