ALSA to mikser dźwięku poziomu jądra, który bezpośrednio zarządza twoją kartą dźwiękową. Sam ALSA może obsługiwać tylko jedną aplikację na raz. Oczywiście istnieje „ dmix ”, który został napisany w celu rozwiązania tego problemu. (To moduł ALSA.)
PulseAudio to mikser oprogramowania, który znajduje się nad obszarem użytkownika (tak jakbyś uruchamiał aplikację). Kiedy działa, używa Alsa - bez dmixu - i samodzielnie zarządza każdym rodzajem miksowania, urządzeniami, urządzeniami sieciowymi.
W 2014 r. Nadal możesz uruchomić tylko ALSA. Ale jeśli nie skompilujesz swoich aplikacji dla siebie i nie włączysz wsparcia ALSA wszędzie - lub nie użyjesz dystrybucji opartej na źródłach, takiej jak Gentoo - możesz mieć problemy z mieszaniem. Wstępnie skompilowane aplikacje, które dystrybuują, są zwykle budowane tylko z obsługą Pulseaudio, a nie czystym ALSA. Na przykład Ubuntu woli PulseAudio. Domyślnie jest dostarczany z PulseAudio, więc każda aplikacja jest kompilowana tak, aby używać tylko PulseAudio.
PulseAudio ma swoje zalety. Ludzie mówią, że jest dobry do pracy z dźwiękiem w sieci i rozwiązuje niektóre problemy z wielokanałowymi strumieniami audio, które miały miejsce pod czystym ALSA. Podobno łatwiej jest tworzyć aplikacje dla PA. Po stronie użytkownika końcowego można łatwo wybrać nowe urządzenia, sterować głośnością według aplikacji itp.
Jednak w konfiguracji domyślnej dodaje do miksu nieistotny stopień opóźnienia. Jest to duża wada dla niektórych rodzajów zadań, które wymagają niewielkich opóźnień, takich jak niektóre gry i oprogramowanie.
OSS jest alternatywą dla obu z nich, ale nie jest licencjonowany na licencji GPL, co sprawia, że mało prawdopodobne jest, aby został przyjęty przez dystrybucje.
Ilustracja :
Typowe systemy dźwiękowe zasilane PulseAudio, takie jak Ubuntu:
Jądro: ALSA -> Userland: PulseAudio -> app1, app2, app3
W typowym systemie Linux PulseAudio miksuje dźwięk ze wszystkich różnych aplikacji i przekazuje je do ALSA.
ALSA:
Jądro: ALSA -> dmix -> Userland: app1, app2, app3
Tylko czysty ALSA wymaga dmixu do mieszania wielu aplikacji. Bez tego ALSA może odtwarzać strumień audio tylko z jednej aplikacji na raz.
OSS:
Jądro: OSS -> Userland: app1, app2, app3
W OSS aplikacje użytkownika userland komunikują się bezpośrednio z OSS w jądrze, który sam miesza strumienie.
Podsumowując, w typowym systemie ALSA obecnie komunikuje się bezpośrednio z kartami dźwiękowymi, a Pulseaudio komunikuje się z aplikacjami i programami i przekazuje je do ALSA.
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it?
W rzeczywistości tak nie jest. Pamiętasz stare, złe czasy „sterowników wideo NT 4, które spowodowały awarię systemu”? Tak, właśnie to spowodowało - uruchamianie kiepskich sterowników w przestrzeni jądra. Jak myślisz, dlaczego Microsoft nagle dołożył wszelkich starań, aby podpisać sterowniki do systemu Windows? Bingo! Ponieważ kiepskie sterowniki powodowały awarie systemu. Podpisanie ich oznaczało, że zostali sprawdzeni , a specjalista ds. Kontroli jakości przechodzi długą drogę ...