Arrakis: The Operating System is the Control Plane

Peter, Li, Zhang, Ports, Woos, Krishnamurthy, Anderson, Roscoe (2014)

What kind of paper is this?

The Story

Today's stacks are deeply layered and introduce overhead

Virtual IO


Arrakis Architecture

Implementation Details

  • Device Emulation: To run Arrakis without smart devices, use a core on the processor to play the role of the smart device.
  • Control Plane Interface: Key abstractions: virtual interface cards, doorbells, filters, Virtual Storage adapters, and rate specifiers.
  • Filters are implemented using barrelfish capabilities.
  • VSAs implement the file system on storage devices; an application can choose to export the names it uses to the VFS.
  • Arrrakis provides standard POSIX APIs as well as Arrakis native APIs (mostly for 0-copy).
  • Async notification (virtualized HW interrupts) are delivered via doorbells, which are exposed through conventional APIs, e.g., select.
  • Based on Barrelfish, but extended with user-level network stack (Extaris), POSIX threads, POSIX sockets, epoll, Caladan (persistent data structures), etc.



    What did I like?

    1. Getting the OS out of the way for data operations has repeatedly been shown to be a win.
    2. Designing for idealized HW also makes the OS way easier to deal with.