init (förkortning av engelska initialization - initialization) - initieringsundersystemet i Unix och ett antal Unix-liknande system som startar alla andra processer. Körs som en demon och har vanligtvis ett PID på 1. Vanligtvis (enligt Filesystem Hierarchy Standard ) ligger i /sbin/init . Det finns skillnader i hur ett delsystem fungerar i operativsystem som härstammar från system V och BSD -liknande system .
Under lång tid var det det huvudsakliga init-undersystemet i Linux, tills det ersattes av systemd i de flesta distributioner . Solaris 10 använder Service Management Facility [1] istället för init . Ett antal Unix-system använder init-alternativ: Upstart , Runit , Daemontools , Launchd , Initng , OpenRC .
Under uppstartsprocessen, efter kärninitiering , startas vanligtvis /sbin/init som den första användarlägesprocessen , och init ansvarar för att starta upp systemet ytterligare. För att göra detta lanseras startskript som kontrollerar och monterar filsystem, startar de nödvändiga demonerna, konfigurerar kärnan (inklusive laddning av kärnmoduler enligt den installerade hårdvaran, konfigurerar IP-adresser, routingtabeller och andra uppgifter), startar det grafiska skalet. Grundläggande startinformation finns vanligtvis i /etc/inittab .
Implementeringen i System V-stil av init använder konceptet med en runlevel , i vilken grad operativsystemet laddas; i det här fallet är startskripten för varje nivå ordnade i kataloger från /etc/rc0.d till /etc/rc6.d , där numret efter rc motsvarar initieringsnivånumret.
Ett exempel /etc/inittab-fil :
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: wait:/etc/rc.d/rc 5 l6:6:wait:/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 trespawn:/etcpawn:/etcpawn:/etcpawn :/ /X11/prefdm -nodaemonDen första raden beskriver terminalen och dess standardkonfiguration. Initieringsnivåer beskrivs först i den här filen. Sedan initieras de virtuella konsolerna. Konsolinitieringsposten består av kolonseparerade fält och ser ut så här:
Således kan du enkelt skapa din egen init-nivå (numrerad 6 eller 7, 8...) genom att helt enkelt redigera filen /etc/inittab och skapa de nödvändiga länkarna i katalogen /etc/rc.d/rc*.d .
Jämfört med sina föregångare, introducerade AT&T UNIX System III en ny typ av systemstartkonfiguration [2] som behölls (med modifieringar) i UNIX System V och därför kallas "SysVinit".
Vid varje given tidpunkt är ett körande AT&T UNIX System V i ett av de fördefinierade tillstånden som kallas runlevel . Minst en körnivå är systemets normala drifttillstånd; vanligtvis representerar andra körnivåer enanvändarläge (används för att återställa ett misslyckat system), systemavstängning och olika andra tillstånd. Att byta från en körnivå till en annan gör att en uppsättning skript för varje körnivå körs, som vanligtvis monterar filsystem, startar eller stoppar demoner , startar eller stoppar X Window System , stänger av maskinen och så vidare.
körnivåer i AT&T UNIX System V beskriver specifika maskintillstånd, kännetecknade av processerna och demonerna som körs i varje. I allmänhet finns det sju körnivåer, varav tre körnivåer anses vara "standard" eftersom de krävs för att systemet ska fungera:
0.Stanna 1.Enanvändarläge _ 6. Starta omFörutom dessa standard, behandlar Unix- och Unix-liknande system körnivåer något annorlunda. /etc/inittabfil som definierar vad varje konfigurerad körnivå gör på systemet.