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

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

214 голосов
/ 13 декабря 2010

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

Ответы [ 4 ]

222 голосов
/ 13 декабря 2010

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

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

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

205 голосов
/ 13 декабря 2010

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

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

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

18 голосов
/ 13 декабря 2010

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

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

17 голосов
/ 14 ноября 2015

Если вы запустите команду 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 'Я виртуальный ди '> / dev / pts / 7 Вывод появляется в новом окне терминала.

...