The operating system (OS) has a triple role of providing a stable virtual machine for portability and hardware-independence, virtualizing and multiplexing physical resources, and providing protection and security. OSes provide an interface that minimizes the tension between these roles, but this interface limits the system's ability to evolve OS abstractions for functionality and efficiency while maintaining backwards compatibility. Increasing hardware heterogeneity and a diversity of application requirements puts renewed pressure on the need to address this limitation.
We propose giving users the ability to create and expose higher level OS abstractions that are adaptable to heterogeneous environments and differing application demands. Our extensions consist of a new execution environment (doodle space) and a new system API (the doodle API) that is only accessible from doodle space. Programs in doodle space (doodles) run in supervisor mode but are restricted from unprotected memory access. Doodles may be used to create compositions of existing system calls, which circumvents the latency system call latency limitations, or they may employ the doodle API for richer functionality. With the API, we introduce new abstractions that allow for new modes of isolation, finer grained access to system abstractions (e.g., virtual memory), and support for computation across heterogeneous hardware. We will describe this API and how doodles can use it to export new abstractions that allow for more diversity in security, performance, or hardware properties than the existing system call interface readily permits.
Dept. rep: Dr. Furong Huang
Members: Dr. Paul Francis
Dr. Peter Druschel
Dr. Neil Spring