Kernel

Uit LinuxMintNL WiKi
Versie door Jos1950 (Overleg | bijdragen) op 20 okt 2014 om 20:55 (Categorie aangepast)
Ga naar: navigatie, zoeken
Werkgebied van kernel in computersystem

Een micro kernel is een klein besturings-systeem programma dat de verbinding vormt tussen de basis hardware van een computer en de gebruiker. Deze kernels zijn een vervolg op het UNIX besturings-systeem, en de basis van Linux distributies. Boven de kernel worden de gebruikers-systemen gebouwd b.v. Mint en daarboven de programmatuur van b.v. versie 17 Qiana.

Het wordt ook wel operating systeem (OP) genoemd, maar dat klopt niet helemaal, omdat Mint dan ook in de kernel zou moeten zitten.

Er zijn twee soorten kernels, de microkernel en de monolithische kernel, die ongeveer dezelfde taken uitvoeren maar anders zijn ontworpen.

Micro kernel

Met een microkernel wordt in de informatica een kernel bedoeld die zeer weinig diensten uitvoert en waarbij het merendeel van de diensten wordt uitgevoerd in de gebruikersmodus (kort gezegd, programma's (diensten) die door de gebruiker zijn geïnstalleerd]. Het woord micro komt van het Oud-Griekse μικρος (micros: "klein"). Daarmee wordt vooral gerefereerd aan het feit dat microkernels zeer klein zijn, in tegenstelling tot de monolithische kernel, waarbij de diensten onder supervisormodus werken.

Servers

Een microkernel maakt gebruik van servers die de eigenlijke interface (verbinding) tussen software en hardware/drivers zijn. Ook kan er vaak een server aanwezig zijn die zorgt dat de drivers goed beheerd worden. Zo zal een driver die crasht dan herstart worden, iets dat bekend is in het Minix-systeem.

Monolithische kernel

Met een monolithische kernel wordt in de informatica een kernel bedoeld waarbij alle diensten, of het merendeel ervan, door de kernel worden uitgevoerd in supervisormodus (hoofdprogramma van een computer). De term monolithisch is afgeleid van de Oud-Griekse woorden monos ("alleen" of "eenzaam") en lithos ("steen" of "gesteente"), omdat de kernel het merendeel van de diensten, zoals toegang tot hardware via een bepaalde interface, geheugenbeheer, etc., zelf afhandelt, in tegenstelling tot de werking van de microkernel.

Linux kernel

Linux kernel

Voor de meeste gebruikers bevindt de kernel zich onder de spreekwoordelijke "motorkap": de gebruiker communiceert met de computer via een gebruikersinterface. De kernel bevat de basisfaciliteiten van Linux, zoals stuurprogramma's (drivers) en systeemaanroepen zoals read() en write(). Deze veelgebruikte basisfuncties zijn nodig om programma's te kunnen schrijven zonder dat de software-ontwikkelaar zich zorgen hoeft te maken over details, bijvoorbeeld hoe een read()-actie (invoer van een toetsenbord of ander invoerapparaat) werkt.

Een kernel is gecompileerd en in een binair bestand (bestaat enkel uit 0 en 1), maar omdat de Linuxkernel vrije software is, is de broncode ervan vrij beschikbaar. Zo kan iedereen met de nodige expertise de kernel veranderen en de veranderde versie beschikbaar stellen voor anderen.

Kwatiteit

Dat dit laatste niet op noemenswaardige schaal gebeurt, wordt gezien als een bevestiging van de kwaliteiten van Linus Torvalds, de hoofdontwikkelaar, maintainer (controleur) en leider van het project. In 1990 begon hij een terminalemulator te ontwikkelen, maar hij wilde meer functies en besefte even later dat hij in feite de kernel voor een besturingssysteem aan het schrijven was. Op 5 oktober 1991 maakte Torvalds de eerste release bekend met een memorabele Usenetposting in de nieuwsgroep comp.os.minix.

Puur en hybride

Microkernels hebben net zoals monolithische kernels het probleem dat zij soms niet geheel een microkernel zijn. Zo zijn er microkernels die de drivers in een modus draaien tussen de supervisormodus en de gebruikersmodus, er zijn er ook die hun schedulers en geheugenbeheer in gebruikersmodus afhandelen. Omdat besturingssystemenkunde niet een volledig vastgelegde kunde is, zijn de grenzen hiervan moeilijk te leggen. In deze wetenschap is het dan ook een geaccepteerde conventie dat microkernels vooral de drivers in gebruikersmodus draaien. Door hiervan af te wijken is het onderscheid tussen puur en hybride ontstaan. Pure monolithische kernels zijn vrij zeldzaam, maar gebruikelijk op embedded platformen zoals ARM.