Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems 2008
DOI: 10.1145/1346281.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...
3
1
1

Citation Types

0
24
0

Year Published

2009
2009
2020
2020

Publication Types

Select...
4
2
2

Relationship

1
7

Authors

Journals

citations
Cited by 67 publications
(24 citation statements)
references
References 21 publications
0
24
0
Order By: Relevance
“…Nooks maintained and synchronized private copies of kernel objects between the kernel and the isolated driver, however, the synchronization code had to be developed manually. Nooks' successors, Decaf [77] and Microdrivers [32] developed static analysis techniques [77] to generate synchronization glue code directly from the kernel source. Wahbe et al [91] and later XFI [26] and BGI [14] relied on SFI to isolate kernel extensions but were not capable of handling semantically-rich boundary between the isolated subsystem and the kernel.…”
Section: Complexity Of Decompositionmentioning
confidence: 99%
“…Nooks maintained and synchronized private copies of kernel objects between the kernel and the isolated driver, however, the synchronization code had to be developed manually. Nooks' successors, Decaf [77] and Microdrivers [32] developed static analysis techniques [77] to generate synchronization glue code directly from the kernel source. Wahbe et al [91] and later XFI [26] and BGI [14] relied on SFI to isolate kernel extensions but were not capable of handling semantically-rich boundary between the isolated subsystem and the kernel.…”
Section: Complexity Of Decompositionmentioning
confidence: 99%
“…The effects of vulnerabilities on these valid code paths can be mitigated by isolating device drivers from the kernel [27], [34], [38], [50]. Android, for example, switched from the kernel-space Bluetooth protocol stack [12] to a user-space Bluetooth stack [13].…”
Section: A Protection Against Peripheral Attacksmentioning
confidence: 99%
“…Third, some existing methods may need to restructure the OS (eg, Nexus). To address the aforementioned limitations, a novel driver architecture called Microdriver is proposed. In this architecture, a driver is partitioned into a kernel‐mode component (k‐driver) and a user‐mode component (u‐driver).…”
Section: Related Workmentioning
confidence: 99%