ALSA ist der Kernel Level Sound Mixer, der Ihre Soundkarte direkt verwaltet. ALSA kann jeweils nur eine Anwendung bearbeiten. Natürlich gibt es " dmix ", das geschrieben wurde, um dieses Problem zu lösen. (Es ist ein ALSA-Modul.)
PulseAudio ist ein Software-Mixer über dem Userland (so als würden Sie eine App ausführen). Wenn es läuft, verwendet es Alsa - ohne Dmix - und verwaltet jede Art von Mischung, die Geräte, Netzwerkgeräte, alles für sich.
Im Jahr 2014 können Sie immer noch nur ALSA ausführen. Aber wenn Sie Ihre Anwendungen nicht für sich selbst kompilieren und die ALSA-Unterstützung überall aktivieren - oder eine quellbasierte Distribution wie Gentoo verwenden - können Mischprobleme auftreten. Vorkompilierte Anwendungen, die mit Distributionen ausgeliefert werden, werden normalerweise nur mit Unterstützung für Pulseaudio erstellt, nicht für ALSA. Ubuntu zum Beispiel bevorzugt PulseAudio. Standardmäßig ist PulseAudio im Lieferumfang enthalten, sodass jede Anwendung so kompiliert ist, dass nur PulseAudio verwendet wird.
PulseAudio hat seine Vorteile. Die Leute sagen, dass es gut für die Arbeit mit Audio in einem Netzwerk ist, und es löst einige Probleme mit Mehrkanal-Audio-Streams, die unter reinem ALSA stattgefunden haben. Es ist angeblich auch einfacher, Apps für PA zu entwickeln. Auf der Endbenutzerseite ist es einfach, neue Geräte auszuwählen, die Lautstärke per App zu steuern usw.
In der Standardkonfiguration wird der Mischung jedoch eine nicht unerhebliche Latenz hinzugefügt. Dies ist ein großer Nachteil für bestimmte Arten von Aufgaben, für die eine geringe Latenz erforderlich ist, z. B. für einige Spiele und Software.
OSS ist eine Alternative zu beiden, aber es ist nicht unter der GPL lizenziert, was eine große Akzeptanz durch Distributionen unwahrscheinlich macht.
Abbildung :
Typische PulseAudio-Soundsysteme wie Ubuntu:
Kernel: ALSA -> Userland: PulseAudio -> app1, app2, app3
Im typischen Linux-System mischt PulseAudio Audio aus all Ihren verschiedenen Apps und leitet sie an ALSA weiter.
ALSA:
Kernel: ALSA -> dmix -> Userland: app1, app2, app3
Mit nur reinem ALSA benötigen Sie dmix, um mehrere Apps zu mischen. Ohne diese Funktion kann ALSA jeweils nur einen Audiostream von einer App abspielen.
OSS:
Kernel: OSS -> Userland: app1, app2, app3
Mit OSS kommunizieren die Userland-Apps direkt mit OSS im Kernel, der die Streams selbst mischt.
Zusammenfassend lässt sich sagen, dass ALSA heutzutage in einem typischen System direkt mit Ihren Soundkarten und Pulseaudio mit Ihren Apps und Programmen kommuniziert und diese in ALSA einspeist.
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it?
Eigentlich nicht. Erinnern Sie sich an die schlechten alten Zeiten von "NT 4-Grafiktreibern, die das System kaputt gemacht haben"? Ja, das hat es verursacht - beschissene Treiber im Kernelraum laufen zu lassen. Warum hat Microsoft Ihrer Meinung nach plötzlich alles unternommen, um signierte Treiber für Windows zu bekommen? Bingo! Weil beschissene Treiber Systemabstürze verursachten. Erst zeichneter sie bedeutet , dass immer überprüft , und ein smidgeon von QA geht ein langen Wege ...