Pokročilá zvuková architektura Linuxu - Advanced Linux Sound Architecture
![]() Screenshot z Alsamixer 1.0.14 | |
Původní autoři | Jaroslav Kysela |
---|---|
Vývojáři | Tým ALSA[1] |
První vydání | 1998 |
Stabilní uvolnění | 1.2.4[2] / 20. října 2020 |
Napsáno | C[3] |
Operační systém | Linux |
Typ | |
Licence | |
webová stránka | alsa-projekt |


Pokročilá zvuková architektura Linuxu (ALSA) je softwarový rámec a část Linuxové jádro , který poskytuje aplikační programovací rozhraní (API) pro zvuková karta ovladače zařízení.
Některé z cílů projektu ALSA při jeho vzniku byly automatická konfigurace hardwaru zvukové karty a ladné zacházení s více zvukovými zařízeními v systému. ALSA se uvolňuje pod GNU General Public License (GPL) a GNU Lesser General Public License (LGPL).[4]
Zvukové servery PulseAudio a ZVEDÁK (profesionální audio editace a mixování zvuku s nízkou latencí), abstrakční API na vyšší úrovni OpenAL, Zvuk SDL atd. pracují na vrcholu ALSA a implementovaných ovladačů zařízení zvukové karty. V systémech Linux ALSA nahradil starší Otevřete zvukový systém (OSS).
Dějiny
Projekt vývoje ALSA vedl Jaroslav Kysela, a byl založen na ovladači zařízení Linux pro Windows Ultrazvuk Gravis zvuková karta. Začalo to v roce 1998 a bylo vyvinuto odděleně od jádra Linuxu, dokud nebylo představeno ve vývojové řadě 2.5 v roce 2002 (2.5.4–2.5.5).[5]
Ve verzi 2.6 nahradil předchozí systém, Otevřete zvukový systém (OSS), ve výchozím nastavení (ačkoli vrstva zpětné kompatibility existuje).[6]
ALSA má větší a složitější API než OSS, takže může být obtížnější vyvinout aplikaci, která používá ALSA jako zvukovou technologii. Zatímco ALSA může být nakonfigurován tak, aby poskytoval vrstvu emulace OSS, taková funkce již není k dispozici nebo není ve výchozím nastavení nainstalována v mnoha distribucích Linuxu.

Funkce
ALSA byl navržen s některými funkcemi, které nebyly v době jeho koncepce podporovány OSS:
- Hardwarové MIDI syntéza.
- Hardwarové míchání více kanálů.
- Plny Duplex úkon.
- Víceprocesorové, bezpečné pro vlákna ovladače zařízení.
Kromě ovladačů zvukových zařízení ALSA dodává a uživatelský prostor knihovna pro vývojáře aplikací, kteří chtějí používat funkce ovladačů prostřednictvím rozhraní, které je vyšší úroveň než rozhraní poskytované pro přímou interakci s ovladači jádra. Na rozdíl od API jádra, které se pokouší přímo odrážet schopnosti hardwaru, představuje knihovna uživatelského prostoru ALSA abstrakci, která zůstává co nejvíce standardizována napříč různými prvky hardwaru. Tohoto cíle je částečně dosaženo použitím softwarové doplňky; například mnoho moderních zvukových karet nebo integrovaných zvukových čipů nemá ovládání „hlavní hlasitosti“. Místo toho pro tato zařízení poskytuje knihovna uživatelského prostoru softwarové ovládání hlasitosti pomocí „softvol „Modul plug-in a běžný aplikační software nemusí zajímat, zda je taková kontrola implementována základním hardwarem nebo softwarovou emulací takového základního hardwaru.
Aplikace
Kromě softwarového rámce interního pro linuxové jádro poskytuje projekt ALSA také obslužné programy příkazového řádku alsactl
, mixér
, arecord / aplay
a alsamixer
, an ncurses -na základě TUI.
Existují také grafická uživatelská rozhraní naprogramovaná vývojáři třetích stran, například gnome-alsamixer (pomocí GTK + ), kmix, xfce4-mixer, lxpanel, qashctl, pavucontrol, alsamixergui (pomocí FLTK ) a pravděpodobně ještě více.
Koncepty
Tato část poskytuje přehled základních konceptů týkajících se ALSA.[7][8][9]
Typicky ALSA podporuje až osm karty, číslovaná od 0 do 7; každá karta je fyzické nebo logické zařízení jádra schopné vstupu a výstupu. Každá karta může být dále adresována svým id, což je vysvětlující řetězec, například „Sluchátka„nebo“ICH9".
Karta má zařízení, očíslované od 0; zařízení může být přehrávání typ, což znamená, že vydává zvuk z počítače, nebo nějaký jiný typ, například zajmout, řízení, časovačnebo řadič;[10] pokud není zadáno žádné konkrétní zařízení, použije se ve výchozím nastavení číslo 0.
Zařízení může mít dílčí zařízení, očíslované od 0; dílčí zařízení představuje nějaký relevantní koncový bod zvuku pro zařízení, například pár reproduktorů. Není-li zadáno dílčí zařízení nebo je-li zadáno číslo dílčího zařízení −1, použije se jakékoli dostupné dílčí zařízení.
Kartu rozhraní je popis protokolu ALSA pro přístup ke kartě; možná rozhraní zahrnují: hw, plughw, výchozí, a zástrčka: dmix. The hw Rozhraní poskytuje přímý přístup k zařízení jádra, ale bez podpory míchání softwaru nebo přizpůsobení streamu. The plughw a výchozí povolit zvukový výstup tam, kde hw rozhraní by způsobilo chybu.
Aplikace obvykle popisuje zvukový výstup kombinací všech výše uvedených specifikací dohromady v a řetězec zařízení[Citace je zapotřebí ], který má jednu z následujících forem (které jsou citlivý na velká písmena ):
- rozhraní: karta, zařízení, dílčí zařízení
- rozhraní: CARD = 1, DEV = 3, SUBDEV = 2.
ALSA proud je datový tok představující zvuk; nejběžnější formát streamu je PCM které musí být vyrobeny tak, aby odpovídaly charakteristikám nebo parametrům hardwaru, včetně:
- vzorkovací frekvence: často 44,1 kHz v domácích stereech nebo 48 kHz v domácích kinech, přesto až 88,2 kHz, 96 kHz nebo dokonce 192 kHz pro produkci nebo reprodukci hi-fi zvuku.
- šířka vzorku: měřeno v určitém počtu bitů na vzorek (například 8, 16, 24 nebo 32 bitů / vzorek)
- ukázkové kódování: jako endianismus
- počet kanálů: 1 pro mono, 2 pro stereo nebo 6 pro AC-3 /IEC958
Implementace
Vrstva ALSA System on Chip (ASoC) si klade za cíl poskytnout lepší podporu pro ALSA na vestavěné systémy které používají a systém na čipu (SoC) design.[11]
Viz také
Reference
- ^ Tým Alsa, alsa-project.org, 29. září 2008, vyvoláno 2012-01-08
- ^ https://www.alsa-project.org/wiki/Changes_v1.2.3.2_v1.2.4; datum zveřejnění: 20. října 2020.
- ^ „ALSA“, Shrnutí analýzy, Ohloh, vyvoláno 2012-01-08
- ^ A b "Úvod". alsa-project.org. Citováno 2012-01-08.
- ^ Poznámky k vydání systému Linux 2.5.5, vyvoláno 2012-01-08
- ^ Emulace OSS, archivovány z originál dne 06.06.2012, vyvoláno 2012-07-07
- ^ Tranter, Jeff (říjen 2004), „Úvod do programování zvuku pomocí ALSA“, Linux Journal, vyvoláno 2012-01-08
- ^ Phillips, Dave (červen 2005), „Uživatelská příručka k ALSA“, Linux Journal, archivovány z originál dne 09.01.2012, vyvoláno 2012-01-08
- ^ Dokumentace Doxygen knihovny Alsa C, Říjen 2007, vyvoláno 2012-01-08
- ^ „ALSA project - the C library reference: Sequencer interface“. www.alsa-project.org. Citováno 2019-04-30.
- ^ ALSA SoC vrstva, kernel.org, 2017-07-13
externí odkazy
Uživatelský režim | Uživatelské aplikace | Například, bash, LibreOffice, GIMP, Mixér, 0 n.l., Mozilla Firefox, atd. | ||||
---|---|---|---|---|---|---|
Nízkoúrovňové komponenty systému: | Systém démoni: systemd, spusť to, logind, networkd, PulseAudio, ... | Okenní systém: X11, Wayland, SurfaceFlinger (Android) | Další knihovny: GTK +, Qt, EFL, SDL, SFML, FLTK, GNUstep, atd. | Grafika: Mesa, AMD Catalyst, ... | ||
C standardní knihovna | otevřeno() , exec () , sbrk () , zásuvka() , fopen () , calloc () , ... (až do roku 2000 podprogramy )glibc chce být rychlý, musl a uClibc cílové vestavěné systémy, bionický psáno pro Android, atd. Všechny chtějí být POSIX /SUS -kompatibilní. | |||||
Režim jádra | Linuxové jádro | stat , spojit , dup , číst , otevřeno , ioctl , psát si , mmap , zavřít , výstup atd. (přibližně 380 systémových volání)Linuxové jádro Rozhraní systémového volání (SCI, chce být POSIX /SUS -kompatibilní)[Citace je zapotřebí ] | ||||
Plánování procesu subsystém | IPC subsystém | Správa paměti subsystém | Virtuální soubory subsystém | Síť subsystém | ||
Další komponenty: ALSA, DRI, evdev, LVM, mapovač zařízení, Plánovač sítě Linux, Netfilter Bezpečnostní moduly Linux: SELinux, TOMOYO, AppArmor, Plácnutí | ||||||
Hardware (procesor, hlavní paměť, zařízení pro ukládání dat, atd.) |