, Volume 20, Issue 5, pp 654-664

User-Level Device Drivers: Achieved Performance

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access

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.

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.