init
init (скорочення від англ. initialization — ініціалізація) — програма в Unix і Unix-подібних системах, що запускає всі інші процеси. Працює як демон і звичайно має ідентифікатор процесу 1. Зазвичай (згідно з Filesystem Hierarchy Standard) розташовується по шляху /sbin/init.
У процесі завантаження, після ініціалізації ядра, ядро запускає /sbin/init як перший процес користувацького режиму. init відповідає за подальше завантаження системи. Для цього він запускає так звані стартові скрипти, які виконують перевірку та монтування файлових систем, запуск необхідних демонів, налаштування ядра (у тому числі завантаження модулів ядра згідно з установленим обладнанням, настроювання IP-адрес, таблиць маршрутизації тощо), запуск графічної оболонки та інші дії.
У операційній системі Research Unix процес init виконував скрипт оболонки[en], розташований у /etc/rc
,[1] після чого запускав процес getty на користувацьких терміналах (опис яких розміщувався у /etc/ttys
[2]). Поняття «рівні виконання» (англ. runlevels) не було; файл /etc/rc
повністю визначав, які процеси запускатимуться процесом init, забезпечуючи таким чином максимальну простоту редагування конфігурації. Втім, інколи траплялося, що після додавання нового програмного забезпечення і зміни файлу /etc/rc
(через необхідність запуску нових програм або сервісів) система переставала завантажуватись.
ОC BSD до версії 4.3BSD мали програму init, ідентичну до такої у Research UNIX.[3][4]
У версії 4.3BSD було додано підтримку запуску віконної системи (такої, як X Window System) на графічних терміналах, опис яких також містився у файлі /etc/ttys
.[5][6]
Також було додано «місцевий» скрипт системної ініціалізації /etc/rc.local
(він виконувався під керуванням окремо запущеної оболонки, англ. subshell), таким чином відпала необхідність у редагуванні /etc/rc
.
- From Power Up To Bash Prompt [Архівовано 4 жовтня 2009 у Wayback Machine.] (англ.)