>How I understand it - and I could need some clarification from the >real driver pros - one of the goals of ALSA was to modularize driver >architecture and get more tasks away from the kernel to user land or >expressed another way: abstract software design from hardware design. >This in turn should make it easier to write drivers for ALSA or maybe >easier to write drivers that provide more functionality? > >Am I describing this somehow correctly?
almost. i think it would be more accurate to say "easier to write drivers for ALSA and easier to provide additional functionality in userspace via alsa-lib". IMHO the core idea of ALSA is to limit drivers to simply exporting the capabilities of the hardware up to user space, and leaving it to alsa-lib to do various things with that. this is quite different to OSS, in which all the action is in the kernel. in addition, a lot of code in the kernel is shared between drivers. but note: compared to OS X, writing drivers for ALSA is still disturbingly complex. this is mostly due to OS X's use of C++ within the kernel, and so there's not much ALSA can do about this. --p
