Хозяина нет (а значит, и раба тоже нет).
Когда вы используете xterm
, процесс xterm
выполняет работу по преобразованию между нажатиями клавиш и пикселями на одном конце и эмулирует поток байтов последовательного порта на другом конце. Ядро передает информацию туда и обратно в xterm
через мастер pty.
Когда вы используете tty1
, ядро делает все это само. Код в drivers/tty/vt/keyboard.c
интерпретирует нажатия клавиш, а drivers/tty/vt/vt.c
интерпретирует вывод. Там реплицируется вся логика xterm
для реализации поведения, подобного VT100.
Поскольку эта реализация находится в ядре, она может взаимодействовать напрямую с соответствующими драйверами более низкого уровня (графические процессоры, шина USB, на которой находится ваша клавиатура, и т. д.) без ретрансляции через процесс пользовательского пространства. Без участия другого процесса пользовательского пространства нет необходимости в «главном конце» tty.