Brussels / 2 & 3 February 2013


ZIO: a framework for high capacity I/O

ZIO is framework for the Linux kernel, meant to support development of drivers for high performance I/O devices; it provides tools for easy and fast driver development. It is hosted on, where it has a public git repository, mailing list and the usual other goodies. ZIO is already in active use in a few big laboratories.

The purpose of this talk is explaining the main features of the framework:

  • Use of a "block" abstraction, which includes data and meta-data. This allows transferring large amounts of I/O samples while preserving complete description of what the data is.

  • Generalized management and monitoring of data and meta-data.

  • Complete symmetry between the input and output data flows.

  • Use of the Linux bus abstraction, to support several devices of the same type.

  • Centralization of the locking policy within the framework. This relieves the developer from most lock-related headaches.

  • Modular design: buffers, triggers and hardware drivers are all independent one another. Users can choose the buffer and trigger type at run time for each peripheral device.

  • Export of device attributes through the sysfs interface (no ioctl);.


Federico Vaga
Alessandro Rubini