Я заметил много упоминаний pty
и tty
в некоторых проектах с открытым исходным кодом, может ли кто-нибудь сказать мне, что они означают и в чем разница между ними?
Что означают pty и tty?
Ответы (5)
«tty» изначально означало «телетайп», а «pty» - «псевдотелетайп».
В UNIX / dev / tty * - это любое устройство, которое действует как «телетайп», то есть терминал. (Называется телетайпом, потому что это то, что у нас было для терминалов в те тяжелые дни.)
Pty - это псевдотерминал, запись устройства, которая действует как терминал для процесса чтения и записи, но управляется чем-то другим. Впервые они появились (насколько я помню) для X Window, screen и т.п., где вам нужно было что-то, что работало бы как терминал, но могло бы использоваться из другой программы.
Ctrl-Alt-F{1..6}
, и они подключены к /dev/tty{1..6}
. Консоль Linux не является физическим терминалом, но она подключена к ttyN
(не к ptyN
). Я что-то упустил?
- person Utku; 26.03.2017
Терминал - это терминал (это означает телетайп - исходные терминалы использовали линейный принтер для вывода и клавиатуру для ввода!). Терминал - это в основном просто устройство пользовательского интерфейса, которое использует текст для ввода и вывода.
Pty - это псевдотерминал - это программная реализация, которая выглядит для присоединенной программы как терминал, но вместо того, чтобы напрямую связываться с «настоящим» терминалом, она передает ввод и вывод другой программе.
Например, когда вы подключаетесь к машине по ssh и запускаете ls
, команда ls
отправляет свой вывод на псевдотерминал, другая сторона которого подключена к демону SSH.
*nix
создает эти псевдотерминалы.
- person Krishna Oza; 07.02.2017
sshd
и xterm
- два типичных примера.
- person caf; 08.02.2017
tty: телетайп. Обычно относится к последовательным портам компьютера, к которому были подключены терминалы.
pty: псевдотелетип. Ядро предоставляет псевдосерийный порт, подключенный к программам, эмулирующим терминалы, например xterm или screen.
Если вы запустите команду mount без аргументов командной строки, которая отображает файловые системы, смонтированные в вашей системе, вы заметите строку, которая выглядит примерно так: none на / dev / pts type devpts (rw, gid = 5, mode = 620) Это указывает на то, что особый тип файловой системы, devpts, смонтирован в / dev / pts. Эта файловая система, которая не связана с каким-либо аппаратным устройством, является «волшебной» файловой системой, созданной Ядро Linux. Она похожа на файловую систему / proc.
Как и каталог / dev, / dev / pts содержит записи, соответствующие устройствам. Но в отличие от / dev, который является обычным каталогом, / dev / pts - это специальный каталог, который динамически создается ядром Linux. Содержимое каталога меняется со временем и отражает состояние работающей системы. Записи в / dev / pts соответствуют псевдотерминалам (или псевдотерминалам, или PTY).
Linux создает PTY для каждого нового окна терминала, которое вы открываете, и отображает соответствующую запись в / dev / pts. Устройство PTY действует как терминальное устройство - оно принимает ввод с клавиатуры и отображает текстовый вывод из программ, которые в нем работают. . PTY пронумерованы, а номер PTY - это имя соответствующей записи в / dev / pts.
Например, если номер PTY нового окна терминала равен 7, вызовите эту команду из другого окна:% echo «Я виртуальный ди»> / dev / pts / 7 Результат появится в новом окне терминала.
tty
- это физический t окончательный t порт на компьютер (обычно последовательный порт).
Телетайп tty также может быть эмулирован компьютерной программой, работающей как модуль в пространстве ядра.
Слово телетайп является сокращением от телеграфной пишущей машинки или телетайп, устройство 1930-х годов - само по себе электромагнитное устройство, которое заменило телеграфные кодирующие машины 1830-х и 1840-х годов.
Телетайп - телетайп 1930-х годов
pty
- это p seudo- t тип pe порт, предоставляемый ядром операционной системы компьютера для подключения пользователя программы эмуляции наземного терминала, такие как ssh, xterm или screen.
Терминал - это просто пользовательский интерфейс компьютера, который использует текст для ввода и вывода.
Реализации ОС
В них используются порты p seudo- t element pe, однако их названия и реализации немного различаются.
Linux монтирует специальную файловую систему devpts на / dev ('s' предположительно означает s erial), которая создает соответствующую запись в /dev/pts
для каждого нового окна терминала, которое вы открываете, например /dev/pts/0
macOS / FreeBSD также используют файловую структуру / dev, однако они используют пронумерованное TTY
соглашение об именах ttys
для каждого нового окна терминала, которое вы открываете, например /dev/ttys002
В Microsoft Windows по-прежнему используется концепция LPT
порта для терминалов построчного принтера в командной оболочке для вывода на принтер.
pty/tty
s описываются как заранее созданные пары файлов, представляющие ведущий / ведомый конец псевдотерминала (см. описание стиля BSD). - person wangkaibule   schedule 23.09.2020