Настройка и работа в Linux
adb5321d

Настройка и работа в Linux


Давайте теперь посмотрим процесс загрузки Linux и выясним, каким образом возникает это приглашение к регистрации.

При начальной загрузке ядро Linux создает процесс init. Это первый и последний процесс, существующий в любой системе Linux. Все другие процессы в системе Linux создаются либо init'ом, либо потомком init'а.

Обычно процесс init выполняет программу с названием Sysvinit или что-то похожее. Стоит заметить, что вы, в общем-то, можете вместо init запустить любую другую программу, какую захотите, указав имя ее бинарника в параметрах загрузки Linux. По умолчанию это программа /sbin/init, которой обычно является Sysvinit. Sysvinit получает инструкции из файла /etc/inittab.

Чтобы узнать о работе init, наберите man init и man inittab.

Если вы посмотрите в /etc/inittab, то увидите инструкции, запускающие несколько процессов, выполняющих программу getty - по одному процессу на каждую виртуальную консоль. Ниже дан пример строки из /etc/inittab, которая сообщает init запустить процесс выполнения getty на виртуальной консоли /dev/tty5:

c5:235:respawn:/sbin/agetty 38400 tty5

В данном случае, реальной программой getty является /sbin/agetty. В своей системе вы можете использовать /sbin/mingetty или любую другую из множества подобных программ. (Программу любую, но лучше, если бы она имела в своем имени строку "getty". Эти программы мы называем getty потому, что самая первая называлась просто "getty", от выражения "get teletype" - "получить телетайп".)

Getty открывает указанный терминал как файлы стандартного ввода, стандартного вывода и стандартной ошибки своего процесса. Также она обозначает этот терминал как процесс "управляющиго терминала" и назначает устройству терминала какого-нибудь безопасного владельца и права допуска (сбрасывая все, что могло быть установлено пользователем в предыдущей регистрационной сессии).

Итак, теперь вы знаете, каким образом на виртуальной консоли /dev/tty5 появляется приглашение "login:". Ядро создает процесс init, выполняющий Sysvinit. Sysvinit по инструкциями в /etc/inittab запускает другой процесс, выполняющий программу getty с параметрами, задающими /dev/tty5. Программа getty печатает "login:" на /dev/tty5 и ожидает, пока кто-нибудь что-нибудь напечатает.



Содержание раздела