stringtranslate.com

Открытая звуковая система

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

OSS была создана Ханну Саволайненом и распространяется по четырем вариантам лицензий , три из которых являются лицензиями на свободное программное обеспечение , что делает программное обеспечение OSS свободным . [3]

API

API предназначен для использования традиционной инфраструктуры Unix open(), read(), write() и ioctl() через файлы устройств . Например, устройством по умолчанию для ввода и вывода звука является /dev/dsp . Примеры использования оболочки:

cat /dev/random > /dev/dsp # воспроизводит белый шум через динамикcat /dev/dsp > aa # считывает данные с микрофона и копирует их в файл aa

OSS реализует интерфейс /dev/audio . Подробный доступ к отдельным звуковым устройствам предоставляется через каталог /dev/oss . OSS также имеет поддержку MIDI в /dev/sequencer , /dev/music (оба устаревшие) и /dev/mini . [4] [5]

В Linux OSS4 также может эмулировать ALSA , его замену с открытым исходным кодом. [6]

История

OSS изначально назывался VoxWare, звуковым драйвером ядра Linux, созданным Ханну Саволайненом. Саволайнен сделал код доступным по лицензиям свободного программного обеспечения : GPL для Linux и BSD для дистрибутивов BSD. В период с 1993 по 1997 год OSS была единственной звуковой системой во FreeBSD и Linux. Ситуация изменилась, когда Луиджи Риццо написал новый драйвер «pcm» для FreeBSD в 1997 году и когда Ярослав Кисела запустил Advanced Linux Sound Architecture в 1998 году. [7]

В 2002 году Саволайнен заключил контракт с компанией 4Front Technologies и создал будущую OSS 4, которая включает поддержку новых звуковых устройств и улучшения, проприетарные . В ответ сообщество Linux отказалось от реализации OSS/free, включенной в ядро, и усилия по разработке переключились на замену Advanced Linux Sound Architecture (ALSA). FreeBSD к этому времени перешла на проект «newpcm», начатый в 1999 году, и это не повлияло. [7]

В июле 2007 года 4Front Technologies выпустила исходные коды OSS под CDDL-1.0 для OpenSolaris и GPL-2.0 только для Linux . Драйверы для некоторых звуковых карт остались с закрытым исходным кодом и не были включены в выпуск. [3] В январе 2008 года компания 4Front Technologies выпустила OSS для FreeBSD (и других систем BSD ) в соответствии с BSD-2-Clause . [8]

Статус усыновления

Код

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

Хотя дистрибутивы Linux, такие как Ubuntu, сделали OSS4 доступным в виде пакета программного обеспечения после того, как он стал свободным программным обеспечением, они решили игнорировать любые ошибки, обнаруженные в этих пакетах. [10]

API

OSS API остался влиятельным, несмотря на малоизвестность исходной библиотеки. В документации NetBSD он описан как «предпочтительный API во FreeBSD и Solaris». [11]

FreeBSD содержит независимо разработанную реализацию OSS API, которая включает, среди прочего, внутреннюю передискретизацию, микширование (vchans), эквалайзер, объемный звук и независимую регулировку громкости для каждого приложения. Он также поддерживает побитовый режим. [12] Он постепенно развился из замены «newpcm», написанной в 1999 году, и примерно в 2005 году догнал OSS4 API. [7]

NetBSD поддерживает режим совместимости для OSS API, предоставляя soundcard.hзаголовочный файл и libossaudioбиблиотеку, которые внутри работают с использованием собственного аудиоинтерфейса, подобного Sun. Замена впервые была замечена в NetBSD 1.3 1998 года. [11]

Как уже упоминалось, Linux перешел на Advanced Linux Sound Architecture с 2003 года (ядро 2.6). ALSA предоставляет дополнительный встроенный в ядро ​​режим эмуляции OSS, который для программ выглядит так, как если бы это был OSS. [13] У ALSA также есть программа пользовательского пространства aoss , которая перехватывает системные вызовы, направленные к файлам устройств OSS. [14]

ОСС/3D

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

4Front OSS3D позже был переименован в Joesoft Hear. [15]

Критика

OSS и как API, и как программное обеспечение подверглись критике со стороны некоторых разработчиков, таких как Пол Дэвис (из JACK Audio Connection Kit ) и Леннарт Поеттеринг (из конкурирующей компании PulseAudio ). [16] [17] Большая часть этой критики относилась либо к реализации Linux, а не к самому OSS API, либо была рассмотрена в OSS версии 4. [ нужна ссылка ]

Смотрите также

Рекомендации

  1. ^ OSS v4.2, сборка 2019 г. , получено 10 мая 2019 г.
  2. ^ «Регистрация загрузки OSS» .
  3. ^ ab 4Front Technologies выпускает исходный код открытой звуковой системы Linux PR, заархивировано из оригинала 25 июля 2011 г. , получено 8 января 2012 г.
  4. ^ «Справочник по API OSS v4.x — основы API OSS» . manuals.opensound.com .
  5. ^ «Руководство программиста Open Sound System (3.x)» (PDF) . 2000 . Проверено 22 февраля 2023 г.
  6. ^ «Советы и рекомендации - Открытая звуковая система» . ossnext.trueinstruments.com .
  7. ^ abc «Звук — FreeBSD Wiki». wiki.freebsd.org .
  8. ^ 4Front Technologies выпускает OSS для FreeBSD под лицензией BSD, opensound.com , получено 8 января 2012 г.
  9. ^ Блог Ханну »Boomer, 4front-tech.com, заархивировано из оригинала 16 марта 2012 г. , получено 8 января 2012 г.
  10. ^ Документация Ubuntu: OpenSound, ubuntu.com , получено 8 января 2012 г.
  11. ^ ab "ossaudio(3) - Страницы руководства NetBSD". man.netbsd.org .
  12. ^ звук, Freebsd.org, 13 июля 2009 г. , получено 8 января 2012 г.
  13. ^ Эмуляция OSS, заархивировано из оригинала 5 июня 2012 г. , получено 7 июля 2012 г.
  14. ^ «aoss(1) — Страницы руководства Arch» . man.archlinux.org .
  15. ^ · Ссылка на устаревший продукт, Yohng.com , получено 8 января 2012 г.
  16. ^ «Учебное пособие по использованию ALSA Audio API» .
  17. ^ «Интервью с Леннартом Пёттерингом (LinuxFR.org) [LWN.net]» . lwn.net .

Внешние ссылки