The design of modern operating systems is based around the concept of
memory as a cache for data that flows between applications, storage,
and I/O devices. With the increasing disparity between I/O bandwidth
and CPU performance, this architecture exposes the processor and
memory subsystems as the bottlenecks to system
performance. Furthermore, this design does not easily lend itself to
exploitation of new capabilities in peripheral devices, such as
programmable network cards or special-purpose hardware accelerators,
capable of card-to-card data transfers.

FlowOS is a new operating system architecture that removes the memory
and CPU from the data path. The role of the operating system is simply
that of data-flow management, while applications operate purely at the
signaling level. This design parallels the evolution of modern network
routers, and has the potential to enable high-performance I/O for
end-systems, as well as fully exploit recent trends in programmability
of peripheral (I/O) devices.