Otwarty system dźwiękowy
Oryginalni autorzy | Hannu Savolainena |
---|---|
Deweloperzy | Firma NCR |
Wersja stabilna | 4.2 wersja 2019 / 5 marca 2019
|
System operacyjny | Międzyplatformowe |
Typ | Audio |
Licencja |
|
Strona internetowa |
Open Sound System (OSS) to interfejs do tworzenia i przechwytywania dźwięku w systemach operacyjnych Unix i uniksopodobnych . Opiera się na standardowych wywołaniach systemowych urządzeń uniksowych (tj. POSIX read , write , ioctl , itp.). Termin ten czasami odnosi się również do oprogramowania w jądrze Uniksa, które zapewnia interfejs OSS; można go traktować jako sterownik urządzenia (lub zbiór sterowników urządzeń) dla kontrolera dźwięku sprzęt komputerowy. Celem OSS jest umożliwienie pisania aplikacji opartych na dźwięku, które są niezależne od podstawowego sprzętu dźwiękowego.
OSS został stworzony przez Hannu Savolainena i jest rozprowadzany z czterema opcjami licencyjnymi , z których trzy to licencje wolnego oprogramowania , dzięki czemu OSS jest wolnym oprogramowaniem .
API
Interfejs API jest przeznaczony do korzystania z tradycyjnego uniksowego frameworka open(), read(), write() i ioctl() za pośrednictwem plików urządzeń . Na przykład domyślnym urządzeniem wejścia i wyjścia dźwięku jest /dev/dsp . Przykłady użycia powłoki:
cat /dev/random > /dev/dsp # odtwarza biały szum przez głośnik cat /dev/dsp > aa # odczytuje dane z mikrofonu i kopiuje je do pliku aa
OSS implementuje interfejs /dev/audio . Szczegółowy dostęp do poszczególnych zasobów dźwiękowych zapewnia /dev/oss . OSS obsługuje również MIDI w /dev/sequencer , /dev/music (oba starsze) i /dev/mini .
W systemie Linux OSS4 jest również w stanie emulować ALSA , jego zamiennik open-source.
Historia
OSS był pierwotnie „VoxWare”, sterownikiem dźwięku jądra Linuksa autorstwa Hannu Savolainena. Savolainen udostępnił kod na wolnego oprogramowania , GPL dla Linuksa i BSD dla dystrybucji BSD. W latach 1993-1997 OSS był jedynym wyborem systemu dźwiękowego we FreeBSD i Linuksie. Zmieniło się to, gdy Luigi Rizzo napisał nowy sterownik „pcm” dla FreeBSD w 1997 roku, a Jaroslav Kysela założył Advanced Linux Sound Architecture w 1998 roku.
W 2002 roku Savolainen został zatrudniony przez firmę 4Front Technologies i stworzył nadchodzący OSS 4, który obejmuje obsługę nowszych urządzeń dźwiękowych i ulepszeń, zastrzeżony plik . W odpowiedzi społeczność Linuksa porzuciła OSS / darmową implementację zawartą w jądrze i prace programistyczne przestawiły się na zastępczą Advanced Linux Sound Architecture (ALSA). Do tego czasu FreeBSD przeszedł na projekt „newpcm”, który rozpoczął się w 1999 roku i nie został naruszony.
W lipcu 2007 firma 4Front Technologies udostępniła źródła OSS w ramach CDDL-1.0 dla OpenSolaris i tylko GPL-2.0 dla Linuksa . Sterowniki dla niektórych kart dźwiękowych pozostały zamknięte i nie zostały uwzględnione w wydaniu. W styczniu 2008 roku firma 4Front Technologies wydała OSS dla FreeBSD (i innych systemów BSD ) na mocy klauzuli BSD-2 .
Stan adopcji
Kod
OSS4 istnieje obecnie głównie jako samodzielne oprogramowanie, niezintegrowane z kodem źródłowym jądra. Wyjątkiem są Solaris i OpenSolaris , które używają rozwidlenia OSS4 o nazwie Boomer. Łączy platformę OSS4 (audio i mikser) z wcześniejszym interfejsem API SADA ( /dev/audio ) firmy Sun.
Chociaż dystrybucje Linuksa, takie jak Ubuntu, udostępniły OSS4 jako pakiet oprogramowania po tym, jak stał się wolnym oprogramowaniem, zdecydowały się zignorować wszelkie błędy zgłoszone w tych pakietach.
API
Interfejs OSS API pozostał wpływowy pomimo niejasności oryginalnej biblioteki. Dokumentacja NetBSD opisuje to jako „preferowane API we FreeBSD i Solaris”.
FreeBSD zawiera niezależnie opracowaną implementację OSS API, która obejmuje między innymi ponowne próbkowanie w jądrze, miksowanie (vchans), korektor, dźwięk przestrzenny i niezależną regulację głośności dla każdej aplikacji. Obsługuje również tryb bit-perfect. Stopniowo ewoluował od zamiennika „newpcm” napisanego w 1999 roku i dogonił API OSS4 około 2005 roku.
NetBSD obsługuje tryb kompatybilności z OSS API, dostarczając plik nagłówkowy soundcard.h
i bibliotekę libossaudio
, które wewnętrznie działają przy użyciu natywnego interfejsu audio podobnego do Sun. Zamiennik pojawił się po raz pierwszy w NetBSD 1.3 z 1998 roku.
Linux, jak wspomniano powyżej, przeszedł na zaawansowaną architekturę dźwięku Linux od 2003 roku (jądro 2.6). ALSA zapewnia opcjonalny tryb emulacji OSS w jądrze, który wydaje się programom tak, jakby był to OSS. ALSA posiada również aoss , który działa poprzez przechwytywanie wywołań systemowych kierowanych do plików urządzeń OSS.
OSS/3D
OSS/3D to wtyczka do odtwarzaczy muzycznych, która działa jako silnik postprocessingu dźwięku. Obsługiwane odtwarzacze to Winamp , Windows Media Player (9 lub nowszy), musicmatch, Sonique , Foobar2000 , JetAudio , XMMS . Jest przeniesiony na platformy Windows i Linux. W przeciwieństwie do OSS jest to oprogramowanie typu shareware .
4Front OSS3D został później przemianowany na Joesoft Hear.
Krytyka
OSS zarówno jako API, jak i oprogramowanie było krytykowane przez niektórych programistów, takich jak Paul Davis (z JACK Audio Connection Kit ) i Lennart Poettering (z konkurencyjnego PulseAudio ). Większość tych krytycznych uwag była albo specyficzna dla implementacji Linuksa, a nie dla samego OSS API, albo została uwzględniona w OSS w wersji 4. [ Potrzebne źródło ]
Zobacz też
- Zaawansowana architektura dźwięku systemu Linux — dominująca struktura dźwięku w jądrze systemu Linux
- PulseAudio – serwer dźwięku do użytku stacjonarnego, powszechnie używany w systemach Linux
- JACK Audio Connection Kit – dominujący serwer dźwięku do profesjonalnej produkcji dźwięku w systemie Linux