словник | перекладачка | факти | тексти | програми
щодо | посилання | новини | гостьова книга | пошук
початок << тексти  << автор  << зміст  << сторінка

next up previous contents index
Далі: Настройка init для старту Вгору: init Назад: init

  
init приходить першим

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 .


Dmytro Kovalev
1999-06-10
вгору
 
Без реклами
2004-03-23 13:52:42
TopList
© 2000-2003, Київ, Соломко Валентин -- ідея та наповнення, графічне опрацювання -- проєкт дизайн, змiнено -- 08.06.2003 14:25:51