De Linux-kernel is als een brug die computercommunicatie tussen applicaties en hardware mogelijk maakt en de systeembronnen beheert. Linus Torvalds ontwikkelde de Linux-kernel met C en Assembly en zo slaagde hij erin een lichtgewicht en draagbare kern te creëren die als open source voor het publiek werd vrijgegeven.

Je kunt de Linux-kernel in veel verschillende sectoren zien, zoals de ruimte, computers, slimme horloges, mobiele telefoons, robotica en gezondheid. Maar heb je je ooit afgevraagd hoe de Linux-kernel onder de motorkap werkt?

Hardwaregebruik op Linux

De Linux-kernel bepaalt in de eerste plaats welke hardware wordt uitgevoerd en op welke manier wanneer u uw computer aanzet. Bovendien is besturing van high-end software mogelijk dankzij de programmeerinterface. Om een ​​voorbeeld van deze bedieningselementen te geven, kunt u informatie zien over de hardware die in de sleuven op uw moederbord is geïnstalleerd en profiteren van deze gedetailleerde informatie.

Deze programmeerinterface biedt ook een abstractielaag. Als je bijvoorbeeld een videogesprek met je vrienden wilt voeren, heb je een webcam nodig. De abstractielaag maakt het mogelijk dat de software die u gebruikt deze webcam kan gebruiken, ongeacht het merk en model. De software hier kan alleen de interface gebruiken die voor Linux bestaat. De Linux-kernel vertaalt de functie-aanroepen van deze interface in daadwerkelijke hardware-opdrachten die de webcam nodig heeft.

instagram viewer

De... gebruiken /proc en /sys virtuele bestandssystemen, de Linux-kernel kan gedetailleerde informatie over de hardware exporteren het detecteert. Hieronder zie je enkele tools die hiervoor gebruikt worden en welke toestellen en kaarten ze exporteren:

  • lspci: Voor PCI-apparaten
  • lsusb: Voor USB-apparaten
  • lspcmcia: Voor PCMCIA-kaarten

Zoals je kunt zien, draait de Linux-distributie in de bovenstaande schermafbeelding op VirtualBox. U heeft echter de mogelijkheid om veel informatie te zien, zoals VGA, USB-controller, bridges en SATA-controller.

U kunt ook de -v parameter om veel meer gedetailleerde informatie te krijgen.

In de Linux-kernel hebben toepassingen gewoonlijk toegang tot apparaten via speciale bestanden die in de /dev map. Deze speciale bestanden vertegenwoordigen schijfstations en andere fysieke apparaten. Bestanden zoals /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 en dev/snd/* zijn voorbeelden van deze speciale bestanden.

Linux-bestandssysteembeheer

Bestandssystemen zijn een van de meest opvallende componenten van de Linux-kernel. Het bestandssysteem van Linux is een van de grootste voordelen. Alle bestanden op een Linux-systeem komen samen in een enkele vertakking. Gebruikers kunnen deze hiërarchie dus gebruiken om hun gewenste plaatsen te bereiken.

Het startpunt van deze hiërarchie is de hoofdmap (/). Andere submappen bevinden zich onder de hoofdmap. De meest gebruikte submap onder / is de /home map. Deze subdirectory bevat andere subdirectories en elke directory heeft bestanden die de feitelijke gegevens opslaan.

Je kunt bijvoorbeeld denken aan een tekstbestand op je bureaublad. Als u een tekstbestand maakt met de naam helloworld.txt op uw bureaublad, kunt u ernaar verwijzen als /home/muo/Desktop/helloworld.txt. Het voorbeeld van /muo hier zal natuurlijk variëren. Omdat de naam van deze submap afhangt van de naam van uw huidige gebruikersnaam. Met dit naamgevingssysteem vertaalt de Linux-kernel tussen daadwerkelijke en fysieke opslag die op een schijf bestaat.

Ook kan de Linux-kernel gegevens van verschillende schijven integreren. Hier komt het montagesysteem om de hoek kijken. Het gebruikt een van de schijven in het rootsysteem en koppelt de andere aan bestaande mappen in de hiërarchie. Andere schijven worden dan onder aankoppelpunten geplaatst. Hiermee kunnen gebruikers de /home directory op een tweede harde schijf die ook andere subdirectories bevat.

Wanneer u een schijf koppelt aan de /home directory, kunt u deze directory's openen vanaf normale locaties. Dus paden zoals /home/muo/Desktop/helloworld.txt doorgaan met werken.

U kunt de koppelpunten tussen de bestanden op uw systeem zien met de vondst -A opdracht.

Met veel bestandssysteemindelingen kunt u gegevens fysiek op schijven opslaan. De meest bekende op Linux zijn de ext2, ext3, en ext4 bestandssysteemindelingen. Er zijn echter veel andere bestandssysteemindelingen. In ieder geval moet u het bestandssysteem formatteren voordat u het koppelt. U kunt opdrachten gebruiken zoals mkfs.ext3 (mkfs staat voor make file system en ext3 is het file system) hiervoor.

Deze opdrachten accepteren het bestandspad van het apparaat dat u wilt formatteren als parameter. Het is een destructieve operatie en je moet het voorzichtig gebruiken als je een bestandssysteem niet wilt wissen of resetten.

Afgezien van deze, zijn er ook netwerkbestandssystemen zoals NFS die de Linux-kernel gebruikt. NFS is een netwerkbestandssysteem waarbij gegevens niet op een lokale schijf worden opgeslagen. Met NFS gaan gegevens over het netwerk naar een server die de gegevens opslaat. Omdat de gegevens op een server staan, hoeven gebruikers er niet constant mee om te gaan. Ze kunnen ook zoals gewoonlijk het traditionele hiërarchische bestandssysteem van Linux gebruiken.

Gedeelde functiebewerkingen

Alle software in het Linux-systeem heeft gemeenschappelijke functies. Daarom staan ​​deze functies centraal in de Linux-kernel. Als u bijvoorbeeld een bestand opent, kunt u het alleen openen met de bestandsnaam, zonder te weten waar het bestand fysiek is opgeslagen en welke functies en bewerkingen het zal gebruiken. Al deze functies zijn al aanwezig in de kernel.

U kunt uw bestand op de harde schijf opslaan, over meerdere harde schijven verdelen of zelfs op een externe server bewaren. Gedeelde bestandscommunicatiefuncties zijn in dergelijke gevallen belangrijk. Applicaties wisselen gegevens uit, ongeacht hoe de gegevens worden verplaatst. Gedeelde communicatiefuncties zijn er om deze gegevensuitwisselingen mogelijk te maken. Dit kan via draadloze netwerken of zelfs een vaste telefoonlijn.

Procesbeheer in Linux

Een actief exemplaar van een programma dat werkt op gegevens of informatie in het geheugen, staat bekend als een proces. De taak van de Linux-kernel is om deze geheugenregio's te genereren en bij te houden. De kernel wijst geheugen toe voor een actief programma en laadt de uitvoerbare code in het geheugen vanuit het bestandssysteem. Onmiddellijk daarna voert de kernel de code uit.

De Linux-kernel ondersteunt multitasking. Het is in staat om meerdere processen tegelijkertijd uit te voeren. Er is echter maar één transactie in een bepaald tijdsbestek. De Linux-kernel verdeelt de tijd echter in kleine stukjes en als resultaat vindt elke procedure opeenvolgend plaats.

Omdat deze kleine tijdsegmenten in stappen van milliseconden zijn, zijn ze alleen actief op specifieke tijden en blijven ze de rest van de tijd inactief. De taak van de Linux-kernel hier is om de prestaties te maximaliseren door meerdere processen tegelijk uit te voeren.

Als de tijdvakken te lang zijn, reageert de actieve toepassing mogelijk niet zo snel als u zou willen. Als de tijdschema's te kort zijn, kunnen er problemen zijn met taakwijzigingen. Afhankelijk van de prioriteit van het proces, zal het hier vereiste tijdsbestekinterval variëren. Je hebt misschien al eerder gehoord van processen met hoge prioriteit en processen met lage prioriteit. Dit is een van de functies die de Linux-kernel bestuurt.

Deze uitleg is niet altijd correct. De echte beperking is dat er slechts één werkproces per processorkern tegelijk kan zijn. Met multiprocessorsystemen kunnen meerdere processen parallel lopen. Een basissysteem heeft bijna altijd tientallen lopende processen.

Toegangsrechten in Linux

Net als bij andere besturingssystemen kunt u op een Linux-systeem veel gebruikers aanmaken. In dergelijke gevallen is er een rechtenbeheersysteem dat individuele gebruikers en groepen ondersteunt. Dit is waar bestands- en gebruikersrechten in het spel komen.

De Linux-kernel beheert de gegevens en controleert de benodigde machtigingen voor elk proces. Als u bijvoorbeeld een bestand probeert te openen, moet de kernel de proces-ID controleren op toegangsrechten. Als de kernel controleert en ziet dat je rechten hebt, zal het het bestand openen.

De Linux-kernel bestuurt alles

Zoals u kunt zien, houdt de Linux-kernel toezicht op alles, van uw bestandsbeveiliging tot het maken van gebruikers en het downloaden van bestanden van internet. Alles staat in een bepaalde volgorde. Elke gebruiker heeft rechten. De Linux-kernel beheert processen en tijdvakken voor topprestaties.

Bovendien is het bestandssysteem, dat een van de grootste kenmerken is die de Linux-kernel van andere besturingssystemen onderscheidt, erg belangrijk. Linux is geen verborgen doos. Integendeel, alle bestanden en broncodes zijn toegankelijk. Om de praktische en krachtige aard van de Linux-kernel beter te begrijpen, kun je de hiërarchie van het Linux-directorysysteem onderzoeken.