Abstract We describe a monadic interface to low-level hardware features thatis a suitable basis for building operating systems in Haskell. The interface includes primitives for controlling memory managementhardware, user-mode process execution, and low-level device I/O. The interface enforces memory safety in nearly all circumstances.Its behavior is specified in part by formal assertions written in a programming logic called P-Logic. The interface has been imple-mented on bare IA32 hardware using the Glasgow Haskell Compiler (GHC) runtime system. We show how a variety of simple O/Skernels can be constructed on top of the interface, including a simple separation kernel and a demonstration system in which the ker-nel, window system, and all device drivers are written in Haskell
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.