The Portable Driver Architecture
The Portable Driver Architecture (PDA) is a microdriver library which enables programming of drivers for PCI devices in user space. It is also optimized for high-throughput and low-latency scenarios. Currently, the PDA supports the following aspects of PCI driver programming:
The main paradigm of microdrivers is, that as most as possible runs in user space. The PDA Linux kernel adapter has only ~1000 lines of code, which are easily maintainable. The PDA is therefore compatible to 30 revisions of the Linux Kernel (2.6.29 - 3.19).
The CRORC will be used to readout the detector of the ALICE experiment. The related driver (librorc) is entirely PDA-Based.
The FLIB is a prototype for a read-out device similar to the CRORC, for reading out the detectors at the CBM experiment. The FLIB driver is also completely ported to the PDA.
 D. Eschweiler and V. Lindenstruth, “Drivers for Device to Device Streaming (accepted for publication),” in Proceedings of the Intl. Conference on Parallel Computing (ParCo), Edinburgh, Scotland, September 2015.
 D. Eschweiler and V. Lindenstruth, “Efficient Management of Large DMA Memory Buffers in Microdrivers,” in Proceedings of the 20th IEEE International Conference on Parallel and Distributed Systems, ICPADS2014, IEEE. IEEE, 12 2014.
 D. Eschweiler and V. Lindenstruth, “The Portable Driver Architecture,” in Proceedings of the 16th Real-Time Linux Workshop. Duesseldorf, Germany: Open Source Automation Development Lab (OSADL), October 2014.
 A. Brinkmann and D. Eschweiler, “A Microdriver Architecture for Error Correcting Codes Inside the Linux Kernel,” in Proceedings of the ACM/IEEE Conference on Supercomputing (SC09). Portland, OR: ACM, 11 2009, pp. 1–10. [Online]. Available: http://dl.acm.org/citation.cfm?id=1654095
Dominic Eschweiler is the PDA maintainer.