init - це одна з тих абсолютно необх╕дних програм, як╕ житт╓во необх╕дн╕ для роботи Л╕накса. Але Ви можете абсолютно забути про init ╕ не турбуватися про його роботу. Добре в╕длагоджена (куплена чи ╕ншим чином придбана) верс╕я Л╕накса постача╓ться з конф╕╜урац╕╓ю init 'а, яка буде добре працювати з б╕льш╕стю систем. В таких системах робити будь-яку настройку для init 'а абсолютно непотр╕бно. Про init згадують т╕льки тод╕, коли через посл╕довний порт або модем треба п╕дключити до системи терм╕нал, щоб п╕дключатися до сво╓╖ системи ззовн╕ (але не для того, щоб дзвонити з свого комп'ютера на ╕нший), або ж тод╕, коли треба зм╕нити стартовий робочий р╕вень.
П╕сля того, як ядро стартувало себе (тобто прочитане в пам'ять, почало працювати та провело ╕н╕ц╕ал╕зац╕ю драйвер╕в та структур даних), воно (ядро) зак╕нчу╓ роботу над самим собою ╕ завершу╓ процес старту системи, запускаючи на виконання процес, що в╕дноситься до користувацього р╕вня роботи 137 - процес init . Таким чином, процес init - це завжди самий перший процес користувацького р╕вня роботи (номер процесу init 'а завжди ╓ 1).
Ядро шука╓ init в к╕лькох м╕сцях - тих як╕ в минулому використовувалися для нього. Але в╕рне м╕сце для init 'а в Л╕накс╕ - це /sbin/init . Якщо ядро не може запустити init , воно намага╓ться стартувати /bin/sh , ╕ якщо нав╕ть це не спрацьову╓, система зда╓ться ╕ ╖╖ старт не в╕дбува╓ться. Колии init почина╓ свою роботу, в╕н продовжу╓ початий ядром процес загрузки. init викону╓ деяк╕ адм╕н╕стративн╕ кроки, так╕, як перев╕рка файлових систем, очистка /tmp , запуска╓ р╕зноман╕тн╕ серв╕си системи та старту╓ getty для кожного терм╕налу та в╕ртуально╖ консол╕, на яких дозволена робота користувачам (див. розд╕л ).
П╕сля того, як ╕з стартом системи зак╕нчено, init
сл╕дку╓ за терм╕налами. Коли один з користувач╕в зак╕нчу╓
роботу на терм╕нал╕, init перезапуска╓ getty на
цьому терм╕нал╕, щоб в систем╕ м╕г заре╓струватися наступний
користувач. Кр╕м того init усиновлю╓ процеси-сироти.
Коли один процес старту╓ ╕нший процес, то цей другий процес
назива╓ться дитиною першого. Якщо процес-батько вмира╓
(зак╕нчу╓ свою роботу) ран╕ше, н╕ж помре його дитина, процес
init митт╓во усиновлю╓ цю дитину - вона ста╓ дитиною
init 'а. Пояснення цього дуже техн╕чне, але варто про це
знати, оск╕льки це да╓ розум╕ння списк╕в процес╕в ╕ граф╕в
дерев процес╕в.138
╤сну╓ к╕лька р╕зних вар╕ат╕в init 'а. Б╕льш╕сть Л╕накс╕в
користуються вар╕антом, в╕домим як sysvinit (написаний
написаний М╕╜елем ван Смуренбур╜ом139. В╕н базу╓ться на дизайн╕ init 'а System
V. BSD верс╕╖ Юн╕кс╕в мають ╕нший init . Основна
в╕дм╕нн╕сть - в робочих р╕внях. System V ма╓ робоч╕ р╕вн╕, BSD
Юн╕кси - н╕. Ця р╕зниця - несутт╓ва, але ми будемо
розглядати т╕льки sysvinit .