Velosiraptor: Code Synthesis for Memory Translation
Reto Achermann, Em Chu, Ryan Mehri, Ilias Karimalis, Margo Seltzer
cs.OS, cs.CR, cs.PL
Submitted: 2026-08-08
Updated: 2026-08-11
Comments: ASPLOS '25, Rotterdam, Netherland
Journal ref: Proceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2 (ASPLOS '25), March 30-April 3, 2025, Rotterdam, Netherlands
Code: https://github.com/ubc-systopia/velosiraptor-asplos25-artifact
Project page: https://www.arm.com
License: http://creativecommons.org/licenses/by/4.0/
The gist: Security is among the top concerns of operating system (OS) developers.
Terminology
Abstract
Security is among the top concerns of operating system (OS) developers. A secure runtime environment relies on the OS to correctly configure the memory hardware on which it runs. This is mission-critical as it provides essential security-relevant features and abstractions that ensure the integrity and isolation of untrusted applications running alongside each other. Configuring a platform's memory hardware is not a one-off effort as designers constantly develop new mechanisms for translation and protection with different features and means of configuration. Adapting the OS code to the new hardware is not only a manual, repetitive and time consuming task, it may also introduce subtle, but security critical bugs that break security and isolation guarantees. We present Velosiraptor, a system that automatically generates correct, low-level OS code that programs the memory hardware of a machine. Velosiraptor leverages software synthesis techniques and exploits the domain specificity of the problem to make the synthesis process efficient. With Velosiraptor, developers write only a high-level description of the memory hardware's mapping behavior and OS environment. The Velosiraptor toolchain transforms this specification into a verified implementation that can be linked directly with the rest of the operating system. Incorporating the OS environment into this process allows porting an OS to new hardware platforms without worrying about writing code to configure the memory hardware. We can also use the same specification to generate hardware components. This enables research in new translation mechanisms, freeing up OS developers from manually writing OS code.
Related papers
- MemSpec: Memory-Aware Runtime for Adaptive Draft Scheduling in Speculative Decoding on Edge Devices
- USB Differentiated Service for Networked Cyber-Physical Systems
- Callosal: Rethinking the Kernel Page Cache for Disaggregated Storage and Memory
- SARIA: Persistence-Aware KV Caching with Coordinated DRAM--SSD Reload for LLM Agents
- Breaking the Coupling: Efficient Concurrency Fuzzing for Linux Kernel Data Race Detection
- CXLResume: Retained-State Checkpoint and Restore for In-Memory Services