В Ubuntu 10.04, если я проверяю в / dev, существует более 50 ттыс. tty0, tty1, tty2 ....
Я понимаю, что tty является символьным устройством для консольного ввода / вывода.
но почему их так много? это что-то вроде пула?
и в чем разница между / dev / pts / 0, 1, 2 ..., / dev / tty?
Если я открываю терминал, новый номер создается в / dev / pts. но я не знаю когда / dev / tty? используется.
даже если я создаю SSH-соединение, число / dev / tty s одинаково.
и если я сделаю
cat /dev/tty0
и введите что-то на клавиатуре, я получаю соответствующие выводы. почему это происходит?
Ответы:
Ttys не просто устройства ввода / вывода. Они также выполняют специальную работу, выступая в качестве управляющего терминала для сеанса, например, отправляя сигналы (Ctrl + C). / dev / ttyNN - это виртуальные консоли, которые являются полноэкранными дисплеями на мониторе.
Терминалы начинаются с / dev / tty1. Обычно вы можете переключиться на эти консоли, нажав клавиши Ctrl + Alt + Fn.
Например, Ctrl + Alt + F1 приведет вас к первому виртуальному терминалу. В настоящее время большинство дистрибутивов Linux используют X-сервер от tty1. Таким образом, нажатие Ctrl + Alt + F1 может не иметь эффекта.
Ctrl + Alt + F2 приведет вас ко второму терминалу. Обычно в дистрибутивах запускается программа входа в систему (agetty) на виртуальном терминале.
Программы входа в систему предоставляют вам приглашение для входа в систему и позволяют войти с именем пользователя / паролем. Скрипты инициализации решают, где будут запускаться все программы входа в систему. Поэтому, в зависимости от этого, вы можете видеть или не видеть приглашение для входа, скажем, tty9. Чтобы вернуться к интерфейсу GUI, нажмите Ctrl + Alt + F1 (как в примере, приведенном выше).
/ dev / tty0 - это специальное устройство, которое указывает на текущий терминал. Таким образом, независимо от того, откуда вы его запускаете (с любой виртуальной консоли), все, что читается из / записывается в tty0, отправляется на ваш текущий терминал.
Второй столбец в «ps ax» также содержит управляющий терминал программы. Для некоторых программ, таких как демоны, вы можете видеть, что столбец - «?», Что означает, что они не связаны с терминалом.
/ dev / pts / 0 и т. д. являются псевдо-терминальными устройствами, которые не подключены к системному дисплею. например, терминал, который вы получаете при открытии терминала gnome или любого другого терминала с графическим интерфейсом. Это клиент-серверный подход, при котором клиентская часть будет экспортироваться в такие программы, как bash. Данные, отправляемые программой на псевдотерминал, отправляются на сторону «сервера» (которая обычно отслеживается другой программой, такой как gnome-терминал). Процесс управления (на стороне сервера) определяет, что необходимо отправить в терминал, что в конечном итоге увидит клиент. Эти устройства помогают вам открывать несколько «графических терминалов» без каких-либо ограничений в вашей системе, по-прежнему предоставляя такие же старые терминалы, как элементы управления (ioctl (), настройка цвета, отправка сигналов [Ctrl + C] и т. Д.).
источник
man /dev/pts
хорошее начало, такжеman termios
обратите внимание, что клиент / сервер является двунаправленным среди ptys - ptm и pts - где виртуальный терминал, такой как gnome-терминал, или xterm обычно подключается к главному устройству и оболочке, такой как bash, подчиненный ,/dev/tty
находится текущий управляющий терминал, но я не знаю, что там/dev/tty0
,/dev/tty1
как и Linux KMSCON. И/dev/tty7
это X-сервер.Я просто хочу уточнить отношения такого рода вещей.
Во-первых, / dev / tty находится на уровне процесса, это может быть ttyn (tty1, tty2, ...), ttySn (ttyS0, ttyS1), pty (pts / 0, pts / 1) и что-то еще.
/ dev / tty0 - псевдоним текущей (основной) виртуальной консоли, поэтому это могут быть tty1, tty2 и т. д. Обратите внимание, что ttyS0 не является псевдонимом; Это первый последовательный порт.
/ dev / console - системная консоль, по умолчанию она указывает на / dev / tty0. Это может быть ttyn, ttySn, ttyUSBn, lpn и так далее.
Грубо говоря, / dev / tty> / dev / cosole> / dev / tty0
источник