Я заметил, что есть много упоминаний, pty
и tty
в некоторых проектах с открытым исходным кодом кто-то может сказать мне, что они имеют в виду и в чем разница между ними? Спасибо!
c
unix
networking
tty
vocabulary
Зачем
источник
источник
Ctrl-Alt-F{1..6}
они подключены/dev/tty{1..6}
. Консоль Linux не является физическим терминалом, но она подключена кttyN
(а не кptyN
). Я что-то здесь упускаю?Tty - это терминал (он обозначает телетайп - в исходных терминалах использовался линейный принтер для вывода и клавиатура для ввода!). Терминал - это просто устройство пользовательского интерфейса, которое использует текст для ввода и вывода.
Pty - это псевдотерминал - это программная реализация, которая выглядит для присоединенной программы как терминал, но вместо того, чтобы напрямую связываться с «реальным» терминалом, она передает вход и выход другой программе.
Например, когда вы входите в систему и запускаете ssh
ls
,ls
команда отправляет свой вывод на псевдотерминал, другая сторона которого подключена к демону SSH.источник
*nix
основе операционной системы создаются эти псевдо-терминалы.sshd
иxterm
два типичных примера.tty: телетайп. Обычно относится к последовательным портам компьютера, к которому были подключены терминалы.
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-х годов.
Телетайп - телетайп 1930-х годов
pty
Является р seudo- т Эля ти ре порта обеспечивается компьютером ядра операционной системы для подключения программ эмуляции терминалов, таких как SSH, XTerm, или экран.PTY - ПсевдоТелетип
Терминал - это просто пользовательский интерфейс компьютера, который использует текст для ввода и вывода.
Реализации ОС
Они используют р seudo- т Эль ти ре портов , однако их имена и реализации отклонились немного.
Linux монтирует специальную файловую систему devpts в / dev (предположительно, 's' означает s erial), которая создает соответствующую запись
/dev/pts
для каждого нового окна терминала, которое вы открываете, например/dev/pts/0
macOS / FreeBSD также используют файловую структуру / dev, однако они используют
TTY
соглашение о присвоении номеровttys
для каждого нового окна терминала, которое вы открываете, например/dev/ttys002
В Microsoft Windows по- прежнему существует концепция
LPT
порта для линейных принтерных терминалов в командной оболочке для вывода на принтер.источник