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

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

  • Как управлять mysql с помощью zpty?
  • Вернитесь в графический интерфейс с текстовой консоли со многими серверами X11?
  • Использование общего серийного модема
  • Как использовать экран в качестве последовательного терминала с эмуляцией клавиш CR + LF автоматический режим
  • Нет Вход в систему от tty2 до 6
  • Почему существует разница между последними и последними коммандными записями и почему в записи последних записей нет последней записи входа для пользователя?
  • Измените количество сгенерированных устройств / dev / tty
  • NixOS нет приглашения для входа в виртуальные терминалы
  • 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 .

    Linux и Unix - лучшая ОС в мире.