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