Recovering device drivers

Principal Investigator: Brian Bershad

Improving reliability is one of the greatest challenges for operating systems (OS). System failures are commonplace in machines with operating systems in the home, in the server room, and in embedded systems. At the low end, failures lead to user frustration and lost sales. At the high end, an hour of downtime from a system failure can result in losses in the millions. Most of these system failures are caused by the operating system’s device drivers. Failed drivers cause 85% of Windows XP crashes, while Linux drivers have seven times the bug rate of other kernel code. A failed driver typically causes the application, the OS kernel, or both to crash or stop functioning. Hence, preventing driver-induced failures improves overall system relia

The inventors have developed a new mechanism, called a shadow driver, which improves overall system reliability by concealing a driver’s failure from its clients while recovering from the failure. During normal operation, the shadow tracks the state of the real driver by monitoring all communication between the kernel and the driver. When a failure occurs, the shadow inserts itself temporarily in place of the failed driver, servicing requests on its behalf. While shielding the kernel and applications from the failure, the shadow driver restores the failed driver to a state in which it can resume processing requests.


• The shadow driver can be used to maintain application integrity when device drivers fail. 

• This method is also useful in handling the failures of other types of software modules (e.g. media players with plug-in decoders). 


• Keeps applications running when a driver fails. 

• Imposes relatively little performance overhead. 

• Works consistently across device driver implementations.

For more info, contact: Laura Dorsey

  • swap_vertical_circlelibrary_booksReferences (1)
    1. Michael M. Swift, Muthukaruppan Annamalai, Brian N. Bershad, and Henry M. Levy (2004), Recovering Device Drivers, Proc. of the 2004 Symposium on Operating Systems Design and Implementation
  • swap_vertical_circlecloud_downloadDownloads (0)
    Files marked with an asterix (*) can only be downloaded by users that have the appropriate product licence. The license must be active and you must be logged into your account.