Как на самом деле работает терминал в Linux?

Как на самом деле работает терминал в Linux?

Я использую консоль Linux уже много лет, но сейчас начал думать о том, как она на самом деле работает. Ввод a commandв виде строки и нажатие Enterвозвращает ее вывод в том же окне терминала.

Открытие нового окна терминала и выполнение команды ttyпоказывает следующий результат:

$ tty
/dev/pts/10

Страница руководства ptyопределяет, что:

Процесс, который ожидает подключения к терминалу, может открыть подчиненный конец псевдотерминала и затем управляться программой, которая открыла главный конец. Все, что написано на главном конце, предоставляется процессу на подчиненном конце, как если бы это был ввод, набранный на терминале.[...]И наоборот, все, что записано на подчиненном конце псевдотерминала, может быть прочитано процессом, подключенным к главному концу.

Мое понимание:

Фактическое окно терминала подключено к подчиненному устройству, /dev/pts/10и весь ввод, который я ввожу в окно терминала, записывается на подчиненном конце, а затем считывается на главном конце. Процесс, подключенный к главному концу, знает, что делать со всеми строками, которые вводит пользователь, выполняет их и записывает результаты команд на главном конце, которые затем считываются на подчиненном конце и отображаются в окне терминала.

Вопрос:

Какой процесс подключен к главному концу и знает, как выполнять команды, которые пользователи вводят в виде строк?

Связанный контент