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

[ .doi ] [ .pdf ] [ .bib ]

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}
}

Contact

The University of British Columbia
Department of Computer Science
2366 Main Mall
ICICS Building, Office 341
Vancouver, BC V6T 1Z4
Canada

achreto [at] cs.ubc.ca
+1 604 827 2446