> It's also something that has been at the back of my head for some time now. All those processing services share many traits with plain software libraries. Maybe they should be abstracted that way, behind a layer of user-mode library code. And maybe in this case, Linus should consider to lower the standard of never breaking ABI compatibility. At least until an stable standard emerges.
Or perhaps the way to go would to be a versioned ABI. You create version 1 which supports the needs of currently known devices along with needs that near-future devices are likely to have, you expand it (1.1) as additional needs emerge and you add an incompatible version 2 (without dropping version 1) when a generation of devices emerges that are too different to comfortably fit version 1. User space then has a limited number of clearly defined ABIs to support while the kernel developers can concentrate on real usage cases without having to create a needlessly flexible/complex ABI.