2008
DOI: 10.1145/1353536.1346303
|View full text |Cite
|
Sign up to set email alerts
|

The design and implementation of microdrivers

Abstract: Device drivers commonly execute in the kernel to achieve high performance and easy access to kernel services. However, this comes at the price of decreased reliability and increased programming difficulty. Driver programmers are unable to use user-mode development tools and must instead use cumbersome kernel tools. Faults in kernel drivers can cause the entire operating system to crash. Usermode drivers have long been seen as a solution to this problem, but suffer from either poor performance or new interfaces… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

1
41
0

Year Published

2009
2009
2017
2017

Publication Types

Select...
6
2

Relationship

2
6

Authors

Journals

citations
Cited by 25 publications
(42 citation statements)
references
References 13 publications
1
41
0
Order By: Relevance
“…Existing program partitioning tools statically partition user mode code or move driver code to user mode [16]. FGFT is the first system to partition programs within the kernel and is hence able to provide partitioning benefits to kernel specific components such as interrupt delivery and critical I/O path code.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Existing program partitioning tools statically partition user mode code or move driver code to user mode [16]. FGFT is the first system to partition programs within the kernel and is hence able to provide partitioning benefits to kernel specific components such as interrupt delivery and critical I/O path code.…”
Section: Related Workmentioning
confidence: 99%
“…Faulty device drivers cause many reliability issues in these systems [8,37]. Hence, there has been significant research to tolerate driver failures using programming-language and hardware-protection techniques [3,6,15,16,23,26,46]. These systems execute the entire driver as a single isolated component.…”
Section: Introductionmentioning
confidence: 99%
“…SafeDrive [25] improves kernel extension reliability by adding type-based checking to driver code and enforcing runtime memory safety. In order to leverage user level programming tools and reduce kernel level faults introduced by drivers, Microdriver [26] partitions an existing driver into a kernel level driver handling performance critical tasks and a user level driver processing low-performance issues. The Nexus [27] operating system moves the device driver to user space and it leverages devicespecific reference monitors to validate that all the interactions between drivers and devices conform to safety specifications.…”
Section: Related Workmentioning
confidence: 99%
“…However, SUD cannot be applied to the hosted hypervisors such as KVM simply because that hardware virtualization extension (e.g., Intel VT) is not constrained by the IOMMU or other hardware mechanisms that SUD relies on. Microdrivers [15] reduces device driver's TCB in the kernel by slicing the driver into a privileged performancecritical kernel part and the remaining unprivileged user part. RVM [41] executes device drivers in the user space and uses a reference monitor to validate interactions between a driver and its corresponding device.…”
Section: Related Workmentioning
confidence: 99%