![Как на самом деле работает терминал в Linux?](https://rvso.com/image/192229/%D0%9A%D0%B0%D0%BA%20%D0%BD%D0%B0%20%D1%81%D0%B0%D0%BC%D0%BE%D0%BC%20%D0%B4%D0%B5%D0%BB%D0%B5%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%20%D0%B2%20Linux%3F%20.png)
Я использую консоль Linux уже много лет, но сейчас начал думать о том, как она на самом деле работает. Ввод a command
в виде строки и нажатие Enter
возвращает ее вывод в том же окне терминала.
Открытие нового окна терминала и выполнение команды tty
показывает следующий результат:
$ tty
/dev/pts/10
Страница руководства ptyопределяет, что:
Процесс, который ожидает подключения к терминалу, может открыть подчиненный конец псевдотерминала и затем управляться программой, которая открыла главный конец. Все, что написано на главном конце, предоставляется процессу на подчиненном конце, как если бы это был ввод, набранный на терминале.[...]И наоборот, все, что записано на подчиненном конце псевдотерминала, может быть прочитано процессом, подключенным к главному концу.
Мое понимание:
Фактическое окно терминала подключено к подчиненному устройству, /dev/pts/10
и весь ввод, который я ввожу в окно терминала, записывается на подчиненном конце, а затем считывается на главном конце. Процесс, подключенный к главному концу, знает, что делать со всеми строками, которые вводит пользователь, выполняет их и записывает результаты команд на главном конце, которые затем считываются на подчиненном конце и отображаются в окне терминала.
Вопрос:
Какой процесс подключен к главному концу и знает, как выполнять команды, которые пользователи вводят в виде строк?