Различие между pts и tty

eval часть POSIX. Интерфейс, который может быть встроенной оболочкой.

Его описанный в "Руководстве Программиста POSIX": http://www.unix.com/man-page/posix/1posix/eval/

eval - construct command by concatenating arguments

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

1) foo=10 x=foo
2) y='$'$x
3) echo $y
4) $foo
5) eval y='$'$x
6) echo $y
7) 10
  1. В первой строке Вы определяете $foo со значением '10' и $x со значением 'foo'.
  2. Теперь определите $y, который состоит из строки '$foo'. Со знаком доллара нужно оставить '$'.
  3. Проверять результат, echo $y.
  4. Результатом будет строка '$foo'
  5. Теперь мы повторяем присвоение с eval. Это сначала оценит $x к строке 'foo'. Теперь у нас есть оператор y=$foo который будет оценен к y=10.
  6. Результат echo $y теперь значение '10'.

Это - общая функция на многих языках, например, Perl и JavaScript. Взгляните на perldoc оценку для большего количества примеров: http://perldoc.perl.org/functions/eval.html

111
13.04.2017, 15:36
2 ответа

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

Имущество (устройство псевдотерминала) является оконечным устройством, которое эмулировано другой программой (пример: xterm, screen, или ssh такие программы). pts является ведомой частью имущества.

(Больше информации может быть найдено в man pty.)

Краткое изложение:

Имущество создается процессом через posix_openpt() (который обычно открывает специальное устройство /dev/ptmx), и составлен парой двунаправленных устройств посимвольного ввода-вывода:

  1. Основная часть, которая является дескриптором файла, полученным этим процессом через этот вызов, используется для эмуляции терминала. После некоторой инициализации вторая часть может быть разблокирована с unlockpt(), и ведущее устройство используется, чтобы получить или отправить символы в эту вторую часть (ведомое устройство).

  2. Ведомая часть, которая привязывается в файловой системе как /dev/pts/x (настоящее имя может быть получено ведущим устройством через ptsname() ) ведет себя как собственное оконечное устройство (/dev/ttyx). В большинстве случаев оболочка запускается, который использует ее в качестве терминала управления.

114
27.01.2020, 19:29

A tty обычное оконечное устройство (консоль на Вашем сервере, например).
A pts psuedo терминальное ведомое устройство ( xterm или ssh соединение).

man pts имеет подробное описание псевдотерминалов.

39
27.01.2020, 19:29

Теги

Похожие вопросы