Linux-kernen er som en bro, der muliggør computerkommunikation mellem applikationer og hardware og styrer systemets ressourcer. Linus Torvalds udviklede Linux-kernen med C og Assembly og dermed lykkedes det ham at skabe en letvægts og bærbar kerne, der blev frigivet til offentligheden som open source.

Du kan se Linux-kernen i mange forskellige sektorer såsom rumfart, computere, smarture, mobiltelefoner, robotteknologi og sundhed. Men har du nogensinde undret dig over, hvordan Linux-kernen fungerer under motorhjelmen?

Hardwarebrug på Linux

Linux-kernen styrer først og fremmest, hvilken hardware der skal køre og på hvilken måde, når du tænder for din computer. Derudover er styring af avanceret software mulig takket være programmeringsgrænsefladen. For at give et eksempel på disse kontroller, er det muligt for dig at se oplysninger om hardwaren installeret i slots på dit bundkort og drage fordel af disse detaljerede oplysninger.

Denne programmeringsgrænseflade giver også et abstraktionslag. For eksempel, hvis du vil have en videosamtale med dine venner, skal du bruge et webcam. Abstraktionslaget gør det muligt for den software, du bruger, at anvende dette webcam uanset mærke og model. Softwaren her kan kun bruge den grænseflade, der findes til Linux. Linux-kernen oversætter denne grænseflades funktionskald til faktiske hardwarekommandoer, som webkameraet har brug for.

instagram viewer

Bruger /proc og /sys virtuelle filsystemer, kan Linux-kernen eksportere detaljerede oplysninger om hardwaren det registrerer. Nedenfor kan du se et par værktøjer, der bruges til dette, og hvilke enheder og kort de eksporterer:

  • lspci: Til PCI-enheder
  • lsusb: Til USB-enheder
  • lspcmcia: Til PCMCIA-kort

Som du kan se, kører Linux-distributionen i skærmbilledet ovenfor på VirtualBox. Du har dog mulighed for at se en masse information såsom VGA, USB-controller, broer og SATA-controller.

Du kan også bruge -v parameter for at få meget mere detaljeret information.

I Linux-kernen får applikationer normalt adgang til enheder gennem specielle filer, der findes i /dev vejviser. Disse specielle filer repræsenterer diskdrev og andre fysiske enheder. Filer som f.eks /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 og dev/snd/* er eksempler på disse specielle filer.

Linux filsystemstyring

Filsystemer er en af ​​de mest bemærkelsesværdige komponenter i Linux-kernen. Filsystemet i Linux er en af ​​dets største fordele. Alle filerne på et Linux-system samles i en enkelt gren. Brugere kan således bruge dette hierarki til at nå deres ønskede steder.

Udgangspunktet for dette hierarki er rodmappen (/). Andre undermapper er under rodmappen. Den mest brugte undermappe under / er /home vejviser. Denne undermappe indeholder andre undermapper, og hver mappe har filer, der gemmer de faktiske data.

For eksempel kan du tænke på en tekstfil på dit skrivebord. Hvis du opretter en tekstfil kaldet helloworld.txt på dit skrivebord, kan du henvise til det som /home/muo/Desktop/helloworld.txt. Eksemplet på /muo her vil naturligvis variere. Fordi dette underbiblioteksnavn afhænger af din nuværende brugers navn. Med dette navngivningssystem oversætter Linux-kernen mellem faktisk og fysisk lagring, der findes på en disk.

Linux-kernen kan også integrere data fra flere diske. Det er her monteringssystemet kommer ind i billedet. Den bruger en af ​​diskene i rodsystemet og monterer de andre til eksisterende mapper i hierarkiet. Andre diske placeres derefter under monteringspunkter. Dette giver brugerne mulighed for at gemme /home bibliotek på en anden harddisk, der også indeholder andre undermapper.

Når du monterer en disk til /home bibliotek, kan du få adgang til disse mapper fra normale steder. Således kan stier som f.eks /home/muo/Desktop/helloworld.txt fortsætte med at arbejde.

Du kan se monteringspunkterne mellem filerne på dit system med findmnt -A kommando.

Med mange filsystemformater kan du fysisk gemme data på diske. De mest kendte på Linux er ext2, ext3, og ext4 filsystemformater. Der er dog mange andre filsystemformater. Under alle omstændigheder skal du formatere filsystemet, før du monterer det. Du kan bruge kommandoer som f.eks mkfs.ext3 (mkfs står for make file system og ext3 er filsystemet) for dette.

Disse kommandoer accepterer den enhedsfilsti, du vil formatere, som en parameter. Det er en destruktiv operation, og du bør bruge den med forsigtighed, hvis du ikke ønsker at slette eller nulstille et filsystem.

Udover disse er der også netværksfilsystemer såsom NFS som Linux-kernen bruger. NFS er et netværksfilsystem, hvor data ikke er gemt på en lokal disk. Med NFS går data over netværket til en server, der gemmer dataene. Da dataene vil være på en server, behøver brugerne ikke konstant at beskæftige sig med dem. De kan også bruge det traditionelle hierarkiske filsystem i Linux som sædvanligt.

Operationer med delt funktion

Al software i Linux-systemet har fælles funktioner. Det er derfor, disse funktioner er centrale i Linux-kernen. For eksempel, når du åbner en fil, kan du kun åbne den med filnavnet uden at vide, hvor filen fysisk er gemt, og hvilke funktioner og handlinger den vil bruge. Alle disse funktioner er allerede til stede i kernen.

Du kan gemme din fil på harddisken, opdele den mellem flere harddiske eller endda beholde den på en ekstern server. Delte filkommunikationsfunktioner er vigtige i sådanne tilfælde. Applikationer udveksler data, uanset hvordan dataene flyttes. Fælles kommunikationsfunktioner er der for at foretage disse dataudvekslinger. Dette træk kan være over trådløse netværk eller endda en fast telefonlinje.

Processtyring i Linux

En aktiv forekomst af et program, der opererer på data eller information i hukommelsen, er kendt som en proces. Linux-kernens opgave er at generere og holde styr på disse hukommelsesområder. Kernen tildeler hukommelse for et kørende program og indlæser den eksekverbare kode i hukommelsen fra filsystemet. Umiddelbart efter kører kernen koden.

Linux-kernen understøtter multitasking. Det er i stand til at køre adskillige processer på samme tid. Der er dog kun én transaktion i en given tidsramme. Men Linux-kernen opdeler tiden i små bidder, og som et resultat foregår hver procedure sekventielt.

Fordi disse små tidssegmenter er i millisekunders intervaller, er de kun aktive på bestemte tidspunkter og forbliver inaktive resten af ​​tiden. Linux-kernens opgave her er at maksimere ydeevnen ved at køre flere processer på én gang.

Hvis tidsintervallerne er for lange, er den kørende applikation muligvis ikke så responsiv, som du ønsker. Hvis tidsrammer er for korte, kan der være problemer med opgaveændringer. Afhængigt af processens prioritet vil det tidsrammeinterval, der kræves her, variere. Du har måske hørt om højprioriterede processer og lavprioriterede processer før. Dette er en af ​​de funktioner, som Linux-kernen styrer.

Denne forklaring er ikke altid korrekt. Den reelle begrænsning er, at der kun kan være én arbejdsproces pr. processorkerne ad gangen. Multiprocessorsystemer tillader flere processer at køre parallelt. Et grundlæggende system har næsten altid snesevis af kørende processer.

Adgangsrettigheder i Linux

Som med andre operativsystemer kan du oprette mange brugere på et Linux-system. I sådanne tilfælde er der et rettighedsstyringssystem, der understøtter individuelle brugere og grupper. Det er her fil- og brugertilladelser komme i spil.

Linux-kernen administrerer dataene og kontrollerer de nødvendige tilladelser for hver proces. For eksempel, hvis du forsøger at åbne en fil, skal kernen kontrollere proces-id'et mod adgangstilladelser. Hvis kernen tjekker og ser, at du har tilladelser, åbner den filen.

Linux-kernen styrer alt

Som du kan se, overvåger Linux-kernen alt fra din filsikkerhed til at oprette brugere og downloade filer fra internettet. Alt er i en bestemt rækkefølge. Hver bruger har rettigheder. Linux-kernen styrer processer og tidsintervaller for at opnå maksimal ydeevne.

Desuden er filsystemet, som er en af ​​de største funktioner, der adskiller Linux-kernen fra andre operativsystemer, meget vigtigt. Linux er ikke en skjult boks. Tværtimod er alle filer og kildekoder tilgængelige. For bedre at forstå den praktiske og kraftfulde natur af Linux-kernen, kan du undersøge Linux-katalogsystemets hierarki.