Skip to main content

Hva er Linux-kjernen?

Ceph - Framtidens lagring? (April 2025)

Ceph - Framtidens lagring? (April 2025)
Anonim

Til uformelle brukere og mindre enn hardcore-fans er Linux et operativsystem. Til purister er imidlertid tittelen "Linux" reservert for kjernen som styrer operativsystemet. Hvis du er nysgjerrig på hva Linux-kjernen er, la vi svare på det spørsmålet med et øye til den nye brukeren.

Modes

Før vi forklarer hva en kjernen er, er det viktig å forstå vilkårene "brukermodus" og "kjernemodus". Brukermodus er når kjørekode ikke har mulighet til direkte tilgang til maskinvare eller referanseminnet. For å få tilgang til maskinvare og minne, må kode som kjører i brukermodus, delegere instruksjoner til systemprogrammeringsgrensesnitt (APIer). Kernelmodus er når kjørekoden har ubegrenset tilgang til all maskinvare og er reservert for de mest pålitelige funksjonene til et operativsystem.

Hva er en kjerne?

Hvert operativsystem har en kjernen. Windows, macOS, iOS, Android, Chrome OS og Linux har hver et lavnivå system som er ansvarlig for å knytte alle applikasjoner til datamaskinens fysiske maskinvare. Uten kjernen vil ingen av programmene kunne benytte seg av den fysiske datamaskinen; Apper som Firefox, Chrome, LibreOffice, MS Office eller Outlook ville ikke fungere. Kjernen er også ansvarlig for å tillate prosesser for å utveksle informasjon ved hjelp av det som kalles Inter-Process Communication (IPC).

Det er (generelt sett) tre typer kjerner:

  • Monolitiske kjerner: Disse kjernene omfatter CPU, minne, IPC, enhetsdrivere, filsystemadministrasjon og systemserveranrop. Det er også ansvarlig for overføring av gratis systemminne til applikasjoner. Disse typer kjerner er vanligvis bedre for å få tilgang til maskinvare og multitasking.
  • Mikrokjerne: Mikrokerner tar en minimalistisk tilnærming og administrerer kun CPU, minne og IPC.
  • Hybridkjerner: Hybridkerner har muligheten til å bestemme hva de vil kjøre i enten Bruker eller Kjernemodus. Selv om dette gir det beste fra begge verdener, krever det mye mer fra maskinvareprodusentene for å skape drivere som tjener til grensesnitt mellom kjørekode og maskinvare.

Linux bruker en åpen kildekode, monolitisk kjerne, mens macOS og Windows begge bruker hybridkjerner. Linux-kjernen ble oppfattet i 1991 av Linus Torvalds. Hr. Torvalds fortsetter å være ledende utvikler på Linux-kjernen, mens utviklere fra hele verden bidrar til Linux-kjernen. Faktisk er det anslått at nesten 10 000 utviklere, fra mer enn 1000 selskaper, har bidratt til Linux-kjernen (siden sporing startet i 2005).

Hvor er kjernen?

Hvis du åpner et terminalvindu og utsteder kommandoen ls / boot, du vil se en fil som heter vmlinuz-VERSJON (Hvor VERSION er utgivelsesnavnet eller nummeret). Vmlinuz-filen er den faktiske oppstartbare Linux-kjernen, og "z" er å indikere at kjernen er komprimert; så i stedet for vmlinux har vi vmlinuz.

Innenfor denne / boot-katalogen er andre viktige kjernefiler, for eksempel initrd.img-VERSION, system.map-VERSION og config-VERSION (Hvor VERSION er enten et navn eller et utgivelsesnummer). Disse andre filene tjener følgende formål:

  • initrd: brukes som en liten RAMdisk som trekker ut og kjører den faktiske kjernefilen.
  • system.map: brukes til minnehåndtering, før kjernen lastes inn.
  • config: instruerer kjernen på hvilke alternativer og moduler som skal lastes inn.

moduler

Uten moduler ville kjernen ikke være mye brukt. Modulene aktiverer effektivt driverne som er nødvendige for å kommunisere med maskinvare uten å bruke hele systemminnet. Moduler legger også funksjonalitet til kjernen, for eksempel kommunikasjon med eksterne enheter, styring av filsystemer, sikkerhet etc. Det er mulig å liste, legge til og fjerne moduler til kjernen med følgende kommandoer:

  • lsmod vil liste alle de nåværende kildemodulene.
  • insmod vil laste en kjernemodul inn i kjørekjernen.
  • rmmod vil laste en modul fra kjørekjernen.

Så du ser, ved hjelp av noen enkle kommandoer, at Linux-kjernen kan være ganske fleksibel.

Den nåværende kjernen

Med denne skrivingen er den stabile Linux-kjernen 4.18.5, men ikke alle Linux-distribusjoner vil inkludere den nyeste kjernen. Faktisk kjører den oppdaterte Elementary OS desktop distribusjon kjernen 4.15.0-30. Hva betyr det tallet? I tilfelle av den nyeste kjernen på Elementary OS, betyr det:

  • 4 er hovedversjonen
  • 15 er den mindre versjonen
  • 0-30 er revisjonen

Det er også mulig å laste ned forskjellige versjoner av Linux-kjernen fra kernel.org og kompilere det selv. Samlingen av Linux-kjernen er en oppgave best til de som virkelig vet hva de gjør. En feilkompilert kjerne kan gjøre et system uopprettelig. Så, med mindre du er klar til å dykke inn i den utfordrende oppgaven med å kompilere kode på dette nivået, bruk standardkjernen som sendes og oppdateringer på din distribusjon.