¿Cómo se relacionan ALSA y PulseAudio?


30

Mientras intentaba que mi sonido funcionara , me preguntaba sobre los roles de ALSA y PulseAudio. He instalado y me preguntaba, por ejemplo, cuál de ellos necesita saber acerca de mi tarjeta de sonido.

Ambos parecen poder usarse entre sí, hay un complemento de pulseaudio para ALSA, y en mi sistema, alsa aparece como una tarjeta de sonido en pulseaudio.

¿Cuál de los dos hace qué, son alternativas o complementarias?

Respuestas:


32

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.


2
En realidad, ¡cada vez que encontré Pulseaudio encontré PROBLEMAS! Lo curioso es que parece (al menos según mis experiencias) tener problemas también con la versión RT del kernel, es decir ... ¿quieres un entorno Linux fácil para reproducir música? ¿Estás pensando en el nuevo UbuntuStudio? Bueno, piénsalo de nuevo ...: D
dag729

44
Oh no pienses Los gráficos también son un montón de ... Linux NO es para uso de escritorio para decirlo simple y sin rodeos. Xorg es un servidor X, así que básicamente inicias un SERVIDOR y lo MIRAS (¿qué tontería? Sí). En MAC, Windows, Haiku, la GUI se ejecuta desde el núcleo (está bien, está dentro del núcleo). Bien. Tendría sentido, ¿no? Además, no hay una interfaz nativa. Como en Windows, Windows.Forms. En MAC Cocoa. Aquí, solo puede usar kits de herramientas FAT, como GTK, Qt. | La red está de acuerdo, está en el núcleo, está bien (está bien si el fabricante proporciona un buen controlador como Intel) ... así que eso es todo.
Apache

3
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 ...
Avery Payne

1
Avery: ahora admite módulos que no se pueden cargar. Entonces, si se bloquea, simplemente volverá a cargar el módulo para el adaptador de gráficos. Pero que yo sepa, todavía son módulos. (No se ejecuta en el espacio de usuario ... eso es imposible). El | Acerca de SDL: es ..... Cada escritor de juegos se queja porque da un rendimiento lento, problemas complicados, etc.
Apache

2
@Skiki - Me doy cuenta de que la respuesta está desactualizada ahora, pero ¿puede proporcionar referencias donde Valve ha abandonado Linux? Por lo que puedo ver, todavía están avanzando a toda máquina, tenga en cuenta el juego de palabras.
agregado1166877
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.