Advanced Linux Sound Architecture (ALSA) は、サウンドカードのデバイスドライバを提供するOpen Sound System (OSS)を置き換えるために開発されたLinuxカーネルコンポーネントである。ALSAプロジェクトの初期の目標は、サウンドカードハードウェアの自動設定や、複数のサウンドデバイスのスマートな取扱いなどであったが、それらは概ね達成された。JACKなどのいくつかのフレームワークは、低遅延でプロフェッショナル級の編集・ミキシングを実現するためにALSAを利用している。
ALSAプロジェクトは、1998年、Jaroslav KyselaによってGravis UltrasoundサウンドカードのためのLinuxデバイスドライバが書かれたことから始まった。ALSAは、2002年にLinuxカーネル2.5開発版(2.5.4-2.5.5)に導入されるまで、Linuxカーネルとは別個に開発されていた[2]。2.6では、後方互換レイヤーがあったとはいえ、標準設定でOSSを置き換えた。
特徴
ALSAは、その構想時点ではOSSがサポートしていなかったいくつかの機能をもつよう設計されている。
これらの機能を美しくサポートするため、ALSAはOSSよりも巨大で複雑なAPIをもっている。そのため、ALSAのサウンド技術を利用するアプリケーションを開発することはOSSほど簡単ではない。しかし、ALSAにはOSSのエミュレーションレイヤーがあるため、より簡素で可搬性の高いOSSのAPIを利用することもできる。
ALSAはデバイスドライバの他に、カーネルドライバと直接やりとりせずに高レベルのAPIを使ってドライバ機能を使いたいという開発者のために、ユーザ空間のライブラリも提供している。ハードウェアの能力を直接反映しようとするカーネルAPIとは違って、ALSAのユーザ空間ライブラリは、異なるハードウェア間でも可能な限り同じように扱えるよう、抽象的なインタフェースを提供している。これは、一部にはソフトウェアプラグインを用いて実現されている。たとえば、現在の多くのサウンドカードや組込みサウンドチップは「マスターボリューム」コントロールをもたないが、これらのデバイスのためにユーザ空間ライブラリは「softvol」プラグインによってソフトウェアボリュームコントロールを提供している。そのため、通常のアプリケーションソフトウェアはこれらの違いを認識する必要がない。
脚注
関連項目
外部リンク