Что делает звук в Linux сложнее, чем в Windows?

Немного наивный, но надежный способ сделать это, переносимый в Bourne -подобно оболочкам:

#!/bin/sh

task () {
    tid="$1"
    printf 'tid %d: Running...\n' "$tid"
    sleep "$(( RANDOM % 5 ))"
    printf 'tid %d: Done.\n' "$tid"
}

ntasks=10

tid=0
while [ "$tid" -ne "$ntasks" ]; do
    tid=$(( tid + 1 ))
    printf 'main: Starting task with tid=%d\n' "$tid"
    task "$tid" >"output.$tid" 2>&1 &
done

wait

tid=0
while [ "$tid" -ne "$ntasks" ]; do
    tid=$(( tid + 1 ))
    printf 'main: Processing output from task with tid=%d\n' "$tid"
    # do something with "output.$tid"
done

Это порождает задачи в первом цикле, затем ожидает их завершения перед обработкой вывода во втором цикле. Это подходит, если задачи производят много данных.

Чтобы ограничить количество запущенных задач максимум 4, начальный цикл можно изменить на

tid=0
while [ "$tid" -ne "$ntasks" ]; do
    tid=$(( tid + 1 ))
    printf 'main: Starting task with tid=%d\n' "$tid"
    task "$tid" >"output.$tid" 2>&1 &

    if [ "$(( tid % 4 ))" -eq 0 ]; then
        wait
    fi
done
-2
23.08.2020, 17:44
1 ответ

Для новых компьютеров ключевым моментом является самое последнее установленное ядро ​​Linux, поэтому использование Debian со старым ядром может привести к проблемам со звуком.

Это легко объяснить тем, что ядро ​​Linux является монолитным и не имеет подобия стабильного API/ABI , поэтому новые драйверы означают новое ядро ​​. RedHat поддерживает определенные драйверы (, в основном хранилища и сети ), но в остальном их ядро ​​имеет ту же проблему. Многие люди недовольны такой ситуацией, но вряд ли она изменится/улучшится в ближайшее время или когда-либо.

Есть шанс, что если ядро ​​Fuschia/Zircon от Google начнет развиваться и станет реальной угрозой для ядра Linux, последнее может изменить свою модель разработки.


Вот еще одна проблема, которая затрагивает дистрибутивы Linux в целом :в то время как в Windows и MacOS X основные системные компоненты тесно взаимосвязаны, что означает эффективность, производительность и более низкое энергопотребление, Pulse Audio в Linux — это приложение на 100% пользовательского пространства, которое использует массу хаков (приоритет в реальном времени с помощью возможностей)и трюков, чтобы получить максимальную отдачу от API ALSA ядра Linux.

-3
18.03.2021, 23:10

Теги

Похожие вопросы