Здравия желаю, товарищи профессионалы! Изучаю как устроена звуковая система Линукса. Прочитал много статей, посмотрел много блок-схем, написал конспектик для себя. И вроде всё понятно, но есть один момент, который не могу уловить. В разных статьях он по-разному освещён. Поэтому, хочу понять, где же правда.
ALSA у нас состоит из ядерной части (ALSA Kernel) и пользовательской (ALSA Library, ALSA lib, libasound), ну и плюс драйвера и утилиты, но речь не о них. Так вот:
Правильно ли я понимаю, что Pulseaudio заменяет собой ALSA Library (юзерспейсовую часть Алсы), а JACK – не заменяет, и работает поверх её? Об этом говорят блок-схемы, которые есть в сети на эту тему. Однако же, я находил и другие схемы, на которых Pulseaudio изображён рядом с ней (с ALSA-userspace) и следовательно тоже не заменяет её, а лишь дополняет. Pipewire вроде как ничего из Алсы не заменяет и работает поверх неё. Он не имеет своего API, используя как JACK API, так и Pulseaudio API.
Но при этом везде (в статьях) указано, что Pipewire идёт как замена Pulseaudio. А если так, то Pipewire должен, как и Pulseaudio, заменять собой ALSA Library. Хотя, не должен, конечно, просто это логично предположить.
В общем, запутался, прошу внести ясность. Тонкости особо не нужны, достаточно общего структурного понимания – какие модули к чему относятся, кто что заменяет.