Share this page
Share this page E-mail this page Print this page RSS feeds
Home > Projects > SLAM
SLAM

SLAM is a project for checking that software satisfies critical behavioral properties of the interfaces it uses and to aid software engineers in designing interfaces and software that ensure reliable and correct functioning. Static Driver Verifier is a tool in the Windows Driver Development Kit that uses the SLAM verification engine.

What's New?

  • Congratulations to the Driver Quality Team on winning a 2009 Engineering Excellence Award for "Improving Driver Quality thru Static Verification". Jon Hagen, Vlad Levin, Adam Shapiro, Donn Terry, Abdullah Ustuner. PREfast for Drivers scans the driver code for issues with concurrency, proper IRQL handling, and a host of other driver challenges. The Static Driver Verifier simulates a hostile environment and systematically tests all code paths, looking for driver model violations. These complementary tools provide both quick and deep driver testing. Both tools have been adopted broadly within Windows and with third-party developers through MSDN and the Windows Driver Kit.
  • SLAM 2.0 has been transferred to the product group in charge of Static Driver Verifier, replacing the original SLAM engine.

  • The Windows 7 Driver Kit beta is available.

  • SLAM 2.0 uses the Z3 automated theorem prover and contains many advances.
  • Yogi is a new abstraction-refinement engine based on test generation.
  • Developing Drivers with the Windows® Driver Foundation, a Microsoft Press book, is now in print, including a chapter about Static Driver Verifier, which has new rules to enable analysis of drivers written against the Kernel-model Driver Framework API.

 

Downloads

  • Get the Vista Windows Driver Kit (WDK), which includes Static Driver Verifier. Please follow these helpful directions to get the Vista WDK.
  • Static Driver Verifier Rule Development Kit (RDK) for Vista WDK available
    • E-mail rdk_req@microsoft.com to request a copy of the RDK. You need to install the Vista WDK before installing the RDK. See above.
    • The RDK is an extension to Static Driver Verifier (SDV) that allows you to adapt SDV to support additional frameworks (or APIs) and write custom SLIC rules for this framework. The goal of the RDK is to allow researchers to experiment with writing SLIC rules for APIs and to gain experience using the SLAM verification engine that underlies SDV.

 

Papers

History

The SLAM Process

SLAM Specifications

Boolean Programs

Abstraction Refinement

Concurrency

Miscellaneous

 

News

 

Related Projects

People

"Things like even software verification, this has been the Holy Grail of computer science for many decades but now in some very key areas, for example, driver verification we’re building tools that can do actual proof about the software and how it works in order to guarantee the reliability." Bill Gates, April 18, 2002. Keynote address at WinHec 2002