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.