2010-12-13 3 views
177

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

ответ

168

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

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

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

+2

У меня были PTY в PDP-11 RSTS/E в 1976 году ... – EJP

+0

Я думаю, что ptys добавили в Unix в первую очередь для поддержки Telnet, rsh и rlogin. –

+0

@larsmans, у нас был telnet (по крайней мере), прежде чем появился pty - на самом деле, telnet и я оба занялись вычислением того же года, 1969. Я был отчасти в мире DECNET, когда rsh появился в UNIX, поэтому Я не уверен в другом. В любом случае, это часть «и тому подобное». –

14

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

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

194

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

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

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

+1

Не могли бы вы дать немного более «точный» пример PTY? Я все еще не понимал, куда они входят, и как их даже называют. Спасибо – user3085931

+0

Может ли кто-нибудь помочь в том, когда и как операционная система '* nix' создает эти псевдотерминалы. –

+0

@darth_coder: они создаются при запросе приложения. Это происходит, когда вы делаете что-то вроде открытия нового графического окна терминала или удаленного входа в систему. – caf

11

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

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

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

Для Например, если номер PTY в новом окне терминала является 7, вызовите эту команду еще одно окно: % эха «Я виртуальный ди»>/DEV/Очки/7 Выхода появляется в новом терминальное окно.

Смежные вопросы