A Type Safe OS Kernel

This project is exploring the use of type safe languages in writing an OS Kernel. The languages use an advanced type systems to prevent data misuse within Kernel memory. The project has focused on the needs of device drivers since studies have shown that these contain most OS bugs.

Formal languages developed in this project include Lambda-low which provides linear access to memory, Lambda-concurrent which adds concurrency support (locks) to Lambda-low, and Laddie (Language for Automated Device Drivers), a specification language for the IO interface used between a driver and a device.

The formal languages are all implemented in concrete languages and actual device driver code has been written in them and run in Linux on a network card. Lambda-low and Lambda-concurrent are implemented in Clay, a C-like imperative language with linear access to memory, arithmetic constraints on function pre- and post-conditions, and concurrency support. After typechecking, Clay compiles to C++. Laddie is implemented as a declarative language which compiles to Clay.

Clay Files

  • Clay compiler (coming eventually), copyright
Laddie Files Publications Tech Reports Presentations

Links

Online Journals: