User-Level Device Drivers: Achieved Performance

@article{Leslie2005UserLevelDD,
  title={User-Level Device Drivers: Achieved Performance},
  author={Ben Leslie and Peter Chubb and Nicholas Fitzroy-Dale and Stefan G{\"o}tz and Charles Gray and Luke Macpherson and Daniel Potts and Yue-Ting Shen and Kevin Elphinstone and Gernot Heiser},
  journal={Journal of Computer Science and Technology},
  year={2005},
  volume={20},
  pages={654-664}
}
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… Expand
Microdrivers: A New Architecture for Device Drivers
TLDR
The microdriver architecture and techniques to refactor existing device drivers into microdrivers are presented, achieving most of the benefits of user- mode drivers with the performance of kernel-mode drivers. Expand
Generic User-Level PCI Drivers
Linux has become a popular foundation for systems with real-time requirements such as industrial control applications. In order to run such workloads on Linux, the kernel needs to provide certainExpand
SIDE: Isolated and efficient execution of unmodified device drivers
  • Yifeng Sun, T. Chiueh
  • Computer Science
  • 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)
  • 2013
TLDR
An isolated device driver execution system called SIDE (Streamlined Isolated Driver Execution), which focuses specifically on unmodified device drivers and strives to avoid changing the existing kernel code as much as possible. Expand
Performance Optimizations for Isolated Driver Domains
(ABSTRACT) In most of today's operating system architectures, device drivers are tightly coupled with other kernel components. In such systems, a fault caused by a malicious or faulty device driverExpand
The design and implementation of microdrivers
TLDR
The Microdrivers architecture is introduced, a tool that achieves high performance and compatibility by leaving critical path code in the kernel and moving the rest of the driver code to a user-mode process, which allows data-handling operations critical to I/O performance to run at full speed, while management operations run at reduced speed in user-level. Expand
U2MDF: A Unified User-Mode Driver Framework
TLDR
Experimental data shows U2MDF not only obtains good performance and compatibility but also provides a unified framework for user-mode device drivers' development. Expand
Design and Overhead Estimation of Device Driver Process
TLDR
A method for constructing device driver as an user process and evaluating these overhead and it is shown that the overhead of device driver process can be estimated. Expand
Device Driver Safety Through a Reference Validation Mechanism
TLDR
This paper describes how to move device drivers out of the trusted computing base, by running them without supervisor privileges and constraining their interactions with hardware devices, by leveraging hardware isolation and checking their behavior against a safety specification. Expand
Tolerating Malicious Device Drivers in Linux
TLDR
SUD incurs a CPU overhead comparable to existing runtime driver isolation techniques, while providing much stronger isolation guarantees for untrusted drivers, which may at last allow the adoption of these ideas in practice. Expand
Fault isolation for device drivers
TLDR
The principles and practice of isolating low-level device drivers in order to improve OS dependability are explored and how fault propagation in the event a bug is triggered can be prevented are explored. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 35 REFERENCES
User Level IPC and Device Management in the Raven Kernel
  • D. Ritchie, G. Neufeld
  • Computer Science
  • USENIX Microkernels and Other Kernel Architectures Symposium
  • 1993
TLDR
The Raven kernel utilizes user level implementation techniques to reduce kernel intervention for many common services, and generates no kernel interactions per iteration in the best case, and two kernel interactions in the worst case. Expand
Nooks: an architecture for reliable device drivers
With the enormous growth in processor performance over the last decade, it is clear that reliability, rather than performance, is now the greatest challenge for computer systems research. This isExpand
Creating user-mode device drivers with a proxy
TLDR
Experimental results show that in many cases, the overhead of moving to user-mode for processing I/O can be masked by the inherent costs of accessing physical devices. Expand
THE FLUKE DEVICE DRIVER FRAMEWORK
TLDR
A framework whose design is based on running device drivers as usermode servers is presented, which resolves the fundamental execution environment mismatch and proposes guidelines for improving device drivers’ portability across different execution environments. Expand
Improving the reliability of commodity operating systems
TLDR
Nooks, a reliability subsystem that seeks to greatly enhance operating system reliability by isolating the OS from driver failures, represents a substantial step beyond the specialized architectures and type-safe languages required by previous efforts directed at safe extensibility. Expand
Two years of experience with a μ-Kernel based OS
TLDR
The basic components of the L3 operating system are described and the experiences of the first two years using it, which results from scientific research, but is addressed to commercial application. Expand
The impact of operating system structure on memory system performance
  • J. Bradley Chen, B. Bershad
  • Computer Science
  • SOSP '93
  • 1993
TLDR
This paper evaluates the memory system behavior of two distinctly different implementations of the UNIX operating system: DEC's Ultrix, a monolithic system, and Mach 3.0 with CMU's UNIX server, a microkernel-based system, showing that the micro kernel- based system executes substantially more non-idle system instructions for an equivalent workload than themonolithic system. Expand
Virtual-Memory-Mapped Network Interfaces
TLDR
Two multicomputer network interfaces are designed that significantly reduce this overhead, allowing user processes to communicate without expensive buffer management and without making system calls across the protection boundary separating user processes from the operating system kernel. Expand
Experiences with a High-Speed Network Adaptor: A Software Perspective
TLDR
The problems the authors encountered while programming OSIRIS and optimizing network performance are identified, and how they either addressed them in the software, or had to modify the hardware. Expand
Extensibility safety and performance in the SPIN operating system
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,Expand
...
1
2
3
4
...