Sound in Linux
The sound support in Linux bears with the Open Sound System (OSS), which is also available for several UNIX-like systems. However, around 1998, this system lacked some important functionalities for a good sound system, such as MIDI hardware support, multiple audio channel mixing, and full duplex operations. That's why, a new API was born trying to solve these issues: the Advanced Linux Sound Architecture (ALSA).
Starting from kernel release 2.6, the ALSA replaced the OSS architecture even if, during that time, several improvements were into the OSS implemented too.
The ALSA architecture has hardware MIDI support, multiple audio channel mixing, and full duplex operations, and it's designed to work well on multiprocessor systems since it's thread safe. The ALSA's API is really complex (especially compared with the OSS one), but it allows developers to do incredible things with it, especially using the related user-space library named alsa-lib and ALSA plugins...