ALSA ve PulseAudio arasındaki ilişki nedir?


30

Çalışırken işten benim ses elde , ben ALSA ve PulseAudio rolleri merak ediyorum. Hem kurdum hem de merak ediyorum; örneğin, ses kartım hakkında hangisinin bilmesi gerekiyor?

Her ikisi de birbirlerini kullanabiliyor gibi görünüyor, ALSA için bir pulseaudio eklentisi var ve benim sistemimde de, pulseaudio'da bir ses kartı gibi görünüyor.

İkisinden hangisi ne yapar, alternatif mi yoksa tamamlayıcı mı?

Yanıtlar:


32

ALSA, çekirdek seviyesindeki ses mikseridir, ses kartınızı doğrudan yönetir. ALSA kendi başına bir seferde yalnızca bir başvuru yapabilir. Tabii ki, bu sorunu çözmek için yazılmış ' dmix ' var . (Bu bir ALSA modülüdür.)

PulseAudio (bir uygulamayı çalıştırdığınız gibi), kullanıcının üstüne bir yazılım karıştırıcısıdır. Çalıştığında, Alsa'yı - dmix'siz - kullanır ve her türlü karışımı, cihazları, ağ cihazlarını, her şeyi kendi başına yönetir.

2014 yılında hala sadece ALSA'yı yönetebilirsiniz. Ancak, uygulamalarınızı kendiniz için derleyip ALSA desteğini her yerde (veya Gentoo gibi kaynak tabanlı bir dağıtım) kullanmıyorsanız, karıştırma problemleriyle karşılaşabilirsiniz. Gemiyi dağıtan önceden derlenmiş uygulamalar genellikle yalnızca ALS değil, Pulseaudio desteği ile inşa edilir. Örneğin Ubuntu, PulseAudio'yu tercih eder. Varsayılan olarak PulseAudio ile birlikte gelir, bu nedenle her uygulama sadece PulseAudio'yu kullanmak için derlenir.

PulseAudio'nun faydaları var. İnsanlar bir ağ üzerinden ses ile çalışmak için iyi olduğunu söylüyor ve saf ALSA altında gerçekleşen çok kanallı ses akışlarıyla ilgili bazı sorunları çözüyor. Ayrıca PA için uygulamalar geliştirmek sözde daha kolay. İşlerin son kullanıcı tarafında, yeni cihazları seçmek, uygulamaya göre sesi kontrol etmek vb. Kolaydır.

Bununla birlikte, varsayılan konfigürasyonda, karışıma önemsiz miktarda gecikme ekler. Bu, bazı oyunlar ve yazılımlar gibi düşük gecikme süresi gerektiren belirli görev türleri için büyük bir avantajdır.

OSS bunların her ikisine de bir alternatiftir, ancak GPL kapsamında lisanslı değildir; bu da dağıtım yoluyla çok fazla evlat edinme olasılığını görmez.

Örnek :
Ubuntu:
Kernel: ALSA -> Userland: PulseAudio -> app1, app2, app3 gibi tipik PulseAudio destekli ses sistemleri
Tipik Linux sisteminde PulseAudio, tüm farklı uygulamalarınızdan gelen sesleri karıştırır ve onları zinciri ALSA'ya besler.

ALSA:
Çekirdek: ALSA -> dmix -> Userland: app1, app2, app3
Sadece saf ALSA ile birden fazla uygulamayı karıştırmak için dmix'e ihtiyacınız var. Bu olmadan, ALSA bir seferde yalnızca bir uygulamadan bir ses akışı çalabilir.

OSS:
Çekirdek: OSS -> Kullanıcı alanı: app1, app2, app3
OSS ile, kullanıcı uygulamaları doğrudan çekirdeğin karışımını yapan çekirdek içinde OSS ile konuşur.

Özetlemek gerekirse, bugünlerde tipik sisteminizde, ALSA doğrudan ses kartlarınızla ve Pulseaudio uygulamalarınız ve programlarınızla konuşuyor ve bunu ALSA'ya aktarıyor.


2
Aslında, Pulseaudio'yu her bulduğumda SORUNLARI buldum! Komik olan şey şu ki (en azından deneyimlerime dayanarak) çekirdeğin RT versiyonunda da sorun varmış gibi görünüyor, yani ... müzik dinlemek için kolay bir linux ortamı istiyor musunuz? Yeni UbuntuStudio’yı mı düşünüyorsunuz? Pekala, tekrar düşünün ...: D
dag729

4
Oh sanmıyorum. Grafikler de bir yığın .. Linux masaüstü kullanımı için basit ve açık sözlü değildir. Xorg bir X sunucusudur, bu yüzden temelde bir SERVER başlatırsınız ve İZLEYİN (ne saçmalık? Evet). MAC, Windows, Haiku, GUI, çekirdekten çalışır (tamam, çekirdeğin içindedir). İyi. Bu mantıklı değil mi? Ayrıca, yerel bir arayüz yok. Windows'taki gibi, Windows.Forms. MAC Cocoa'da. Burada, sadece GTK, Qt gibi FAT araç takımlarını kullanabilirsiniz. Ağ kabul edildi, çekirdeği var, tamam (üretici firma Intel gibi iyi bir sürücü sağlıyorsa tamam ...).
Apache

3
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it? Aslında değil. "Sistemi bozan NT 4 video sürücüleri" nin kötü eski günlerini hatırlıyor musunuz? Evet, buna sebep olan şey - çekirdek alandaki berbat sürücüleri çalıştırmak. Microsoft'un aniden Windows'a imzalı sürücüleri alma konusunda her şeyin yolunda gittiğini düşünüyor musunuz? Bingo! Çünkü ufak tefek sürücüler sistem çökmelerine neden oluyordu. Onlarıölmeye alma anlamına imzalı alma onaylanıp ve QA bir smidgeon uzun bir yol ... gidiyor
Avery Payne

1
Avery: Şimdi yüklenemez modülleri destekliyor. Bu yüzden çökerse, grafik bağdaştırıcısının modülünü yeniden yükler. Ama bildiğim kadarıyla onlar hala modüller. (Kullanıcı alanında çalışmıyorsa .. bu mümkün değildir). | SDL hakkında: s. Her oyun yazarı bundan şikayetçi çünkü yavaş performans, karmaşık problemler vb.
Apache

2
@Skiki - Cevabın şu anda modası geçmiş olduğunun farkındayım, ancak Valve'ın Linux'u terk ettiği yerlere referans verebilir misiniz? Gördüğüm kadarıyla hala tam buhar ilerliyorlardı, dikkat et.
aggregate1166877
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.