ALSA (Advanced Linux Sound Architecture) is a Linux kernel module that replaces several single-kernel drivers that manage the various sound cards internally. Advanced Linux Sound Architecture is a GPL and LGPL Open Source software underlying the Linux kernel audio subsystem.
In addition to drivers for a multitude of sound cards, the ALSA project also includes a lib sound for applications, compatibility with the previous Linux audio subsystem – OSS, various applications for sound card control and playback (sequencer, alsamixer). Originally appeared independently in kernel patches (2.2.x) to add drivers for the sound card, ALSA was included in the kernel during version 2.6 (2.5 series), replacing the old OSS completely along with the series 2.6.
When it comes to Linux and modern audio, then we talk about ALSA. ALSA connects to the Linux kernel and provides functionality for the rest of the system.
ALSA is much more complex than a regular kernel, can provide compatibility with other layers, can create a programmer API, and work with a low and stable latency that can compete with ASIO and CoreAudio equivalents on Windows or on the OS X platform.
We can consider ALSA as the sound of Linux. Audio hardware needs a corresponding kernel module, preceded by a snd. And this is the ALSA kernel driver that makes any sound heard. Most configurations are configured automatically. ALSA handles the part of the audio hardware in an API software, which also deals with the sound of the system.
ALSA was designed to address many of the OSS drawbacks (and many other sound drivers at that time), the most notable being that a single application could access the hardware at a time.
ALSA manages audio applications and understands hardware capabilities. ALSA can also manage up to eight audio devices. And sometimes it can access the MIDI functionality on the hardware, although this also depends on the hardware specifications of the system.
The way that ALSA differs from typical kernel modules or device drivers is that there is a user-friendly configuration option. Now that you can change almost all the ALSA configuration by creating your own configuration file, it reveals the complexity of the system on the audio side. From how audio streams are mixed and what outputs leave the system, at a sampling rate, bit depth effects all performed in real time.
The relative transparency of ALSA, its efficiency, and flexibility, made it the standard for Linux on audio. ALSA covers the most problems in bringing the signal to and from the computer.
But it follows another layer of complexity. This is PulseAudio’s domain. It reduces the gap between hardware and software capabilities, local and remote servers as well as the audio stream content. PulseAudio makes for ALSA networks for multiple sound cards. It has become a standard in many Linux distributions due to its flexibility.