email: darw32@poczta.onet.pl


Linux - 7.init

init jest Pierwszy

init jest niezbędny do działania Linuxa. Większość dystrybucji przychodzi z dobrze skonfigurowanym programem init, którym nie musisz się martwić. Zazwyczaj z initem spotkasz się chcąc utworzyć dodatkowe terminale, zmienić domyślny poziom pracy.

Jądro po wszelkich czynnościach związanych z własną inicjalizacją uruchamia program init. Dlatego init ma zawsze id = 1.

Linux szuka programu w kilku miejscach, jednak standardową lokacją jest /sbin/init. Jeżeli jądro nie znajdzie programu spróbuje uruchomić /bin/sh, jeżeli to również się nie uda system przestaje działać.

init uruchamia skrypty administracyjne odpowiedzialne za sprawdzenie i zamontowanie systemów plików, wyczyszczenie /tmp, uruchomienie demonów oraz getty na odpowiednich terminalach. (zobacz Rozdział 8).

W czasie działania systemu init restartuje getty na terminalu, z którego użytkownik się wylogował. Program adoptuje wszelkie osierocone procesy (których rodzic umarł przed zakończeniem pracy potomka). Jest to bardzo ważne - proces bez potomka nie może istnieć, procesy muszą tworzyć składne drzewo (sam init nie umiera nigdy. Nie możesz go zabić sygnałem SIGKILL). Istnieje kilka odmian inita, większość dystrybucji Linuxa rozprowadzana jest z wersją opartą o sysvinit (napisany przez Miquela van Smoorenburga), który oryginalnie pojawił się w Systemie V. Istnieje również wersja BSD. Główna różnica polega na tym, że System V posiada poziomy pracy, których w BSD brakuje. Informacje odnoszą się do sysvinit.