суббота, 2 февраля 2013 г.

для чего необходим отдельный стек режима ядра

С аудио в Linux имеется проблема ЂЂЂ и речь не о том, что данная система не всегда работает: беда в ее в чрезмерной сложности. Попробуйте-ка набросать на бумаге схему взаимосвязей между всеми технологиями Linux, участвующими в превращении аудиофайла в мелодию: она мигом уподобится вороху макарон! И это провал: ведь у обработки звука нет причин отличаться от других технологий. Информация входит в ваш Linux-компьютер, преобразуется и поступает на выход.Если бы мы рисовали схемумо дели OSI ЂЂЂ она описывает инфраструктуру, обеспечивающую взаимодействие вашего компьютера с другими машинами сети ЂЂЂ то увидели бы четкие уровни, ответственные каждый за свою группу процессов и функция и практически не перекрывающихся. На седьмом, прикладном уровне процессы пользователей не занимаются обработкой электрических импульсов от потока битов: это задача процессов первого уровня, физического.А вот в Linux-аудио такое бывает сплошь и рядом. Здесь даже нет четкого определения нижнего уровня, и между аппаратурой и ядром суетится несколько независимых друг от друга аудиотехнологий. Звуковая архитектура Linux ЂЂЂ это скорее модель земной коры, чем сети: нижние уровни иногда извергаются на поверхность, вызывая оторопь, а верхние сползают и обнажают «пласты» нижележащих технологий, которым полагается быть скрытыми. Например, протокол Open Sound ранее использовался на уровне ядра для прямого диалога с аппаратурой, а теперь это ЂЂЂ слой совместимости поверх ALSA. ALSA же представляет собой стек уровня ядра плюс API высокого уровня для программистов, смешавший драйверы и свойства аппаратных компонентов с функцией воспроизведения объемного звука или кодека МРЗ. Большинство дистрибутивов еще и громоздят над этим PulseAudio и GStreamer, и получается очаг нестабильности похлеще разлома Сан-Андреас в Калифорнии [эпицентр множества землетрясений, -прим.пер.]. Упрощенная схема типичных для Linux уровней аудио. Чем ни же уровень, тем ближе он к аппаратным средствам.ALSAВХОДЫ: PulseAudio, Jack, GStreamer, Xine, SDL, ESDВЫХОДЫ: аппаратура, OSSКак говорится, танцевать начнем от печки. Для современного Linux-аудио этой «печкой» является ALSA (Advanced Linux Sound Architecture, Продвинутая звуковая архитектура Linux). ALSA связана с ядром Linux и обеспечивает работу со зву]ком для всех компонентов системы. Но ALSA ЂЂЂ не просто драйвер ядра: она служит программным микшером, эмулирует совместимость для других аудиослоев, создает АР¶ для программистов и работает с такой низкой и стабильной латентностью, что способна конкурировать со своими эквивалентами ASIO (Audio Stream Input/Output) и CoreAudio из Windows и Mac OS X.ALSA создавалась на замену OSS (Open Sound System). Однако драйвер OSS все же не умер: в ALSA предусмотрена совместимость со старыми приложениями, поддерживающими только OSS. Проще всего считать ALSA уровнем драйверов устройств в системе Linux-аудио. Вашей звуковой аппаратуре нужен соответствующий модуль ядра, с префиксом snd_, а тот надо загрузить и запустить. И чтобы услышать хоть какой-нибудь звук, не обойтись без драйвера ядра из ALSA. Вот почему ваш ноутбук так долго оставался «немым» ЂЂЂ пока у кого-то не дошли ру]ки написать для него звуковой драйвер. К счастью, в наше время большинство дистрибутивов Linux настраивают ваши устройства и модули автоматически.ALSA переводит функциональность звуковой аппаратуры в программный API, которым прочие компоненты системы пользуются для манипуляции звуком. Эта архитектура создавалась для устранения недостатков OSS (и большинства аудиодрайверов того времени), а самым заметным из них была невозможность работы с аудиоустройством сразу нескольких приложений. Задача программного компонента ALSA ЂЂЂ управление запросами к звуковым устройствам, с учетом возможностей этих последних.Например, если вы хотите играть в какую-нибудь игру еще и под музыку из Amarok, ALSA нужно принимать оба потока аудио и либо микшировать их программно, либо отсылать их на аппаратный микшер звуковой карты. ALSA умеет управлять работой до 8 устройств одновременно, а иногда и обращается к аппаратным функциям MIDI, хотя это зависит от звукового драйвера вашего оборудования и по мере роста мощности компьютеров теряет актуальность.В отличие от типичного модуля ядра/драйвера устройства, ALSA предоставляет возможность своей настройки. Здесь-то и проявляется сложность аудиосисте

Linux-аудио в деталях. Всё об ALSA и PulseAudio

           

Вы можете войти через одну из учетных записей:

Linux-аудио в деталях. Всё об ALSA и PulseAudio / Linux / Портал информационной безопасности, все об IT безопасности

Комментариев нет:

Отправить комментарий