Linuxkärnan är som en brygga som möjliggör datorkommunikation mellan applikationer och hårdvara och hanterar systemets resurser. Linus Torvalds utvecklade Linux-kärnan med C och Assembly och därmed lyckades han skapa en lätt och bärbar kärna som släpptes för allmänheten som öppen källkod.

Du kan se Linux-kärnan i många olika sektorer som rymd, datorer, smarta klockor, mobiltelefoner, robotteknik och hälsa. Men har du någonsin undrat hur Linux-kärnan fungerar under huven?

Maskinvaruanvändning på Linux

Linuxkärnan styr först och främst vilken hårdvara som körs och på vilket sätt när du slår på din dator. Dessutom är kontroll av avancerad mjukvara möjlig tack vare programmeringsgränssnittet. För att ge ett exempel på dessa kontroller är det möjligt för dig att se information om hårdvaran installerad i kortplatserna på ditt moderkort och dra nytta av denna detaljerade information.

Dessutom tillhandahåller detta programmeringsgränssnitt ett abstraktionslager. Om du till exempel vill ha en videokonversation med dina vänner behöver du en webbkamera. Abstraktionslagret gör det möjligt för programvaran du använder att använda den här webbkameran oavsett fabrikat och modell. Programvaran här kan bara använda det gränssnitt som finns för Linux. Linuxkärnan översätter detta gränssnitts funktionsanrop till faktiska hårdvarukommandon som webbkameran behöver.

instagram viewer

Använda /proc och /sys virtuella filsystem, kan Linux-kärnan exportera detaljerad information om hårdvaran den upptäcker. Nedan kan du se några verktyg som används för detta och vilka enheter och kort de exporterar:

  • lspci: För PCI-enheter
  • lsusb: För USB-enheter
  • lspcmcia: För PCMCIA-kort

Som du kan se körs Linux-distributionen i skärmdumpen ovan på VirtualBox. Däremot har du möjlighet att se mycket information som VGA, USB-kontroller, bryggor och SATA-kontroller.

Du kan också använda -v parameter för att få mycket mer detaljerad information.

I Linux-kärnan kommer applikationer vanligtvis åt enheter genom speciella filer som finns i /dev katalog. Dessa specialfiler representerar diskenheter och andra fysiska enheter. Filer som t.ex /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 och dev/snd/* är exempel på dessa specialfiler.

Linux filsystemhantering

Filsystem är en av de mest anmärkningsvärda komponenterna i Linux-kärnan. Filsystemet för Linux är en av dess största fördelar. Alla filer på ett Linux-system samlas i en enda gren. Användare kan alltså använda denna hierarki för att nå sina önskade platser.

Utgångspunkten för denna hierarki är rotkatalogen (/). Andra underkataloger finns under rotkatalogen. Den mest använda underkatalogen under / är /home katalog. Den här underkatalogen innehåller andra underkataloger och varje katalog har filer som lagrar faktiska data.

Du kan till exempel tänka på en textfil på skrivbordet. Om du skapar en textfil som heter helloworld.txt på ditt skrivbord kan du referera till det som /home/muo/Desktop/helloworld.txt. Exemplet på /muo här kommer naturligtvis att variera. Eftersom detta underkatalognamn beror på din nuvarande användares namn. Med detta namnsystem översätter Linux-kärnan mellan faktisk och fysisk lagring som finns på en disk.

Dessutom kan Linux-kärnan integrera data från flera diskar. Det är här monteringssystemet kommer in i bilden. Den använder en av diskarna i rotsystemet och monterar de andra till befintliga kataloger i hierarkin. Andra skivor placeras sedan under monteringspunkter. Detta tillåter användare att lagra /home katalog på en andra hårddisk som också innehåller andra underkataloger.

När du monterar en skiva till /home katalogen kan du komma åt dessa kataloger från normala platser. Alltså vägar som t.ex /home/muo/Desktop/helloworld.txt fortsätta arbeta.

Du kan se monteringspunkterna mellan filerna på ditt system med findmnt -A kommando.

Med många filsystemsformat kan du fysiskt lagra data på diskar. De mest kända på Linux är ext2, ext3, och ext4 filsystemsformat. Det finns dock många andra filsystemsformat. I vilket fall som helst måste du formatera filsystemet innan du monterar det. Du kan använda kommandon som mkfs.ext3 (mkfs står för make file system och ext3 är filsystemet) för detta.

Dessa kommandon accepterar enhetens filsökväg som du vill formatera som en parameter. Det är en destruktiv operation och du bör använda den med försiktighet om du inte vill torka eller återställa ett filsystem.

Förutom dessa finns det också nätverksfilsystem som NFS som Linuxkärnan använder. NFS är ett nätverksfilsystem där data inte lagras på en lokal disk. Med NFS går data över nätverket till en server som lagrar data. Eftersom data kommer att finnas på en server behöver användarna inte ständigt hantera det. De kan också använda det traditionella hierarkiska filsystemet i Linux som vanligt.

Operationer med delad funktion

All programvara i Linux-systemet har gemensamma funktioner. Det är därför dessa funktioner är centrala i Linux-kärnan. När du till exempel öppnar en fil kan du bara öppna den med filnamnet, utan att veta var filen är fysiskt lagrad och vilka funktioner och operationer den kommer att använda. Alla dessa funktioner finns redan i kärnan.

Du kan lagra din fil på hårddisken, dela den mellan flera hårddiskar eller till och med behålla den på en fjärrserver. Delade filkommunikationsfunktioner är viktiga i sådana fall. Applikationer utbyter data oavsett hur data flyttas. Delade kommunikationsfunktioner är till för att göra dessa datautbyten. Denna flytt kan ske över trådlösa nätverk eller till och med en fast telefonlinje.

Processhantering i Linux

En aktiv instans av ett program som arbetar på data eller information i minnet kallas en process. Uppgiften för Linux-kärnan är att generera och hålla reda på dessa minnesregioner. Kärnan allokerar minne för ett program som körs och laddar den körbara koden till minnet från filsystemet. Omedelbart efter kör kärnan koden.

Linux-kärnan stöder multitasking. Den kan köra många processer samtidigt. Det finns dock bara en transaktion under en given tidsram. Men Linux-kärnan delar upp tiden i små bitar och som ett resultat sker varje procedur sekventiellt.

Eftersom dessa små tidssegment är i millisekundssteg, är de bara aktiva vid specifika tidpunkter och förblir inaktiva resten av tiden. Linuxkärnans jobb här är att maximera prestanda genom att köra flera processer samtidigt.

Om tidsluckorna är för långa kanske den pågående applikationen inte är så responsiv som du skulle vilja. Om tidsramarna är för korta kan det uppstå problem med uppgiftsändringar. Beroende på processens prioritet kommer tidsintervallet som krävs här att variera. Du kanske har hört talas om högprioriterade processer och lågprioriterade processer tidigare. Detta är en av funktionerna som Linuxkärnan kontrollerar.

Denna förklaring är inte alltid korrekt. Den verkliga begränsningen är att det bara kan finnas en arbetsprocess per processorkärna åt gången. Multiprocessorsystem gör att flera processer kan köras parallellt. Ett bassystem har nästan alltid dussintals pågående processer.

Åtkomsträttigheter i Linux

Som med andra operativsystem kan du skapa många användare på ett Linux-system. I sådana fall finns det ett rättighetshanteringssystem som stödjer enskilda användare och grupper. Det är här fil- och användarbehörigheter komma till spel.

Linuxkärnan hanterar data och kontrollerar nödvändiga behörigheter för varje process. Till exempel, om du försöker öppna en fil måste kärnan kontrollera process-ID mot åtkomstbehörigheter. Om kärnan kontrollerar och ser att du har behörigheter kommer den att öppna filen.

Linuxkärnan styr allt

Som du kan se övervakar Linux-kärnan allt från din filsäkerhet till att skapa användare och ladda ner filer från internet. Allt är i en viss ordning. Varje användare har rättigheter. Linuxkärnan hanterar processer och tidsluckor för maximal prestanda.

Dessutom är filsystemet, som är en av de största funktionerna som skiljer Linuxkärnan från andra operativsystem, mycket viktigt. Linux är inte en dold låda. Tvärtom är alla filer och källkoder tillgängliga. För att bättre förstå den praktiska och kraftfulla naturen hos Linux-kärnan kan du undersöka Linux-katalogsystemhierarkin.