Linux-kjernen er som en bro som muliggjør datakommunikasjon mellom applikasjoner og maskinvare og administrerer systemets ressurser. Linus Torvalds utviklet Linux-kjernen med C og Assembly, og dermed lyktes han i å lage en lett og bærbar kjerne som ble utgitt for publikum som åpen kildekode.

Du kan se Linux-kjernen i mange forskjellige sektorer som plass, datamaskiner, smartklokker, mobiltelefoner, robotikk og helse. Men har du noen gang lurt på hvordan Linux-kjernen fungerer under panseret?

Maskinvarebruk på Linux

Linux-kjernen styrer først og fremst hvilken maskinvare som skal kjøres og på hvilken måte når du slår på datamaskinen. I tillegg er kontroll av avansert programvare mulig takket være programmeringsgrensesnittet. For å gi et eksempel på disse kontrollene, er det mulig for deg å se informasjon om maskinvaren installert i sporene på hovedkortet og dra nytte av denne detaljerte informasjonen.

Dette programmeringsgrensesnittet gir også et abstraksjonslag. Hvis du for eksempel vil ha en videosamtale med vennene dine, trenger du et webkamera. Abstraksjonslaget gjør det mulig for programvaren du bruker å bruke dette webkameraet uavhengig av merke og modell. Programvaren her kan bare bruke grensesnittet som finnes for Linux. Linux-kjernen oversetter dette grensesnittets funksjonskall til faktiske maskinvarekommandoer som webkameraet trenger.

instagram viewer

Bruker /proc og /sys virtuelle filsystemer, kan Linux-kjernen eksportere detaljert informasjon om maskinvaren den oppdager. Nedenfor kan du se noen verktøy som brukes til dette og hvilke enheter og kort de eksporterer:

  • lspci: For PCI-enheter
  • lsusb: For USB-enheter
  • lspcmcia: For PCMCIA-kort

Som du kan se, kjører Linux-distribusjonen i skjermbildet ovenfor på VirtualBox. Du har imidlertid muligheten til å se mye informasjon som VGA, USB-kontroller, broer og SATA-kontroller.

Du kan også bruke -v parameter for å få mye mer detaljert informasjon.

I Linux-kjernen får applikasjoner vanligvis tilgang til enheter gjennom spesielle filer som finnes i /dev katalog. Disse spesielle filene representerer diskstasjoner og andre fysiske enheter. Filer som f.eks /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 og dev/snd/* er eksempler på disse spesielle filene.

Linux filsystembehandling

Filsystemer er en av de mest bemerkelsesverdige komponentene i Linux-kjernen. Filsystemet til Linux er en av de største fordelene. Alle filene på et Linux-system samles i en enkelt gren. Brukere kan dermed bruke dette hierarkiet for å nå sine ønskede steder.

Utgangspunktet for dette hierarkiet er rotkatalogen (/). Andre underkataloger er under rotkatalogen. Den mest brukte underkatalogen under / er den /home katalog. Denne underkatalogen inneholder andre underkataloger og hver katalog har filer som lagrer de faktiske dataene.

Du kan for eksempel tenke på en tekstfil på skrivebordet ditt. Hvis du oppretter en tekstfil som heter helloworld.txt på skrivebordet kan du referere til det som /home/muo/Desktop/helloworld.txt. Eksempelet på /muo her vil selvfølgelig variere. Fordi dette underkatalognavnet avhenger av din nåværende brukers navn. Med dette navnesystemet oversetter Linux-kjernen mellom faktisk og fysisk lagring som finnes på en disk.

Linux-kjernen kan også integrere data fra flere disker. Det er her monteringssystemet kommer inn i bildet. Den bruker en av diskene i rotsystemet og monterer de andre til eksisterende kataloger i hierarkiet. Andre disker plasseres deretter under monteringspunkter. Dette lar brukere lagre /home katalog på en andre harddisk som også inneholder andre underkataloger.

Når du monterer en disk til /home katalogen, kan du få tilgang til disse katalogene fra vanlige steder. Dermed kan stier som f.eks /home/muo/Desktop/helloworld.txt fortsette å jobbe.

Du kan se monteringspunktene mellom filene på systemet ditt med funn -A kommando.

Med mange filsystemformater kan du fysisk lagre data på disker. De mest kjente på Linux er ext2, ext3, og ext4 filsystemformater. Det finnes imidlertid mange andre filsystemformater. I alle fall må du formatere filsystemet før du monterer det. Du kan bruke kommandoer som mkfs.ext3 (mkfs står for make file system og ext3 er filsystemet) for dette.

Disse kommandoene godtar enhetsfilbanen du vil formatere som en parameter. Det er en destruktiv operasjon, og du bør bruke den med forsiktighet hvis du ikke vil slette eller tilbakestille et filsystem.

Bortsett fra disse er det også nettverksfilsystemer som NFS som Linux-kjernen bruker. NFS er et nettverksfilsystem der data ikke er lagret på en lokal disk. Med NFS går data over nettverket til en server som lagrer dataene. Siden dataene vil være på en server, trenger ikke brukere å forholde seg til dem hele tiden. De kan også bruke det tradisjonelle hierarkiske filsystemet til Linux som vanlig.

Delte funksjonsoperasjoner

All programvare i Linux-systemet har felles funksjoner. Dette er grunnen til at disse funksjonene er sentrale i Linux-kjernen. For eksempel, når du åpner en fil, kan du åpne den kun med filnavnet, uten å vite hvor filen fysisk er lagret, og hvilke funksjoner og operasjoner den vil bruke. Alle disse funksjonene er allerede til stede i kjernen.

Du kan lagre filen på harddisken, dele den mellom flere harddisker eller til og med beholde den på en ekstern server. Delte filkommunikasjonsfunksjoner er viktige i slike tilfeller. Applikasjoner utveksler data uavhengig av hvordan dataene flyttes. Delte kommunikasjonsfunksjoner er der for å gjøre disse datautvekslingene. Dette trekket kan være over trådløse nettverk eller til og med en fast telefonlinje.

Prosesshåndtering i Linux

En aktiv forekomst av et program som opererer på data eller informasjon i minnet er kjent som en prosess. Oppgaven til Linux-kjernen er å generere og holde styr på disse minneområdene. Kjernen tildeler minne for et kjørende program og laster den kjørbare koden inn i minnet fra filsystemet. Umiddelbart etter kjører kjernen koden.

Linux-kjernen støtter multitasking. Den er i stand til å kjøre mange prosesser samtidig. Det er imidlertid bare én transaksjon i en gitt tidsramme. Imidlertid deler Linux-kjernen opp tiden i små biter, og som et resultat finner hver prosedyre sted sekvensielt.

Fordi disse små tidssegmentene er i trinn på millisekunder, er de bare aktive på bestemte tidspunkter og forblir inaktive resten av tiden. Linux-kjernens jobb her er å maksimere ytelsen ved å kjøre flere prosesser samtidig.

Hvis tidslukene er for lange, kan det hende at den kjørende applikasjonen ikke er så responsiv som du ønsker. Hvis tidsrammene er for korte, kan det oppstå problemer med oppgaveendringer. Avhengig av prioriteringen av prosessen, vil tidsrammeintervallet som kreves her, variere. Du har kanskje hørt om høyprioriterte prosesser og lavprioriterte prosesser før. Dette er en av funksjonene som Linux-kjernen kontrollerer.

Denne forklaringen er ikke alltid riktig. Den virkelige begrensningen er at det bare kan være én arbeidsprosess per prosessorkjerne om gangen. Multiprosessorsystemer lar flere prosesser kjøre parallelt. Et grunnleggende system har nesten alltid dusinvis av kjørende prosesser.

Tilgangsrettigheter i Linux

Som med andre operativsystemer, kan du opprette mange brukere på et Linux-system. I slike tilfeller finnes det et rettighetsstyringssystem som støtter enkeltbrukere og grupper. Dette er hvor fil- og brukertillatelser komme i spill.

Linux-kjernen administrerer dataene og kontrollerer de nødvendige tillatelsene for hver prosess. For eksempel, hvis du prøver å åpne en fil, må kjernen sjekke prosess-IDen mot tilgangstillatelser. Hvis kjernen sjekker og ser at du har tillatelser, vil den åpne filen.

Linux-kjernen kontrollerer alt

Som du kan se, overvåker Linux-kjernen alt fra filsikkerheten din til å opprette brukere og laste ned filer fra internett. Alt er i en bestemt rekkefølge. Hver bruker har rettigheter. Linux-kjernen administrerer prosesser og tidsluker for topp ytelse.

Dessuten er filsystemet, som er en av de største funksjonene som skiller Linux-kjernen fra andre operativsystemer, veldig viktig. Linux er ikke en skjult boks. Tvert imot, alle filer og kildekoder er tilgjengelige. For bedre å forstå den praktiske og kraftige naturen til Linux-kjernen, kan du undersøke Linux-katalogsystemhierarkiet.