Publication: Toward Automatic Operating System Ports via Code Generation and Synthesis
No Thumbnail Available
Date
2020-05-14
Authors
Published Version
Published Version
Journal Title
Journal ISSN
Volume Title
Publisher
The Harvard community has made this article openly available. Please share how this access benefits you.
Citation
Holland, David Andrew. 2020. Toward Automatic Operating System Ports via Code Generation and Synthesis. Doctoral dissertation, Harvard University, Graduate School of Arts & Sciences.
Research Data
Abstract
Porting operating systems is expensive. Recent developments in formal specifications of machine architectures and in program synthesis have made it possible to consider generating code for operating system ports rather than needing to write it by hand. Several challenges arise, the foremost being the current scaling limits of program synthesis for assembly language.
In this dissertation I take a system-level approach to generating ports of a small operating system. I present Aquarium, an ecosystem of languages and tools I designed to surround an assembly language synthesis engine. Chief among these are Grayling, a special-purpose compiler for context switch code, and Grouper, a tool implementing an approach I call compositional code generation, generating code in units of small synthesizable blocks. I have deployed these tools in the context of a simple though realistic operating system called Goldfish, and successfully generated working code for a number of machine-dependent operating system components.
Description
Other Available Sources
Keywords
program synthesis, formal methods, operating systems, portability
Terms of Use
This article is made available under the terms and conditions applicable to Other Posted Material (LAA), as set forth at Terms of Service