SafeDrive - Safe and Recoverable Extensions Using Language-Based Techniques

SafeDrive is a project to improve reliability of software extensions, in particular, Linux device drivers. It brings fine-grained memory safety, enjoyed mainly by "memory-safe" languages like Java, to extensions written in C. SafeDrive achieves this using Deputy, a source-to-source transformation tool, and requires light annotations on kernel headers and driver source code. In addition to memory-safety, SafeDrive employs a light-weight recovery system that restores kernel invariants when a driver fails so that the system can continue to work in the face of driver failures.


Faculty George Necula
Eric Brewer
Researcher Rob Ennals (Intel Research Berkeley)
Graduate Students Feng Zhou
Jeremy Condit
Zachary Anderson
Ilya Bagrak
Matt Harren


Software Downloads

These drops are used in the OSDI '06 paper.
  • Deputy source-to-source compiler: deputy-060912.tar.gz. (A more recent version of Deputy is available at the Deputy web site.)
  • SafeDrive, including kernel patch, headers and several drivers: safedrive-060912.tar.gz.
    For instructions, read the SafeDrive how-to (also available in the package in doc dir)
  • Compile-time fault injection tool. This works either as a stage in Deputy, or part of CIL. In the latter case it is a general-purpose fault injection tool for C programs. ctswifi-060912.tar.gz
  • Links

  • UWashington: The Nooks project
  • MSR: The Gleipnir Software Security Mitigation Project (in particular XFI)

  • Page maintained by Feng Zhou, last modified: $Id: index.html,v 1.2 2006-09-13 09:40:53 zf Exp $.