Linux sound system is, well, really a mess… Look at the following pictures:
Maybe these articles will help:
So, the Linux sound system is somehow like this:
- ALSA is of the lowest level and directly talks to hardware.
- Jack is a sound server which is like a switch-board on which different inputs/outputs are plugged. It’s real-time, low-latency, as well as cross-platform. It also has support for distributing audio across a network.
- PulseAudio is also a sound server. It is network-transparent and capable of software mixing. You can adjust the volume of each application which is based on PulseAudio. However, I think PulseAudio works at a higher level than Jack, though they can both call ALSA directly.
- Gstreamer and Xine are multimedia frameworks which work at an even higher level.
There are some other components I don’t mention here, such as OSS, ESD and aRts. You’d better refer to the articles above.