Когда я проверяю CentOS 7, только текстовый режим, в VirtualBox я не вижу X после выполнения lsof / dev / input / event2 (клавиатура), но моя клавиатура все еще работает
Это потому, что вы используете виртуальную консоль , а затем одно из /dev/ttyN
устройств. Они напрямую связаны с подсистемой событий ввода Linux внутри самого ядра (с помощью модуля vt
); по существу, все клавиатурные устройства действуют как входы в текущий активный виртуальный терминал.
Сам X использует виртуальную консоль, просто чтобы ядро могло переключаться между ней и любыми текстовыми виртуальными консолями.
Как насчет tty_open()
?
Если вы запустите sudo lsof /dev/tty[0-9]
, вы увидите, какие процессы обращаются к виртуальной консоли.
Процессы с getty
в названии - это те, которые предоставляют терминалы входа. (Те, которые используются с последовательными терминалами, очень похожи; на самом деле, многие программы getty могут нормально обрабатывать как виртуальные консоли, так и последовательные терминалы.)
Когда вы входите в систему, это getty запускает login
(программа!), Которая, в свою очередь, запускает оболочку по умолчанию, определенную для этого пользователя (см. getent passwd username
; это последнее поле, и оно должно быть тем, которое указано в * 1024). * будет разрешено).
Само ядро поддерживает переключение на другую виртуальную консоль с помощью Ctrl + Alt + Fn (F1 для tty1, F2 для tty2 и т. Д.) , Если вы используете подходящие графические драйверы, вы даже можете переключаться между Xorg и виртуальными консолями. (Обычно Xorg запускается на tty6 или tty7, но это зависит от дистрибутива.) Ctrl + Alt + ← и Ctrl + Alt + → также обычно можно использовать для переключения на предыдущую или следующую виртуальную консоль.