El sistema de sonido abierto (OSS) es una interfaz para crear y capturar sonido en sistemas operativos Unix y similares . Se basa en llamadas estándar del sistema de dispositivos Unix (es decir, POSIX read , write , ioctl , etc.). El término también se refiere en ocasiones al software en un núcleo Unix que proporciona la interfaz OSS; se puede considerar como un controlador de dispositivo (o una colección de controladores de dispositivo) para el hardware controlador de sonido . El objetivo de OSS es permitir la escritura de aplicaciones basadas en sonido que sean independientes del hardware de sonido subyacente.
OSS fue creado por Hannu Savolainen y se distribuye bajo cuatro opciones de licencia , tres de las cuales son licencias de software libre , lo que hace que el OSS sea software libre . [3]
La API está diseñada para utilizar el marco tradicional de Unix de open(), read(), write() e ioctl(), a través de archivos de dispositivo . Por ejemplo, el dispositivo predeterminado para la entrada y salida de sonido es /dev/dsp . Ejemplos que utilizan el shell:
cat /dev/random > /dev/dsp # reproduce ruido blanco a través del altavozcat /dev/dsp > aa # lee datos del micrófono y los copia al archivo aa
OSS implementa la interfaz /dev/audio . Se proporciona acceso detallado a los dispositivos de sonido individuales a través del directorio /dev/oss . OSS también tiene soporte MIDI en /dev/sequencer , /dev/music (ambos heredados) y /dev/mini . [4] [5]
En Linux, OSS4 también puede emular ALSA , su reemplazo de código abierto. [6]
OSS era originalmente "VoxWare", un controlador de sonido del núcleo Linux de Hannu Savolainen. Savolainen puso el código a disposición bajo licencias de software libre , GPL para Linux y BSD para distribuciones BSD. Entre noviembre de 1993 (y Linux 1.00) [7] y 1997, OSS fue la única opción de sistema de sonido en FreeBSD y Linux. Esto cambió cuando Luigi Rizzo escribió un nuevo controlador "pcm" para FreeBSD en 1997, y cuando Jaroslav Kysela comenzó Advanced Linux Sound Architecture en 1998. [8]
En 2002, Savolainen fue contratado por la empresa 4Front Technologies y convirtió en privativo el futuro OSS 4, que incluye soporte para dispositivos de sonido más nuevos y mejoras . En respuesta, la comunidad Linux abandonó la implementación OSS/libre incluida en el núcleo y el esfuerzo de desarrollo se trasladó al reemplazo Advanced Linux Sound Architecture (ALSA). FreeBSD en ese momento había cambiado a un proyecto "newpcm" iniciado en 1999 y no se vio afectado. [8]
En julio de 2007, 4Front Technologies publicó fuentes para OSS bajo la licencia CDDL-1.0 para OpenSolaris y GPL-2.0-only para Linux . Los controladores para algunas tarjetas de sonido permanecieron en código cerrado y no se incluyeron en la versión. [3] En enero de 2008, 4Front Technologies publicó OSS para FreeBSD (y otros sistemas BSD ) bajo la cláusula BSD-2 . [9]
OSS4 existe ahora principalmente como un software independiente, no integrado en el código fuente del núcleo. La excepción son Solaris y OpenSolaris , que utilizan una bifurcación de OSS4 llamada Boomer. Combina el marco de OSS4 (audio y mezclador) junto con la API SADA ( /dev/audio ) anterior de Sun. [10]
Aunque las distribuciones de Linux como Ubuntu hicieron que OSS4 estuviera disponible como un paquete de software después de que se convirtió en software libre, decidieron ignorar cualquier error detectado contra estos paquetes. [11]
La API de OSS ha seguido siendo influyente a pesar de la oscuridad de la biblioteca original. La documentación de NetBSD la describe como "la API preferida en FreeBSD y Solaris". [12]
FreeBSD contiene una implementación de la API OSS desarrollada independientemente, que incluye, entre otras cosas, remuestreo en el núcleo, mezcla (vchans), ecualizador, sonido envolvente y control de volumen independiente para cada aplicación. También admite el modo bit-perfect. [13] Evolucionó gradualmente a partir del reemplazo "newpcm" escrito en 1999 y alcanzó a la API OSS4 alrededor de 2005. [8]
NetBSD admite un modo de compatibilidad para la API OSS, al proporcionar el soundcard.h
archivo de encabezado y la libossaudio
biblioteca, que funcionan internamente utilizando la interfaz de audio nativa similar a la de Sun. El reemplazo se vio por primera vez en NetBSD 1.3 de 1998. [12]
Como ya se ha dicho, Linux ha pasado a la arquitectura de sonido de Linux avanzada desde 2003 (kernel 2.6). ALSA ofrece un modo de emulación de OSS opcional, dentro del kernel, que aparece ante los programas como si fuera OSS. [14] ALSA también tiene un programa de espacio de usuario aoss que funciona interceptando llamadas de sistemas dirigidas a los archivos de dispositivos OSS. [15]
OSS/3D es un complemento para reproductores de música que actúa como un motor de posprocesamiento de audio. Entre los reproductores compatibles se encuentran Winamp , Windows Media Player (9 o posterior), musicmatch, Sonique , Foobar2000 , JetAudio y XMMS . Está adaptado a plataformas Windows y Linux. A diferencia de OSS, es shareware .
Posteriormente, 4Front OSS3D pasó a llamarse Joesoft Hear. [16]
El OSS, tanto como API como software, ha sido criticado por algunos desarrolladores, como Paul Davis (de JACK Audio Connection Kit ) y Lennart Poettering (de su competidor PulseAudio ). [17] [ verificación fallida ] [18]