开放声音系统(Open Sound System,OSS)是一种可移植声音接口。
在2.4.x系列之前的Linux内核中,OSS是唯一支持的声音系统。从2.5版本开始,ALSA(Advanced Linux Sound Architecture)被引进,OSS接口因为其非开放源代码而变成Linux内核开发者们所不建议使用的。ALSA包括了一个可选的OSS虚拟模式,这使得从应用程序角度看来操作系统好像真的使用OSS。
对于只在Linux上运行的程序,ALSA是推荐的接口。然而,希望在Unix风格的系统中保持可移植性的软件就只能使用OSS(或者同时支持两者)。
ALSA(Advanced Linux Sound Architecture(高级Linux声音体系))
ALSA是为声卡提供驱动的Linux内核组件,以替代原先的OSS(开放声音系统)。 一部分的目的是支持声卡的自动配置,以及完美的处理系统中的多个声音设备,这些目的大多都已达到。另一个声音框架JACK使用ALSA提供低延迟的专业级音频编辑和混音能力。
这个项目开始于为1998年Gravis Ultrasound所开发的驱动,它一直作为一个单独的软件包开发,直到2002年他被引进入Linux内核的开发版本 (2.5.4-2.5.5)。从2.6版本开始ALSA成为Linux内核中默认的标准音频驱动程序集,OSS则被标记为废弃。
ALSA是一个完全开放源代码的音频驱动程序集,除了像OSS那样提供了一组内核驱动程序模块之外,ALSA还专门为简化应用程序的编写提供了相应的函数库,与OSS提供的基于ioctl的原始编程接口相比,ALSA函数库使用起来要更加方便一些。利用该函数库,开发人员可以方便快捷的开发出自己的应用程序,细节则留给函数库内部处理。当然ALSA也提供了类似于OSS的系统接口,不过ALSA的开发者建议应用程序开发者使用音频函数库而不是驱动程序的API。
ALSA的官方网站是
以下是ALSA的官方介绍:
The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. ALSA has the following significant features:
Efficient support for all types of audio interfaces, from consumer sound cards to professional multichannel audio interfaces.
Fully modularized sound drivers.
SMP and thread-safe design.
User space library (alsa-lib) to simplify application programming and provide higher level functionality.
Support for the older Open Sound System (OSS) API, providing binary compatibility for most OSS programs.
ALSA官方主页提供以下软件包:
alsa-driver:alsa的驱动程序,2.6的内核中已经有了。
alsa-lib:alsa库文件,用到alsa声音接口的程序(包括alsa-utils)需要用到。
alsa-utils:包含许多可以控制你的声卡的工具。
alsa-tools:包含一些声卡的高级设置工具。
alsa-fireware:包含某些声卡的固件。
alsa-plugins:提供用以创建虚拟设备的插件。
alsa-oss:包括alsa oss兼容库,对于使用alsa oss声音接口的程序很有用。
pyalsa:ALSA的Python接口。
可以在ALSA的非官方Wiki获取更多有用的信息,网址为