Linux neemt het over

Nadat de BIOS de besturing heeft overgedragen aan LILO, geeft LILO de besturing over aan de Linux kernel. Een kernel is het centrale programma van het besturingssysteem, de leiding over alle andere programma's. Het eerste dat Linux doet zodra het begint met de uitvoering is over te gaan op de protected modus. De 80386[1] CPU die de besturing heeft over je computer heeft twee modi, genaamd "real modus" en "protected modus". DOS draait in real modus, zoals ook de BIOS. Voor geavanceerdere besturingssystemen moet er in de protected modus worden gedraaid. Daarom verwerpt Linux de BIOS wanneer het opstart.

Andere CPU's zullen op andere wijze deze fase bereiken. Andere CPU's hoeven niet naar de protected modus over te schakelen en hebben een framework rond de laadprocedure nodig zoals LILO en de BIOS. Zodra een kernel is opgestart, werkt Linux vrijwel hetzelfde.

Figuur 4-1. De weg die een Intel PC neemt om een shellprompt te krijgen. init kan wel of niet het X Window Systeem starten. Als dit wel zo is, dan wordt xdm uitgevoerd, zo niet dan wordt getty uitgevoerd.

Linux zoekt dan het type hardware waarop het draait. Het wil weten welke typen harddisks je hebt, of je wel of geen busmuis gebruikt, of je je wel of niet op een netwerk bevindt, en andere onbeduidende dingen. Linux kan niets onthouden tussen boots, dus het moet deze vragen elke keer dat het opstart weer opnieuw vragen. Gelukkig stelt het deze vragen niet aan jou, maar aan de hardware! Tijdens het opstarten zal de Linux kernel diverse meldingen afdrukken. Er is over deze meldingen meer te lezen in de paragraaf Kernelmeldingen. Dit ondervragingsproces kan voor problemen zorgen op je systeem, maar als dit zo zou zijn, zou dit waarschijnlijk al zijn gebeurd toen je Linux voor het eerst installeerde. Raadpleeg de documentatie van je distributie als je problemen ondervindt.

De kernel beheert alleen andere programma's, dus zodra het gerustgesteld is dat alles ok is, moet het een ander programma starten om iets nuttigs te doen. Het programma dat de kernel start wordt init genoemd. Nadat de kernel init heeft opgestart, start het nooit een ander programma meer. De kernel wordt een manager en een provider, geen actief programma.

Dus om te zien wat de computer aan het doen is nadat de kernel is opgestart, zullen we init moeten bestuderen. init doorloopt een gecompliceerde opstartreeks die niet voor alle computers gelijk is. Linux heeft veel verschillende versies van init, en elk doet het op z'n eigen manier. Het doet er ook toe of je computer is aangesloten op een netwerk en welke distributie je gebruikte om Linux te installeren. Een aantal zaken die eenmalig kunnen plaatvinden zodra init is gestart:

Nadat init is geëindigd met zijn taken tijdens de systeemstart, gaat het verder met zijn regulier geplande activiteiten. init kan de parent van alle processen op een Unix-systeem worden genoemd. Een proces is simpelweg een draaiend programma. Aangezien een programma twee of meer keren kan worden uitgevoerd, kunnen er twee of meer processen voor een bepaald programma zijn.

Onder Unix, wordt een proces, een kopie van een programma aangemaakt door een systeemaanroep - een service waarin voorzien door de kernel - genaamd fork. (Het wordt "fork" genoemd aangezien een proces zich afsplitst in twee verschillende processen.) init splitst een paar processen, welke op hun beurt zelf een aantal afsplitsen. Op je Linux systeem zijn wat init draait verscheidene kopieën van een programma met de naam getty. getty is het programma dat een gebruiker in laat loggen en eventueel een programma aanroept met de naam login.

Noten

[1]

Wanneer ik verwijs naar de 80386, heb ik het ook over de 80486, Pentium, en Pentium Pro computers, tenzij ik dit expliciet anders aangeef. Tevens kort ik 80386 af tot 386.