ALSA é o mixer de som no nível do kernel, ele gerencia sua placa de som diretamente. ALSA por si só só pode manipular um aplicativo de cada vez. Claro, existe ' dmix ', que foi escrito para resolver este problema. (É um módulo da ALSA.)
O PulseAudio é um mixer de software, no topo da área de usuário (como você executaria um aplicativo). Quando executado, ele usa o Alsa - sem o dmix - e gerencia todos os tipos de mixagem, dispositivos, dispositivos de rede, tudo por si mesmo.
Em 2014, você ainda pode executar apenas o ALSA. Mas, a menos que você compile seus aplicativos para si mesmo e habilite o suporte ao ALSA em qualquer lugar - ou use uma distribuição baseada em fontes como o Gentoo - você pode ter problemas de mixagem. Os aplicativos pré-compilados que as distribuições são normalmente construídos apenas com suporte para o Pulseaudio, não para o ALSA puro. O Ubuntu, por exemplo, prefere o PulseAudio. Ele vem com o PulseAudio por padrão, então cada aplicativo é compilado para usar somente o PulseAudio.
O PulseAudio tem seus benefícios. As pessoas dizem que é bom trabalhar com áudio em uma rede e resolve alguns problemas com fluxos de áudio multicanais que ocorreram sob puro ALSA. Também é supostamente mais fácil desenvolver aplicativos para PA. Do lado do usuário final, é fácil selecionar novos dispositivos, controlar o volume por aplicativo, etc.
No entanto, na configuração padrão, ele adiciona uma quantidade não significativa de latência ao mix. Isso é um grande problema para certos tipos de tarefas que exigem baixa latência, como alguns jogos e softwares.
OSS é uma alternativa para ambos, mas não é licenciado sob a GPL, o que torna improvável a adoção de muitas distribuições pelas distribuições.
Ilustração :
Sistemas de som típicos do PulseAudio, como o Ubuntu:
Kernel: ALSA - > Userland: PulseAudio - > app1, app2, app3
No sistema Linux típico, o PulseAudio mistura áudio de todos os seus aplicativos diferentes e os alimenta na cadeia para o ALSA.
ALSA:
Kernel: ALSA - > dmix - > Userland: app1, app2, app3
Com apenas puro ALSA, você precisa dmix para misturar vários aplicativos. Sem ele, o ALSA só pode reproduzir um fluxo de áudio de um aplicativo por vez.
OSS:
Kernel: OSS - > Userland: app1, app2, app3
Com o OSS, os aplicativos userland conversam diretamente com o OSS no kernel, que mistura os próprios fluxos.
Então, para resumir, em seu sistema típico atualmente, a ALSA fala diretamente com suas placas de som, e o Pulseaudio fala com seus aplicativos e programas e os alimenta no ALSA.