ALSA es el mezclador de sonido a nivel del núcleo, gestiona su tarjeta de sonido directamente. ALSA por sí solo solo puede manejar una aplicación a la vez. Por supuesto, hay ' dmix ', que fue escrito para resolver este problema. (Es un módulo ALSA).
PulseAudio es un mezclador de software, en la parte superior del país de usuario (como si ejecutases una aplicación). Cuando se ejecuta, utiliza Alsa, sin dmix, y gestiona todo tipo de mezclas, dispositivos, dispositivos de red, todo por sí mismo.
En 2014, solo puede ejecutar ALSA. Pero a menos que compile sus aplicaciones y habilite el soporte de ALSA en todas partes, o use una distribución basada en fuente como Gentoo, puede tener problemas de mezcla. Las aplicaciones precompiladas que se distribuyen generalmente solo se crean con soporte para Pulseaudio, no ALSA puro. Ubuntu, por ejemplo, prefiere PulseAudio. Viene con PulseAudio de forma predeterminada, por lo que cada aplicación se compila para usar solo PulseAudio.
PulseAudio tiene sus beneficios. La gente dice que es bueno para trabajar con audio a través de una red y resuelve algunos problemas con las transmisiones de audio multicanal que ocurrieron bajo ALSA puro. También se supone que es más fácil desarrollar aplicaciones para PA. Del lado del usuario final, es fácil seleccionar nuevos dispositivos, controlar el volumen por aplicación, etc.
Sin embargo, en la configuración predeterminada agrega una cantidad de latencia no insignificante a la mezcla. Esta es una gran desventaja para ciertos tipos de tareas que requieren baja latencia, como algunos juegos y software.
OSS es una alternativa a ambos, pero no tiene licencia bajo la GPL, lo que hace que no sea probable que las distribuciones lo vean mucho.
Ilustración :
sistemas de sonido típicos impulsados por PulseAudio, como Ubuntu:
Kernel: ALSA -> Userland: PulseAudio -> app1, app2, app3
En el sistema típico de Linux, PulseAudio mezcla el audio de todas sus diferentes aplicaciones y las alimenta a ALSA.
ALSA:
Kernel: ALSA -> dmix -> Userland: app1, app2, app3
Con ALSA puro, necesita dmix para mezclar múltiples aplicaciones. Sin ella, ALSA solo puede reproducir una transmisión de audio de una aplicación a la vez.
OSS:
Kernel: OSS -> Userland: app1, app2, app3
Con OSS, las aplicaciones de userland se comunican directamente con OSS en el kernel, que mezcla las secuencias en sí.
Para resumir, en su sistema típico en estos días, ALSA habla directamente con sus tarjetas de sonido, y Pulseaudio habla con sus aplicaciones y programas y los transfiere a ALSA.
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it?
En realidad no lo hace. ¿Recuerdas los viejos tiempos de los "controladores de video NT 4 que arruinaron el sistema"? Sí, eso es lo que lo causó: ejecutar controladores malos en el espacio del kernel. ¿Por qué crees que Microsoft repentinamente se puso de brazos cruzados acerca de conseguir controladores firmados en Windows? ¡Bingo! Porque los controladores malos estaban causando bloqueos del sistema. Conseguir que firmaran significaba que fueran examinados , y una pizca de control de calidad es muy útil ...