Может ли быть TTY без Bash. Как происходит взаимодействие с ядром?

Решил разобраться, как в Linux происходит взаимодействие с самой ОС, не считая syscall'ы. В моем представлении, у нас есть ttys, к которым подключаются псевдотерминалы, драйвера которых реализуют GUI или эмуляторы терминалов, но я не могу понять, почему bash - является отдельной программой, без интерпритатора команд это же все не имеет смысла. Ну да, мы можем послать что-то допустим через эмулятор терминала, он передаст это в tty, но tty с этим ничего сделать не сможет, ведь взаимодействие с ядром построено по средствам syscall'ов. Или я что-то не понимаю, но я же не могу запустить еще один tty без интерпретатора команд(bash или не bash)


Ответы (1 шт):

Автор решения: kaylil_01

TTY — это не способ взаимодействия с ОС, это способ взаимодействия с процессом. Первый запущенный ядром процесс /sbin/init, запускающий программу getty, которая выполняет чтение конфигурационных файлов /etc/init/console.conf и /etc/init/ttyX.conf и впоследствии отображает на консоль содержимое файла-приветствия /etc/issue и запускает login. В последствии уже запускается GUI или то, что указано в конфиге. И TTY тут выступает интерфейсом, который знает, в какой файловый дескриптор будет записываться ввод, а какой-нибудь Bash через TTY-структуру поймет откуда читать этот ввод, и куда писать вывод (или не писать в случае с GUI).

→ Ссылка