Til casual brugere og mindre end hardcore fans er Linux et operativsystem. Til purister er titlen "Linux" forbeholdt kernen, der styrer operativsystemet. Hvis du er nysgerrig om, hvad Linux-kernen er, lad os svare på det pågældende spørgsmål med henblik på den nye bruger.
tilstande
Før vi forklarer, hvad en kerne er, er det vigtigt at forstå udtrykkene "brugerens tilstand" og "kernel mode". Brugertilstand er, når kørsel ikke har nogen evne til direkte adgang til hardware eller referenceminnet. For at få adgang til hardware og hukommelse skal kode, der kører i brugertilstand, delegere instruktioner til systemapplikationsprogrammeringsgrænseflader (API'er). Kernel-tilstand er, når udførelsen af kode har ubegrænset adgang til al hardware og er forbeholdt de mest betroede funktioner i et operativsystem.
Hvad er en kerne?
Hvert operativsystem har en kerne. Windows, MacOS, iOS, Android, Chrome OS og Linux har hver især et lavt niveau system, der er ansvarlig for grænsefladen af alle applikationer med computerens fysiske hardware. Uden kernen vil ingen af dine applikationer kunne udnytte den fysiske computer; apps som Firefox, Chrome, LibreOffice, MS Office eller Outlook ville ikke fungere. Kernen er også ansvarlig for at tillade processer at udveksle information ved hjælp af det, der hedder Inter-Process Communication (IPC).
Der er (generelt set) tre typer kerne:
- Monolitiske kerner: Disse kerner omfatter CPU, hukommelse, IPC, enhedsdrivere, filsystemstyring og systemserveropkald. Det er også ansvarligt for afgivelse af ledig systemhukommelse til applikationer. Disse typer kerner er typisk bedre til adgang til hardware og multitasking.
- Microkernels: Mikrokerner tager en minimalistisk tilgang og styrer kun CPU, hukommelse og IPC.
- Hybridkerner: Hybridkerner har evnen til at bestemme, hvad de vil køre i enten Bruger eller Kernel-tilstand. Selv om dette giver det bedste fra begge verdener, kræver det meget mere fra hardwareproducenterne at oprette drivere, der tjener til at interfere med løbekode og hardware.
Linux bruger en open source, monolitisk kerne, mens macOS og Windows begge bruger hybridkerner. Linux-kernen blev udtænkt i 1991 af Linus Torvalds. Hr. Torvalds er indtil videre den førende udvikler på Linux-kernen, mens udviklere fra hele verden bidrager til Linux-kernen. Det anslås faktisk, at næsten 10.000 udviklere fra mere end 1.000 virksomheder har bidraget til Linux-kernen (siden sporing begyndte i 2005).
Hvor er kernen?
Hvis du åbner et terminalvindue og udsteder kommandoen ls / boot, du vil se en fil, der hedder vmlinuz-VERSION (Hvor VERSION er udgivelsesnavn eller nummer). Vmlinuz-filen er den egentlige bootable Linux-kerne, og "z" er at angive, at kernen er komprimeret; så i stedet for vmlinux har vi vmlinuz.

Inden for denne / boot-mappen er andre vigtige kernefiler, såsom initrd.img-VERSION, system.map-VERSION og config-VERSION (Hvor VERSION er enten et navn eller et udgivelsesnummer). Disse andre filer tjener følgende formål:
- initrd: bruges som en lille RAMdisk, der uddrager og udfører den faktiske kernefil.
- system.map: bruges til hukommelsesstyring, før kerneladning.
- config: instruerer kernen om hvilke muligheder og moduler der skal indlæses.
moduler
Uden moduler ville kernen ikke være meget brug. Moduler aktiverer effektivt de drivere, der er nødvendige for at kommunikere med hardware uden at forbruge hele din systemhukommelse. Moduler tilføjer også funktionalitet til kernen, såsom kommunikation med eksterne enheder, styring af filsystemer, sikkerhed osv. Det er muligt at liste, tilføje og fjerne moduler til kernen med følgende kommandoer:
- lsmod vil liste alle de aktuelt indlæste kernemoduler.
- insmod vil indlæse et kernelmodul i den kørende kerne.
- rmmod vil aflæse et modul fra den kørende kerne.
Så du kan se ved hjælp af nogle enkle kommandoer, at Linuxkernen er ret fleksibel.
Den nuværende kerne
Med denne skrivning er den stabile Linux-kerne 4,18,5, men ikke alle Linux-distributioner vil indeholde den nyeste kerne. Faktisk kører den opdaterede Elementary OS desktop distribution kerne 4.15.0-30. Hvad betyder dette tal? I tilfælde af den nyeste kerne på Elementær OS betyder det:
- 4 er den store version
- 15 er den mindre version
- 0-30 er revisionen
Det er også muligt at downloade forskellige versioner af Linux-kernen fra kernel.org og kompilere det selv. Kompileringen af Linux-kernen er en opgave, der bedst overlades til dem, der virkelig ved, hvad de laver. En ukorrekt kompileret kerne kan gøre et system ubootabelt. Så, medmindre du er klar til at dykke ind i den udfordrende opgave at kompilere kode på dette niveau, skal du bruge standardkernen, der sendes og opdateres på din valgfordeling.




