ALSAとPulseAudioはどのように関係していますか?


30

サウンドを機能させるために、 ALSAとPulseAudioの役割について疑問に思っていました。私は両方をインストールしましたが、例えば、どちらが私のサウンドカードについて知る必要があるのか​​疑問に思っていました。

どちらもお互いを使用できるようです。ALSAのpulseaudioプラグインがあり、私のシステムでは、alsaはpulseaudioのサウンドカードとして表示されます。

どちらが何をするのか、それらは代替か補完的か?

回答:


32

ALSAはカーネルレベルのサウンドミキサーで、サウンドカードを直接管理します。ALSA自体は、一度に1つのアプリケーションしか処理できません。もちろん、この問題を解決するために書かれた「dmix」があります。(これはALSAモジュールです。)

PulseAudioは、ユーザーランドの上にあるソフトウェアミキサーです(アプリを実行する場合と同様)。実行時には、Almix(dmixなし)を使用し、あらゆる種類のミキシング、デバイス、ネットワークデバイス、すべてをすべて単独で管理します。

2014年でも、ALSAのみを実行できます。ただし、アプリケーションを自分用にコンパイルし、どこでもALSAサポートを有効にするか、Gentooなどのソースベースのディストリビューションを使用しない限り、ミキシングの問題が発生する可能性があります。ディストリビューションが出荷するプリコンパイル済みアプリケーションは、通常、純粋なALSAではなく、Pulseaudioのサポートのみで構築されます。たとえば、UbuntuはPulseAudioを好みます。デフォルトではPulseAudioが付属しているため、すべてのアプリケーションはPulseAudioのみを使用するようにコンパイルされています。

PulseAudioには利点があります。ネットワークを介してオーディオを操作するのに適していると言われ、純粋なALSAで発生したマルチチャネルオーディオストリームの問題を解決します。また、PA用のアプリを開発する方が簡単だと思われます。エンドユーザー側では、新しいデバイスの選択、アプリごとの音量の制御などが簡単です。

ただし、デフォルト構成では、重要ではないレイテンシーがミックスに追加されます。これは、一部のゲームやソフトウェアのように低レイテンシを必要とする特定のタイプのタスクにとって大きな欠点です。

OSSはこれらの両方に代わるものですが、GPLのもとではライセンスされていないため、ディストリビューションで多く採用されることはほとんどありません。

イラスト
Ubuntuのような典型的なのPulseAudioパワードサウンドシステム、:
カーネル:ALSA - >ユーザランド:PulseAudioは- > APP1、APP2、APP3
すべての異なるアプリケーションやフィードそれらをチェーンからALSAへの典型的なLinuxシステム、PulseAudioはミックスオーディオで。

ALSA:
カーネル:ALSA-> dmix->ユーザーランド:app1、app2、app3
純粋なALSAでは、複数のアプリを混在させるためにdmixが必要です。これがないと、ALSAは一度に1つのアプリからのみオーディオストリームを再生できます。

OSS:
カーネル:OSS->ユーザーランド:app1、app2、app3
OSSでは、ユーザーランドアプリはカーネル内のOSSと直接通信し、ストリーム自体を混合します。

要約すると、最近の典型的なシステムでは、ALSAはサウンドカードと直接対話し、Pulseaudioはアプリとプログラムと対話し、それをALSAにフィードします。


2
実際、Pulseaudioを見つけるたびに問題が見つかりました!おもしろいのは、カーネルのRTバージョンにも問題があるように思えるということです(少なくとも私の経験では)。つまり、簡単なLinux環境で音楽を再生したいですか?新しいUbuntuStudioについて考えていますか?さて、もう一度考えてください...:D
dag729

4
ああ、思わない。グラフィックスも山積みです。Linuxは、デスクトップで使用するためのものではありません。XorgはX サーバーであるため、基本的にSERVERを起動して、それを見ることができます(これはナンセンスですか?はい)。MAC、Windows、Haikuでは、GUIはカーネルから実行されます(カーネル内でもかまいません)。まあ。それは理にかなっていますか?また、ネイティブインターフェイスはありません。Windowsと同様、Windows.Forms。MAC Cocoaで。ここでは、GTK、QtなどのFATツールキットのみを使用できます。ネットワークは合意されており、カーネル内にあり、OK(製造元がIntelのような優れたドライバーを提供している場合は大丈夫です)...そうです。
アパッチ

3
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it? 実際にはそうではありません。「システムを破壊したNT 4ビデオドライバー」の悪い昔を覚えていますか?ええ、それが原因でした-カーネルスペースでくだらないドライバを実行しています。マイクロソフトが、署名されたドライバーをWindowsに取り込むことについて、突然すべての準備を整えたと思うのはなぜですか?ビンゴ!ぎこちないドライバーがシステムクラッシュを引き起こしていたからです。彼らは、彼らが得ることを意味し署名しましょう吟味し、QAのsmidgeonが長い方法...行く
エイブリー・ペイン

1
Avery:現在、アンロード可能なモジュールをサポートしています。したがって、クラッシュした場合、グラフィックアダプターのモジュールを再読み込みするだけです。しかし、私が知る限り、それらはまだモジュールです。(ユーザー空間で実行されていません。それは不可能です)。| SDLについて:s..ks。パフォーマンスが遅い、複雑な問題などがあるため、すべてのゲームライターが文句を言います。
アパッチ

2
@Skiki-答えは今では時代遅れになっていますが、ValveがLinuxを放棄した参考文献を提供してください。私が見る限り、彼らはまだ全力で進んでいます。
aggregate116​​6877
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.