Сато Кацура упомянул UCSPI, интерфейс клиент-серверной программы Unix. Программы, которые придерживаются этого правила, используют стандартный ввод, стандартный вывод и стандартную ошибку как обычно. Но набор инструментов определяет дополнительные стандартные дескрипторы открытых файлов. Существуют и другие наборы инструментов, которые определяют аналогичные стандартные файловые дескрипторы помимо первых трех.
Некоторые из них даже согласуются друг с другом. Подобно stdaux
и stdprn
в качестве стандартных файловых дескрипторов 3 и 4 из мира PC-DOS / DR-DOS / MS-DOS, на самом деле существует последовательное стандартное использование файловых дескрипторов 3, 4 , 5, 6 и 7 в мирах некоторых систем управления терминалами Unix и Linux, управления журналами и клиентского программного обеспечения UCSPI.
6 и 7: стандартные от сервера и стандартные на сервер
С UCSPI люди обычно в основном помнят протокол на стороне сервера, где серверы обмениваются данными со своими стандартными входами и выходами. Однако на менее запоминающейся стороне клиента такие инструменты, как tcpclient
(из UCSPI-TCP Бернштейна), sslclient
(из UCSPI-SSL Бакстера / Гиффорда / Хоффмана) и tcp-socket-connect
(из набора инструментов nosh) использовать дополнительные стандартные файловые дескрипторы. Клиентские программы, с которыми все они связаны, определяются как ожидающие дескриптора открытого файла 6 при чтении из сети и дескриптора открытого файла 7 как записи в сеть.
В исходный набор инструментов ucspi-tcp Бернштейна входил набор утилит nonce TCP, созданных на основе tcpclient
. Например: Вот простой инструмент Бернштейна http @
.(Феликс фон Лейтнер опубликовал более сложную картину десять лет назад.)
#!/bin/sh echo "GET /${2-} HTTP/1.0 Host: ${1-0}:${3-80} " | tcpclient -RHl0 -- "${1-0}" "${3-80}" sh -c ' addcr >&7 exec delcr <&6 ' | awk '/^$/ { body=1; next } { if (body) print }'
TCP-сокет-соединение
. nosh Guide . Программное обеспечение. sslclient
. UCSPI-SSL. Суперскрипт. s6-tcpclient
. s6-сеть. Лоран Берко. 3, 4 и 5: стандартный ctty, стандартный главный и подчиненный PTY
Исходный набор инструментов PTY Дэниела Дж. Бернштейна включал в набор инструментов дополнительные стандартные определения файловых дескрипторов. Файловый дескриптор 3 был управляющим терминалом (соглашение, которое Бернштейн предложил в своих сопроводительных документах по управлению заданиями в оболочках), файловый дескриптор 4 был главной стороной PTY, а файловый дескриптор 5 был его подчиненной стороной.
Набор инструментов PTY содержит, пожалуй, самый яркий пример инструментов, которые определяют конкретные соглашения об открытых файловых дескрипторах в своих руководствах. На странице руководства ptyspawn
обсуждаются файловые дескрипторы 0, 1, 2, 3, 4, 5 и 9.
Инструменты набора инструментов nosh для управления терминалом разделяют некоторые из них. pty-get-tty
, например, передает ведущую сторону псевдотерминала, который он открывает как файловый дескриптор 4; и pty-run
и console-terminal-emulator
оба ожидают получить его там.
ptyget
набор инструментов Дэниела Бернштейна)». djbwares . Программное обеспечение. pty-get-tty
. Руководство по эксплуатации . Программное обеспечение. pty-run
. Руководство по телефону . Программное обеспечение. консоль-терминал-эмулятор
. Руководство по эксплуатации . Программное обеспечение. LISTEN_FDS
протокол 3 и выше: стандартное прослушивание
Что такое UCSPI для передачи подключенных сокетов, этот протокол предназначен для передачи прослушивающих сокетов. (Это в названии.) Первоначальный протокол inetd
для прослушивания сокетов заключался в том, что они были стандартным вводом серверного процесса, и это то, что, например, до сих пор выполняет набор инструментов Bercot s6 -etwork. Но в мире systemd идея заключалась в том, чтобы серверные процессы прослушивали более одного сокета одновременно. Так возник этот протокол, который определяет файловые дескрипторы 3 и выше как последовательность N открытых файловых дескрипторов, где N - значение переменной среды LISTEN_FDS
. .
Таким образом, хотя это может и не быть явным в их руководствах, каждая серверная программа, которая включает этот протокол, имеет ожидаемый набор файловых дескрипторов «стандартного прослушивания».
На страницах руководства для таких инструментов, как tcp-socket-listen
, которые принимают и добавляют дескрипторы файлов сокетов прослушивания, эти дескрипторы файлов явно упоминаются.Они также упоминают менее известный протокол UPSTART_FDS
из мира выскочки.
s6-tcpserver6-socketbinder
. s6-сеть. Лоран Берко. прослушивание сокетов локальной датаграммы
. Руководство по эксплуатации . Программное обеспечение. прослушивание сокетов локального потока
. Руководство по эксплуатации . Программное обеспечение. netlink-датаграмма-сокет-прослушивание
. Руководство по эксплуатации . Программное обеспечение. TCP-сокет-прослушивание
. Руководство по телефону . Программное обеспечение. udp-socket-listen
. Руководство по телефону . Программное обеспечение. фифо-слушай
. Руководство по эксплуатации . Программное обеспечение. 4 и 5: стандартные данные вращения
Как вы уже заметили, соглашение, начатое с multilog
Бернштейна, было соглашением для инструментов, порожденных multilog
и его последователей во время ротации журнала. Все они определяют файловые дескрипторы 4 и 5 как способ передачи данных от запуска к запуску программы фильтра ротации.
3: стандартные учетные данные
Интерфейс Бернштейна контрольный пароль
, первоначально использовавшийся для проверки входа на сервер POP3, определил другой набор инструментов, ожидающих открытия дополнительного файлового дескриптора. И снова это файловый дескриптор 3, в который программа-порождение должна записать или записать учетные данные пользователя, которые проверяет программа проверки пароля.В настоящее время существует целое подсемейство программ, совместимых с checkpassword
.
контрольный пароль
интерфейс ». Интернет-почта . cr.yp.to. Я не думаю, что информации достаточно, чтобы правильно ответить на этот вопрос.
Я бы посоветовал использовать аварийный USB / CD для монтирования жесткого диска / раздела и переустановки загрузчика на hd0
.