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 ohwr.org, 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);.
Speakers: Federico Vaga Alessandro Rubini