ALSA - це мікшер звуку на рівні ядра, він безпосередньо управляє вашою звуковою карткою. ALSA сама по собі може обробляти лише одну програму одночасно. Звичайно, є " dmix ", який був написаний для вирішення цієї проблеми. (Це модуль ALSA.)
PulseAudio - це програмний мікшер, розташований поверх користувальницької області (як, наприклад, ви б запустили додаток). Коли він працює, він використовує Alsa - без dmix - і керує всіма видами змішування, пристроями, мережевими пристроями, все само собою.
У 2014 році ви все одно можете запускати лише ALSA. Але якщо ви не складете свої програми для себе та не включите підтримку ALSA скрізь - або не використовуєте джерелорозподілений дистрибутив, наприклад Gentoo - у вас можуть виникнути проблеми зі змішуванням. Попередньо складені програми, що передаються в дистрибутиві, зазвичай будуються лише за підтримки Pulseaudio, а не чистого ALSA. Наприклад, Ubuntu віддає перевагу PulseAudio. За замовчуванням постачається з PulseAudio, тому кожна програма компілюється лише для використання PulseAudio.
У PulseAudio є свої переваги. Люди кажуть, що це добре для роботи зі звуком через мережу, і це вирішує деякі проблеми з багатоканальними звуковими потоками, які відбувалися в умовах чистої ALSA. Також нібито простіше розробити додатки для ПА. Що стосується кінцевого користувача, вибирайте нові пристрої, керуйте гучністю за допомогою програми тощо.
Однак у конфігурації за замовчуванням вона додає незначну кількість затримок у суміш. Це велика проблема для певних типів завдань, які вимагають низької затримки, як-от деякі ігри та програмне забезпечення.
OSS є альтернативою обом цим, але він не ліцензований відповідно до GPL, що робить, ймовірно, не багато сприйняття дистрибутивами.
Ілюстрація :
типові звукові системи, що працюють на PulseAudio, такі як Ubuntu:
ядро: ALSA -> Userland: PulseAudio -> app1, app2, app3
У типовій системі Linux PulseAudio змішує аудіо з усіх ваших різних додатків і подає їх по ланцюгу до ALSA.
ALSA:
Ядро: ALSA -> dmix -> Userland: app1, app2, app3
За допомогою чистого ALSA вам потрібно dmix для змішування декількох додатків. Без цього ALSA може відтворювати аудіопотік лише з одного додатку.
OSS:
Ядро: OSS -> Userland: app1, app2, app3
За допомогою OSS програми userland спілкуються безпосередньо з OSS в ядрі, яке змішує самі потоки.
Отже, підсумовуючи, у вашій типовій системі в ці дні ALSA спілкується безпосередньо з вашими звуковими картами, а Pulseaudio спілкується з вашими програмами та програмами та передає їх в ALSA.