10 Years of the Industrial I/O Kernel Subsystem
summary
Ten years of the Industrial I/O subsystem trace a practical evolution: it starts as a sensors-on-athletes hack and grows into a kernel API that now supports over 260 drivers and 512 contributors, moved from three staging drivers after three years and peaks of ~20 drivers per release. Design choices are concrete: uses sysfs for metadata, character devices + kfifo buffering and triggers for synchronized samples, and an in-kernel consumer API for SoC ADCs. Known problems include unit/index ABI mistakes, limited DMA-buf support for high-rate devices, and ongoing work to decouple the userspace interface.
AI-written summary · about
chapters (12)
- 0:00Introduction and overview
- 1:53History and origins
- 5:19Device scope and types
- 8:05Interface principles
- 10:11I/O architecture
- 14:58Triggers and buffering
- 17:49Design flexibility
- 21:32API design mistakes
- 26:00High-performance challenges
- 28:57Complexity and proprietary data
- 30:24Community and contribution
- 38:00Getting involved
related talks
37mIndustrial IO and You- Nonsense Hacks!
44mIndustrial I/O and You: Nonsense Hacks!
46mSensor Data Acquisition With Linux's IIO Subsystem and Libiio
35mCompound Interest - Dealing with Two Decades of Technical Debt in Embedded...
33mDo It Faster: How We Supercharged Linux To Work With Blazing Fast ADCs for IIO
51mPanel Discussion: Industrial Linux Beyond 2022
34mio_uring in the Automotive World
32mLinux I2C in the 21st Century
