Twizzler: A Data-Centric OS for Non-volatile Memory
Abstract: The introduction of byte-addressable non-volatile memory on the memory bus promises upheaval in the data access model of applications and in the consistency support requirements of processors. Operating systems, too, must be ready for an evolution in how they provide applications with access to persistent data, how they handle security and access control for applications, and how they manage and persist kernel and application state across power interruptions. An OS that provides effective support for applications accessing these memories can be called data-centric, where the context for data access is associated with the data, as opposed to process-centric, where that context is associated with ephemeral processes.
Twizzler, a new operating system designed for non-volatile memory, is our answer to these challenges. It addresses the above by presenting applications and middleware with an access model for persistent memory based around direct persistent data access with minimal kernel involvement in a single-level store fashion. We take inspiration from MULTICS and provide applications with the power to follow pointers across objects in the system without the need to use archaic I/O models to copy and buffer data. Twizzler implements access control in a distributed computing friendly way by using signed capabilities, can isolate components of an application from each other to improve security and enable fault isolation, and uses a verification scheme to protect object contents. Twizzler's kernel is designed to read, update, and persist kernel state across power interruptions by using kernel state objects, allowing the system to resume its previous state with minimal interruptions when restarted. Finally, Twizzler presents a single-address space to the system’s hardware components, protecting data from hardware the same way it is protected from applications, allowing more efficient and autonomous use of hardware components that can offload processing and I/O from the CPU.
In the past 6 months, we have further developed the Twizzler kernel and userspace, extending out our support for applications. We have started expanding into several projects, including networking and distributed applications supported by Twizzler, and Twizzler's security model. A paper on Twizzler was accepted at ATC, and we received very positive feedback. Our work includes new designs and plans for novel OS security models that will better secure applications, and new directions on networking.
Wednesday, January 20, 2021 at 3:00 PM