Две стороны оператора трубы идут параллельно. Для этого обе стороны запускаются в отдельных процессах. (Это был единственный способ сделать это в исходной оболочке Unix, и это все еще единственный способ сделать это в современных оболочках.) Рассмотрим фрагмент вроде
testb=left | testb=right
echo $testb
. В zsh правая часть оператора конвейерной передачи выполняется в исходный процесс, а левая часть выполняется в подоболочке . Подоболочка обычно реализуется через отдельный процесс; даже если оболочка оптимизирует выполнение и не использует отдельный процесс, она гарантирует, что любые изменения состояния оболочки (переменные, перенаправление и т. д.) ограничиваются подоболочкой для согласованности. Таким образом, приведенный выше фрагмент печатает справа
.
(Другие оболочки также могут запускать правую часть канала в подоболочке. Среди обычных оболочек только zsh и ATT ksh запускают правую часть в исходном контексте. Левая часть всегда выполняется в подоболочке.)
Если вы хотите передавать данные по конвейеру без создания подоболочки, вы можете использовать замену процесса . Подстановка процесса создает канал в подоболочке и дает контроль над тем, подключен ли исходный контекст к входной или выходной стороне канала.
test "testa" > >(cat)
(Обратите внимание на пробел между >
и > (…)
: >> (cat)
будет анализироваться как подстановка процесса в режиме добавления, что передаст путь к каналу в качестве второго аргумента test
. Здесь мы хотим перенаправить вывод вызова функции в канал.)
Таким образом, установка режима — это система, в которой ядро изменяет графические режимы, а не ваш X-сервер. Это был первый шаг, необходимый для того, чтобы X-сервер (или другая система отображения )не обязательно запускались от имени пользователя root, а драйверы для большинства современных аппаратных средств используют настройку режима для изменения графических настроек.
Однако проблема заключается в том, что для того, чтобы установка режима работала, аппаратное обеспечение должно иметь все необходимое для правильной работы. В случае некоторых графических процессоров AMD это означает, что ядру необходимо загрузить прошивку в графический процессор; иначе экран больше не сможет обновляться. Обратите внимание, что только приводит к зависанию экрана; это не авария. Таким образом, если ваша система является сервером, вы можете игнорировать это; но для настольных компьютеров или ноутбуков это явно не очень хорошо.
Поскольку рассматриваемая микропрограмма не является свободным программным обеспечением в соответствии с определением Debian , ее нельзя упаковать в «основные» репозитории Debian. Однако это не означает, что он вообще не упакован; вместо этого он просто упакован в репозиторий non-free
. Это также означает, что он недоступен в программе установки.
Чтобы решить эту проблему, все, что вам нужно сделать, это:
nomodeset
(или ssh в машину)/etc/apt/sources.list
и добавив contrib non-free
после main
, который уже есть в некоторых строках firmware-amd-graphics
, который теперь будет извлечен из non-free
. nomodeset
, чтобы активировать прошивку.