Что означают pty и tty?

Я заметил, что есть много упоминаний о pty а также tty в некоторых проектах с открытым исходным кодом кто-то может сказать мне, что они имеют в виду и в чем разница между ними? Спасибо!

4 ответа

Решение

"tty" первоначально означало "телетайп", а "pty" означает "псевдотелептик".

В UNIX /dev/tty* - это любое устройство, которое действует как "телетайп", то есть терминал. (Называется телетайп, потому что это было то, что мы имели для терминалов в те мрачные дни.)

Pty - это псевдоточка, запись устройства, которая действует как терминал для процесса чтения и записи, но управляется чем-то другим. Они впервые появились (насколько я помню) для X Window и screen и тому подобного, где вам нужно что-то, что действует как терминал, но может использоваться из другой программы.

Tty - это терминал (он обозначает телетайп - в исходных терминалах использовался линейный принтер для вывода и клавиатура для ввода!). Терминал - это просто устройство пользовательского интерфейса, которое использует текст для ввода и вывода.

Pty - это псевдотерминал - это программная реализация, которая выглядит для присоединенной программы как терминал, но вместо того, чтобы напрямую связываться с "реальным" терминалом, она передает ввод и вывод другой программе.

Например, когда вы запускаете ssh на машине и запускаете ls, ls Команда отправляет свои выходные данные на псевдотерминал, другая сторона которого подключена к демону SSH.

Телетайп Обычно относится к последовательным портам компьютера, к которому были подключены терминалы.

pty: псевдотелетип. Ядро предоставило псевдосериальный порт, подключенный к программам, эмулирующим терминалы, например xterm или screen.

Если вы запустите команду mount без аргументов командной строки, которая отображает файловые системы, смонтированные в вашей системе, вы заметите строку, которая выглядит примерно так: ни один в / dev / pts типа devpts (rw,gid=5,mode=620) Это указывает на то, что особый тип файловой системы, devpts, смонтирован в /dev/pts . Эта файловая система, которая не связана с каким-либо аппаратным устройством, является "волшебной" файловой системой, которая создается Ядро Linux. Это похоже на файловую систему / proc

Как и каталог / dev, / dev / pts содержит записи, соответствующие устройствам. Но в отличие от / dev, который является обычным каталогом, / dev / pts - это специальный каталог, который динамически создается ядром Linux. Содержимое каталога меняется со временем и отражает состояние работающей системы. Записи в / dev / pts соответствуют псевдо-терминалам (или псевдо-TTY, или PTY).

Linux создает PTY для каждого нового окна терминала, которое вы открываете, и отображает соответствующую запись в /dev/pts . Устройство PTY действует как оконечное устройство - оно принимает ввод с клавиатуры и отображает вывод текста из программ, которые в нем работают., PTY пронумерованы, а номер PTY - это название соответствующей записи в /dev/pts .

Например, если номер PTY нового окна терминала равен 7, вызовите эту команду из другого окна: % echo 'I am a virtual di'> /dev/pts/7 Вывод отобразится в новом окне терминала.

А tty это физический т erminal- т Элет у ре порт на компьютере (как правило, последовательный порт).

Слово телетайп - это сокращение от телеграфной пишущей машинки или устройства телетайпа 1930-х годов - самого электромагнитного устройства, которое заменило машины кодирования телеграфа 1830-х и 1840-х годов.


TTY - телетайп 1930-х годов

А pty является р seudo- т Эля ти ре порта обеспечивается компьютером ядра операционной системы для подключения программ эмуляции терминалов, таких как SSH, XTerm, или экран.


PTY - Псевдотелетайп

Терминал - это просто пользовательский интерфейс компьютера, который использует текст для ввода и вывода.


Реализации ОС

Они используют р seudo- т Эль ти ре портов, однако их имена и реализации отклонились немного.

Linux монтирует специальную файловую систему devpts на / разработчике (далее "s", предположительно стоящая за s Перса), что создает соответствующую запись в/dev/pts для каждого нового окна терминала, которое вы открываете, например /dev/pts/0


macOS/FreeBSD также используют файловую структуру /dev, однако они используют пронумерованныйTTY соглашение об именовании ttys для каждого нового окна терминала, которое вы открываете, например /dev/ttys002


В Microsoft Windows все еще есть концепцияLPT порт для терминалов линейного принтера в его командной оболочке для вывода на принтер.

Другие вопросы по тегам