Init
init (сокращение от англ. initialization — инициализация) — программа в UNIX и Unix-подобных системах, которая запускает все остальные процессы. Работает как демон и обычно имеет PID 1. Обычно (согласно Filesystem Hierarchy Standard) располагается по пути /sbin/init.
Уровни инициализации
В процессе загрузки, после инициализации ядра, ядро запускает /sbin/init как первый процесс пользовательского режима. init отвечает за дальнейшую загрузку системы. Для этого он запускает так называемые стартовые скрипты, которые выполняют проверку и монтирование файловых систем, запуск необходимых демонов, настройку ядра (в том числе загрузку модулей ядра согласно установленному оборудованию, настройку IP-адресов, таблиц маршрутизации и др.), запуск графической оболочки и другие действия.
В операционных системах Unix/Linux с помощью init можно изменить уровень инициализации. Уровень инициализации — степень загрузки операционной системы. Вот как происходит инициализация системы: процесс init запускается и анализирует файл /etc/inittab. Следует отметить, что приведенная здесь система инициализации работает на системах Linux и Unix System V и она несколько отличается от стиля инициализации системы в BSD-подобных системах.
По умолчанию, в системе использовано 7 уровней инициализации:
0. останов системы.
- загрузка в однопользовательском режиме
- загрузка в многопользовательском режиме без поддержки сети
- загрузка в многопользовательском режиме с поддержкой сети
- не используется
- загрузка в многопользовательском режиме с поддержкой сети и графического входа систему
- перезагрузка
Набрав init n в терминале (с правами суперпользователя), где n — номер уровня инициализации, можно переключиться в любой из вышеперечисленных уровней.
Стартовые скрипты для каждого уровня находятся в каталогах с /etc/rc0.d до /etc/rc6.d, где цифра после rc соответствует номеру уровня инициализации.
Файл /etc/inittab
Как уже было упомянуто выше, работа процесса init управляется с помощью файла /etc/inittab. Вот пример этого файла (без комментариев):
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
В первой строке описан терминал и его конфигурация по умолчанию. Сначала в этом файле описываются уровни инициализации. Затем инициируются виртуальные консоли. Запись инициализации консолей состоит из полей, разделенных двоеточием и выглядит следующим образом:
- 1 — порядковый номер консоли
- 2345 — номера уровней инициализации, для которых консоль инициализируется
- respawn — этот параметр означает, что init должен перезапустить обслуживающий консоль процесс после выхода из сеанса или в случае краха.
- /sbin/mingetty tty6 — программа (с указанием параметров), которая будет обслуживать консоль.
Таким образом, Вы легко можете создать свой уровень инициализации (под номером 4 или 7, 8…), просто исправив файл /etc/inittab и создав необходимые ссылки в каталоге /etc/rc.d/rc*.d
init в других ОС
В Windows NT роль init играет smss.exe. В Solaris 10 вместо init применяется Service Management Facility.
Ссылки
root@mybox:~# | Это незавершённая статья о системах класса UNIX. Вы можете помочь проекту, исправив и дополнив её. |
de:Init en:Init es:Init eu:Init fi:Init fr:Init it:Init ja:Init pl:Init pt:Init uk:Init zh:Init
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....