The Haskell Lightweight VM
Presented as part of the 2007 HCSS conference.
Abstract
This talk describes the design and implementation of the Haskell Lightweight Virtual Machine, or HALVM. The HALVM is a port of the Glasgow Haskell Compiler’s runtime system to the Xen paravirtualizing hypervisor, along with custom libraries for interacting with the console, disk, network card, memory management, other virtual machines on the same physical hardware, etc.. The HALVM has allowed us to write device drivers, rendezvous services, and other low-level software in a language with type safety, powerful language constructs, and garbage collection. Additionally, most of the libraries are written in modular Haskell, allowing developers to easily pick and choose which libraries to include in their binaries based on their needs and allowing us to produce high-quality, high-level support libraries in small amounts of time.
The HALVM design goals include a small footprint, extensible functionality, high-level programmer abstractions (e.g., for writing new device drivers), acceptable performance, and a roadmap towards higher assurance. We describe how these goals are met by the current architecture as well as future plans. Time permitting, a demonstration will be given.