This dissertation is dedicated to the problem of device driver reliability. Software defects in device drivers constitute the biggest source of failure in operating systems, causing significant damage through downtime and data loss. Previous research on driver reliability has concentrated on detecting and mitigating defects in existing drivers using static analysis or runtime isolation. In contrast, this dissertation presents an approach to reducing the number of defects through an improved device driver architecture and development process. In analysing factors that contribute to driver complexity and induce errors, I show that a large proportion of errors are due to two key shortcomings in the device-driver architecture enforced by curren...
Device drivers are difficult to write and error-prone. They are usually written in C, a fairly low-l...
The reliability of device drivers is of critical importance to the overall stability of computer sys...
Linux Operating System provides services at various levels; starting from commands to shell, system ...
Current operating systems lack well-defined protocols for interaction with device drivers. We argue ...
<p>Device drivers are Operating Systems (OS) extensions that enable the use of I/O devices in comput...
The driver architecture employed by modern oper-ating systems presents a safety challenge. The devic...
This paper presents a correct-by-construction synthesis method for generating operating system based...
The lack of well-defined protocols for interaction with the operating system is a common source of d...
Run-time conflicts can affect even the most rigorously tested software systems. A reliance on execut...
Writing device drivers takes much time and requires effort because it needs knowledge of the target ...
Despite decades of research in extensible operating system technology, extensions such as device dri...
Device drivers are tedious to write and they are notoriously unreli-able. Automatic device driver sy...
Device drivers are the single largest contributor to operating-system kernel code with over 5 millio...
A device driver is a program routine that links a peripheral device to an operating system of a comp...
Abstract: Developing device drivers is one of the most difficult tasks to develop or port operating ...
Device drivers are difficult to write and error-prone. They are usually written in C, a fairly low-l...
The reliability of device drivers is of critical importance to the overall stability of computer sys...
Linux Operating System provides services at various levels; starting from commands to shell, system ...
Current operating systems lack well-defined protocols for interaction with device drivers. We argue ...
<p>Device drivers are Operating Systems (OS) extensions that enable the use of I/O devices in comput...
The driver architecture employed by modern oper-ating systems presents a safety challenge. The devic...
This paper presents a correct-by-construction synthesis method for generating operating system based...
The lack of well-defined protocols for interaction with the operating system is a common source of d...
Run-time conflicts can affect even the most rigorously tested software systems. A reliance on execut...
Writing device drivers takes much time and requires effort because it needs knowledge of the target ...
Despite decades of research in extensible operating system technology, extensions such as device dri...
Device drivers are tedious to write and they are notoriously unreli-able. Automatic device driver sy...
Device drivers are the single largest contributor to operating-system kernel code with over 5 millio...
A device driver is a program routine that links a peripheral device to an operating system of a comp...
Abstract: Developing device drivers is one of the most difficult tasks to develop or port operating ...
Device drivers are difficult to write and error-prone. They are usually written in C, a fairly low-l...
The reliability of device drivers is of critical importance to the overall stability of computer sys...
Linux Operating System provides services at various levels; starting from commands to shell, system ...