Настройте соединения pulseaudio для сохранения с помощью jackd

Как указывает Кусалананда, этот вопрос очень грубый. Есть несколько важных моментов, которые могут быть полезны для понимания того, что я не мог легко вместить комментарии...

Ядро не несет прямой ответственности за обработку команд в оболочке. Оболочка — это отдельная программа. Оболочка интерпретирует текст, введенный пользователем, в команды, а затем выполняет задачи на основе этих команд.

Также важно понимать, что для Linux доступно несколько различных оболочек, включая Bash, KSH и ZSH. Таким образом, точные системные вызовы, используемые оболочкой, могут немного отличаться в зависимости от того, какую оболочку вы используете.

Как правило, некоторые команды встроены непосредственно в оболочку, но многие из них на самом деле являются программами, расположенными в каталогах, перечисленных в переменной окружения PATH. Это означает, что для многих команд оболочка выполняет другую программу. Это делается с помощью системных вызовов fork, затем exec.

Пример:

vi /etc/passwd

Оболочка не знает и не заботится о том, /etc/passwdчто такое. Он знает только, что vi— это программа (/usr/bin/vi). Он выполняет vi, используя fork (),exec ()передает текст "/etc/passwd" в качестве аргумента exec (). Затем он вызывает wait, чтобы дождаться завершения работы vi и получить возвращаемое значение.

Ядро не интересуется строкой «/etc/passwd». Он передается vi, и затем vi интерпретирует его как файл, который нужно открыть. vi отвечает за вызовopenдля открытия файла, и только на этом этапе ядро ​​проверяет, разрешено ли текущему пользователю открывать файл.

Как уже говорилось, точные используемые системные вызовы сильно различаются, и, как указывает Кусалананда, вопрос слишком сложный, чтобы перечислять все, что делает оболочка, но базовая вилка ()exec ()ожидание ()является распространенным шаблоном. при запуске любой программы.

1
27.07.2021, 01:10
0 ответов

Теги

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