{"title":"既然可以合成地址转换操作系统代码,为什么还要自己编写它呢?","authors":"Reto Achermann, Ilias Karimalis, M. Seltzer","doi":"10.1145/3593856.3595895","DOIUrl":null,"url":null,"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.","PeriodicalId":330470,"journal":{"name":"Proceedings of the 19th Workshop on Hot Topics in Operating Systems","volume":"43 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Why write address translation OS code yourself when you can synthesize it?\",\"authors\":\"Reto Achermann, Ilias Karimalis, M. Seltzer\",\"doi\":\"10.1145/3593856.3595895\",\"DOIUrl\":null,\"url\":null,\"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.\",\"PeriodicalId\":330470,\"journal\":{\"name\":\"Proceedings of the 19th Workshop on Hot Topics in Operating Systems\",\"volume\":\"43 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2023-06-22\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 19th Workshop on Hot Topics in Operating Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3593856.3595895\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 19th Workshop on Hot Topics in Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3593856.3595895","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Why write address translation OS code yourself when you can synthesize it?
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.