init (prescurtare pentru inițializare în limba engleză - initialization) - subsistemul de inițializare în Unix și un număr de sisteme asemănătoare Unix care pornește toate celelalte procese. Se rulează ca un demon și are de obicei un PID de 1. De obicei (conform standardului ierarhiei sistemului de fișiere ) se află în /sbin/init . Există diferențe în modul în care funcționează un subsistem în sistemele de operare care provin din sistemele în stil System V și BSD .
Multă vreme a fost principalul subsistem init în Linux, până când a fost înlocuit cu systemd în majoritatea distribuțiilor . Solaris 10 folosește Service Management Facility [1] în loc de init . Un număr de sisteme Unix folosesc alternative init: Upstart , Runit , Daemontools , Launchd , Initng , OpenRC .
În timpul procesului de pornire, după inițializarea nucleului , /sbin/init este de obicei pornit ca primul proces în modul utilizator și init este responsabil pentru pornirea sistemului în continuare. Pentru a face acest lucru, sunt lansate scripturi de pornire care verifică și montează sistemele de fișiere, lansează demonii necesari, configurează nucleul (inclusiv încărcarea modulelor kernel-ului în funcție de hardware-ul instalat, configurează adresele IP, tabelele de rutare și alte sarcini), lansează shell-ul grafic. Informațiile de bază de pornire se află de obicei în /etc/inittab .
Implementarea init în stilul System V folosește conceptul de runlevel , gradul în care sistemul de operare este încărcat; în acest caz, scripturile de pornire pentru fiecare nivel sunt aranjate în directoare de la /etc/rc0.d la /etc/rc6.d , unde numărul de după rc corespunde numărului nivelului de inițializare.
Un exemplu de fișier /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: așteptați:/etc/rc.d/rc 5 l6:6: așteptați:/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 /X11/prefdm -nodaemonPrima linie descrie terminalul și configurația sa implicită. Nivelurile de inițializare sunt descrise mai întâi în acest fișier. Apoi sunt inițiate consolele virtuale. Înregistrarea de inițializare a consolei constă din câmpuri separate prin două puncte și arată astfel:
Astfel, vă puteți crea cu ușurință propriul nivel de inițializare (numerotat 6 sau 7, 8...) prin simpla editare a fișierului /etc/inittab și creând legăturile necesare în directorul /etc/rc.d/rc*.d .
În comparație cu predecesorii săi, AT&T UNIX System III a introdus un nou stil de configurare a pornirii sistemului [2] care a fost păstrat (cu modificări) în UNIX System V și, prin urmare, se numește „SysVinit”.
În orice moment, un sistem AT&T UNIX V care rulează se află într-una dintre stările predefinite numite runlevel . Cel puțin un nivel de rulare este starea normală de funcționare a sistemului; de obicei, alte niveluri de execuție reprezintă modul utilizator unic (utilizat pentru a recupera un sistem eșuat), oprirea sistemului și diverse alte stări. Trecerea de la un nivel de execuție la altul determină rularea unui set de scripturi pentru fiecare nivel de execuție, care de obicei montează sisteme de fișiere, pornesc sau opresc demoni , pornesc sau opresc sistemul X Window , închid mașina și așa mai departe.
nivelurile de rulare din AT&T UNIX System V descriu stări specifice ale mașinii, caracterizate de procesele și demonii care rulează în fiecare. În general, există șapte niveluri de rulare, dintre care trei niveluri de rulare sunt considerate „standard” deoarece sunt necesare pentru ca sistemul să funcționeze:
0.Oprire 1.Mod utilizator unic 6. RepornițiÎn afară de aceste standarde, sistemele Unix și Unix-like tratează nivelurile de rulare oarecum diferit. /etc/inittabfișier care definește ce face fiecare nivel de rulare configurat pe sistem.