Reto Achermann
Assistant Professor
Systopia Lab
Department of Computer Science
University of British Columbia
Why write address translation OS code yourself when you can synthesize it?
Authors
Reto Achermann, Ilias Karimalis and Margo Seltzer
Venue
Proceedings of the 19th Workshop on Hot Topics in Operating Systems (HotOS'23)
Links
Abstract
Address translation hardware is at the cornerstone of modern computer systems. It provides a wide range of security-relevant features and abstractions such as memory partitioning, address space isolation, and virtual memory. Hardware designers have developed different memory protection schemes with varying features and means of configuration.
Correct configuration is mission-critical for a system's integrity. It is the operating system's task to safely and securely manage and configure the memory hardware of a compute platform - a task that operating systems developers must repeat for every new memory hardware unit.
We present a new approach that frees the OS programmer from writing system code to set up and configure translation hardware. We leverage software synthesis to automatically generate correct systems code that interfaces with translation hardware to create or modify memory mappings from a high-level, behavioral specification.
By synthesizing correct, low-level systems code from a high-level specification we make it easier to port operating systems and facilitate incorporating accelerators into existing systems. Moreover, we believe that our system can generate actual and simulated hardware components enabling research in new memory translation and protection schemes.
Bibtex
@inproceedings{Achermann:2023:WWA, author = {Achermann, Reto and Karimalis, Ilias and Seltzer, Margo}, booktitle = {Proceedings of the 19th Workshop on Hot Topics in Operating Systems}, doi = {10.1145/3593856.3595895}, id = {Achermann:2023:WWA}, isbn = {979-8-4007-0195-5}, location = {Providence, Rhode Island, USA}, pages = {174--180}, publisher = {Association for Computing Machinery}, series = {HotOS'23}, title = {Why write address translation OS code yourself when you can synthesize it?}, url = {https://doi.org/10.1145/3593856.3595895}, year = {2023} }