Message-passing interfaces to disks
Summary:
Expose a message-passing interface to disks and similar devices in Barrelfish, and integrate it transparently into the existing inter-process communication system.
Motivation:
Disk drives are increasingly intelligent devices, which can handle a large number of outstanding requests at a time. However, communication with a disk driver remains a fairly high-latency operation due to seek times, etc. This project will investigate the consequences of making a disk look like an existing OS process, and communicating with it using standard IPC interfaces.
Goals:
Build an interface to a set of disks (for example, starting with a relatively simple adaptor interface such as SATA) which is addressed using the same abstractions and stubs as Barrelfish already uses for inter-process communication. Above this, write (or port) a simple storage or file system to enable performance measurements and support application workloads.
The research goal is to establish the tradeoff involved in talking to a disk in this way, as opposed to the more conventional approach taken in (say) Linux device drivers.
Background:
Device drivers. C, Haskell (for the stub compiler). Asynchronous (event-driven) programming. File systems.
Previous:
Shared memory as a service



