Подключение к системе через терминалы

При подключении через терминал в первую очередь процесс init проверяет наличие программы getty для данного соединения (или консоли). Getty прослушивает порт, к которому подключен терминал, и ожидает готовность пользователя для его подключения (обычно это означает, что пользователь что-либо набирает на клавиатуре). Когда-же это происходит, getty выводит на экран приглашение (находящееся в файле /etc/issue) и запрашивает имя пользователя, которое передается программе login в качестве параметра. Login запрашивает пароль и сопоставляет его с именем. Если они соответствуют друг другу, то login запускает оболочку, сконфигурированную для данного пользователя, иначе производится завершение процесса. Init видит его завершение и запускает другую копию getty для данного терминала.

Следует подчеркнуть, что init создает только один процесс (используя системный вызов fork(2)), а getty и login заменяют выполняющуюся программу в этом процессе (используя системный вызов exec(3)).

Для последовательных линий используется отдельная программа для отслеживания соединений. Также getty настраивается на скорость соединения и другие его установки, что достаточно важно для dial-in соединений, где эти параметры могут изменяться при каждом подключении.

Существует несколько версий программ getty и init у которых есть свои достоинства и недостатки. Следует изучить версии этих программ на используемой системе, а также другие их версии (можно использовать для их поиска Linux Software Map).

Примечание:
Цифра в скобках указывает на раздел в руководстве man, где можно найти детальное описание данной команды.