Главная » 2017 » Ноябрь » 18 » man 7 pty
21:28
man 7 pty

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


pty - интерфейсы псевдо-терминалов



ОПИСАНИЕ


Псевдо-терминал (иногда применяют сокращение «pty») — это пара виртуальных
символьных устройств, которые предоставляют двунаправленный канал обмена. Один
конец канала называется основным (master); другой конец канала называется
подчинённым (slave). Подчинённый конец псевдо-терминала предоставляет интерфейс,
который работает также как обычный классический терминал. Процесс, который
управляется через терминал, может открыть подчинённый конец псевдо-терминала и
затем управляться программой, которая открыла основной конец. Всё что пишется в
основной конец поступает процессу на подчинённом конце так, как-будто данные
вводились с терминала. Например, запись символа прерывания (обычно control-C) в
основной конец приводит к генерации сигнала прерывания (SIGINT) для группы
активных процессов, которая подключена к подчинённому концу. И наоборот, всё что
записывается в в подчинённый конец псевдо-терминала, может быть прочитано
процессом, который подключён к основному концу. Псевдо-терминалы используются
такими приложениями как службы сетевого входа (ssh(1), rlogin(1), telnet(1)),
эмуляторами терминалов xterm(1), script(1), screen(1), tmux(1), unbuffer(1) и
expect(1).

Поток данных между основным и подчинённым концом обрабатывается асинхронно, почти
как поток с физического терминала. Данные, записываемые в подчинённый конец, будут
доступны без промедления, но могут быть недоступны немедленно. Схожим образом,
есть маленькая задержка обработки между записью в основной конец и когда эти
данные станут видимы на подчинённом конце.

Исторически существует два программных интерфейса для взаимодействия с
псевдо-терминалами: BSD и System V. В SUSv1 стандартизирован программный
интерфейс, основанный на программном интерфейсе System V, который должен
применяться во всех новых программах, использующих псевдо-терминалы.

В Linux есть оба типа псевдо-терминалов — BSD и (стандартизированный) System V. В
системах Linux терминалы System V часто называют псевдо-терминалами UNIX 98.
Начиная с ядра версии 2.6.4 псевдо-терминалы BSD признаны устаревшими (их можно
отключить во время настройки ядра). В новых программах следует использовать
псевдо-терминалы UNIX 98.

Псевдо-терминалы UNIX 98
Незадействованный основной псевдо-терминал UNIX 98 открывается вызовом
posix_openpt(3) (эта функция открывает основное клонирующее устройство, /dev/ptmx;
смотрите pts(4)). После выполнения специальной программной инициализации (с
помощью grantpt(3) изменяется владелец и права на подчинённое устройство и с
помощью unlockpt(3) разблокируется подчинённое устройство), соответствующее
подчинённое устройство можно открыть, передав имя, полученное от ptsname(3), в
вызов open(2).

Ядро Linux задаёт ограничение на количество доступных псевдо-терминалов UNIX 98. В
ядрах до версии 2.6.3 включительно, это ограничение настраивалось при компиляции
ядра (CONFIG_UNIX98_PTYS), и разрешалось 2048 псевдо-терминалов (по умолчанию
256). Начиная с версии 2.6.4, ограничение динамически настраивается через
/proc/sys/kernel/pty/max, а в файле /proc/sys/kernel/pty/nr хранится количество
уже используемых псевдо-терминалов. Подробности об этих двух файлах смотрите в
proc(5).

Псевдо-терминалы BSD
Псевдо-терминалы в стиле BSD предоставляются в виде заранее созданных пар, с



ФАЙЛЫ


/dev/ptmx (основное клонирующее устройство UNIX 98)
/dev/pts/* (подчинённые устройства UNIX 98)
/dev/pty[p-za-e][0-9a-f] (основные устройства BSD)
/dev/tty[p-za-e][0-9a-f] (подчинённые устройства BSD)



ЗАМЕЧАНИЯ


Описание запроса TIOCPKT ioctl(2), который управляет пакетным режимом, можно найти
в ioctl_tty(2).

Вызовы ioctl(2) для BSD TIOCSTOP, TIOCSTART, TIOCUCNTL и TIOCREMOTE не реализованы
в Linux.



СМОТРИТЕ ТАКЖЕ


ioctl_tty(2), select(2), setsid(2), forkpty(3), openpty(3), termios(3), pts(4),
tty(4)



Категория: (7) Различные описания, соглашения и прочее | Просмотров: 540 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar