Ulfar Erlingsson, Tom Roeder, and Ted Wobber
We describe how virtualization techniques can be used to address the problems of reliability, security, and backward compatibility in extensible systems. We specify the conditions under which this approach can be applied and present an architecture for its implementation: VEXE, or Virtual EXtension Environments. Further, we detail our experience with implementing VEXE'DD, a system for increasing the reliability of Windows device drivers based on this architecture. This study extends, and puts into context, recent work on reliable extensibility mechanisms.