Как Linux использует / dev / tty и / dev / tty0

Я вижу разницу между / dev / tty и / dev / tty0, тестируя предоставленный метод из этого вопроса . Но я действительно задумываюсь о практическом использовании этих устройств (например, о ситуациях, которые они будут использовать).

2 Solutions collect form web for “Как Linux использует / dev / tty и / dev / tty0”

/dev/tty является управляющим tty текущего процесса для любого процесса, который фактически открывает этот специальный файл. Это не обязательно виртуальное консольное устройство ( /dev/tty n ) и может быть pty , последовательным портом и т. Д. Если управляющий tty не является виртуальной консолью, тогда процесс не должен взаимодействовать с консольными устройствами даже если его псевдометрия фактически реализована на системной консоли. E. g. для оболочки в терминальном эмуляторе под локальным сервером X, указанные программы образуют такую ​​цепочку взаимодействий, как:

Оболочка Unix
/dev/pts/2 (≡ /dev/tty для его процессов)
драйвер ядра pty
/dev/ptmx
эмулятор терминала
⇕ Протокол X Window
X-сервер
/dev/tty7 (≡ /dev/tty для сервера)
системная консоль
z x c ↿⇂ [_̈░░]
пользователь

Использование /dev/tty по программам userland включает в себя:

  • Напишите что-то на управляющий терминал, игнорируя все перенаправления и трубы;
  • Сделать ioctl () – см. Tty_ioctl (4);
  • Например, отсоедините от терминала (TIOCNOTTY).

/dev/tty0 – это активная в настоящий момент виртуальная консоль операционной системы (то есть видимая на мониторе). Этот специальный файл вряд ли используется системным программным обеспечением, но /dev/console фактически является «псевдонимом» для tty0 а /dev/console широко используется демонами syslog, а иногда и самим ядром.

Экспериментируйте, чтобы показать разницу: запустите root оболочку на tty3 ( Ctrl + Alt + F3 ) или в эмуляторе терминала. Теперь

 # sleep 2; echo test >/dev/tty 

затем быстро Ctrl + Alt + F2 , подождите две секунды и Ctrl + Alt + обратно. Где вы видите результат?
И теперь тот же тест для /dev/tty0 .

/ dev / tty является управляющим tty для любого процесса. Это может быть ваша оболочка.

Если ваш процесс не имеет управляющего tty, / dev / tty недоступен, это, например, верно для демонов.

Если у вашего процесса есть управляющий tty, то / dev / tty является псевдонимом драйвера для реального tty-драйвера, который ваш процесс использует для stdin, stdout или stderr.

См. man -s7d tty для получения дополнительной информации. Обратите внимание, что раздел, в котором находится данное руководство, может различаться между различными ОС и его не следует путать с справочной страницей в разделе 1. Поэтому проверьте, например, man -k tty .

  • Как я могу навсегда изменить тип шрифта консоли TTY, чтобы он сохранялся после перезагрузки?
  • Как войти в систему пользователя tty из ssh?
  • Что такое буфер прокрутки и прокрутки?
  • Могу ли я подключиться к физическому терминалу любого компьютера без монитора
  • Debian all tty зависает на «Загрузка Пожалуйста, подождите» (графический вход работает нормально)
  • Как восстановить ключи XON / XOFF?
  • Исходный код скорости последовательного порта
  • linux - отключить все видеовыходы
  • Определить владельца сеанса процесса
  • Звук трубки другому пользователю на том же компьютере (pulseaudio)
  • Обнаруживать при запуске в виртуальном терминале?
  • Linux и Unix - лучшая ОС в мире.