Title :
Device Mechanism: A Structured Device Driver Development Approach
Author :
Silva, Raul Schmidlin Fajardo ; Marcus, Guillermo
Author_Institution :
Dept. for Applic. Specific Comput., Univ. of Heidelberg, Heidelberg, Germany
Abstract :
Drivers are responsible for the majority of the operating system failures. An increased number of devices leads to higher driver reuse without consistently applying code reuse techniques, creating operating failures. We improve driver design and code reuse in device drivers by the separation of policy and mechanism. The device mechanism is a unique interface giving access to the functionality implemented in the device, while the policy uses the mechanism to implement the features required by the operating system. Furthermore, the mechanism adds semantically defined structures that describe the access to the hardware. As a case study, we define the device mechanism for an existing web cam driver in both user- and kernel-space variants. The resulting code enabled us to avoid two known implementation bugs, and uncover another one previously unknown. Register accesses are augmented with permission controls and access rules at the cost of increased code length and memory footprint, but without adversely affecting the performance of the device and the driver.
Keywords :
device drivers; program debugging; Web cam driver; access rules; code length; code reuse; device mechanism; device policy; driver design; implementation bugs; kernel-space variants; memory footprint; operating system failures; permission controls; register access; structured device driver development approach; user-space variants; Hardware; Operating systems; Registers; Universal Serial Bus; XML; Device Driver; Domain Specific Languages; Fault Prevention; Hardware/Software Codesign; Reliability;
Conference_Titel :
High-Assurance Systems Engineering (HASE), 2012 IEEE 14th International Symposium on
Conference_Location :
Omaha, NE
Print_ISBN :
978-1-4673-4742-6
DOI :
10.1109/HASE.2012.20