Введение

Аудиоинтерфейс для Unix-подобных операционных систем

Open Sound System (OSS) — это интерфейс для воспроизведения и записи звука в Unix и Unix-подобных операционных системах. Он основан на стандартных системных вызовах устройств Unix (то есть POSIX read, write, ioctl и т. д.). Этот термин также иногда относится к программному обеспечению в ядре Unix, которое предоставляет интерфейс OSS; его можно рассматривать как драйвер устройства (или набор драйверов устройств) для аппаратного обеспечения звуковой карты. Цель OSS — обеспечить возможность разработки звуковых приложений, не зависящих от конкретного звукового оборудования. OSS был создан Ханну Саволайненом и распространяется по четырем вариантам лицензий, три из которых являются лицензиями свободного программного обеспечения, что делает OSS свободным программным обеспечением.

История

OSS изначально был "VoxWare" – звуковым драйвером ядра Linux, разработанным Ханну Саволайненом. Саволайнен опубликовал код под лицензиями свободного программного обеспечения: GPL для Linux и BSD для дистрибутивов BSD. С ноября 1993 года (и Linux 1.00) по 1997 год OSS был единственной звуковой системой в FreeBSD и Linux. Это изменилось, когда Луиджи Риццо в 1997 году написал новый драйвер "pcm" для FreeBSD, а Ярослав Кисела в 1998 году начал разработку Advanced Linux Sound Architecture (ALSA). В 2002 году Саволайнен заключил контракт с компанией 4Front Technologies и сделал разрабатываемую OSS 4, включающую поддержку новых звуковых устройств и улучшения, проприетарной. В ответ сообщество Linux отказалось от OSS/free, включенной в ядро, и переключило усилия по разработке на ALSA. FreeBSD к этому времени перешла на проект "newpcm", начатый в 1999 году, и не была затронута.

Код

OSS4 сейчас существует преимущественно как самостоятельное программное обеспечение, не интегрированное в исходный код ядра. Исключением являются Solaris и OpenSolaris, которые используют ответвление OSS4 под названием Boomer. Оно объединяет в себе фреймворк OSS4 (аудио и микшер) с более ранним API SADA (/dev/audio) от Sun. Несмотря на то, что дистрибутивы Linux, такие как Ubuntu, сделали OSS4 доступным в виде программного пакета после того, как он стал свободным программным обеспечением, они предпочли не реагировать на сообщения об ошибках, касающиеся этих пакетов.

API

API OSS остается влиятельным, несмотря на малоизвестность оригинальной библиотеки. Документация NetBSD описывает его как "предпочтительный API в FreeBSD и Solaris". FreeBSD содержит независимо разработанную реализацию API OSS, которая включает в себя, помимо прочего, передискретизацию в ядре, микширование (vchans), эквалайзер, поддержку многоканального звука и независимое управление громкостью для каждого приложения. Также поддерживается режим передачи данных без потерь. Он постепенно развивался из замены "newpcm", написанной в 1999 году, и приблизился к уровню OSS4 API примерно в 2005 году. ALSA также имеет пользовательскую программу aoss, которая работает путем перехвата системных вызовов, направленных в файлы устройств OSS.

ОСС/3D

OSS/3D – это плагин для музыкальных проигрывателей, функционирующий как движок постобработки звука. Поддерживаемые проигрыватели включают Winamp, Windows Media Player (9 версии и выше), musicmatch, Sonique, Foobar2000, JetAudio, XMMS. Он портирован на платформы Windows и Linux. В отличие от OSS, это условно-бесплатное программное обеспечение. 4Front OSS3D впоследствии была переименована в Joesoft Hear.

Критика

OSS как API и как программное обеспечение критиковалось некоторыми разработчиками, такими как Пол Дэвис (из JACK Audio Connection Kit) и Леннарт Поеттеринг (из конкурирующей PulseAudio).