Kaj je jedro Linux?

Linux Branje: 2 min

Jedro Linux je srce operacijskega sistema Linux. To je program, ki se zažene prvi po zagonskem nalagalniku in teče ves čas do izklopa računalnika. Upravlja vire strojne opreme (procesor, pomnilnik, diske, omrežne vmesnike in druge naprave) in streže sistemskim klicem programov (system call), na primer ko program odpre datoteko, zahteva pomnilnik ali vzpostavi omrežno povezavo.

Jedro je najnižja raven operacijskega sistema, ki neposredno komunicira s strojno opremo. Uporabniški programi, ukazna vrstica in grafični vmesnik ne dostopajo neposredno do strojne opreme, temveč dostop zahtevajo prek jedra, zato program z napako ne more uničiti pomnilnika drugih procesov.

Plasti Linuxa: v uporabniškem prostoru programi in sistemske knjižnice dostopajo do jedra s sistemskimi klici, jedro pa upravlja strojno opremo

Glavne naloge jedra

  • Upravljanje in razporejanje procesov: odloča, kateri proces teče kdaj in na katerem procesorskem jedru.
  • Upravljanje pomnilnika: dodeljuje fizični pomnilnik, upravlja navidezni pomnilnik in swap, ob pomanjkanju pomnilnika pa z OOM killerjem ustavi proces.
  • Upravljanje naprav: gonilniki naprav so del jedra ali naložljivi moduli jedra.
  • Datotečni sistemi: podpora za ext4, XFS, Btrfs in druge datotečne sisteme.
  • Omrežje: osnova protokolov TCP/IP in požarnega zidu (netfilter, nftables).

Monolitno, a modularno

Linux je monolitno jedro, kar pomeni, da zgornje funkcije delujejo v enem programu, ki teče v skupnem naslovnem prostoru. Redkeje uporabljeni deli, na primer nekateri gonilniki naprav, pa so na voljo tudi kot moduli, ki jih je mogoče naložiti med delovanjem. Naložene module izpiše ukaz lsmod.

Različice jedra

Razvoj jedra poteka javno, okoli kernel.org, pri vsaki izdaji sodeluje več tisoč razvijalcev. Približno vsaka dva do tri mesece izide nova glavna različica. Nekatere različice leta vzdržujejo kot izdaje z dolgoročno podporo (LTS). Distribucije večinoma dobavljajo lastno jedro: izberejo določeno različico in vanjo do konca časa podpore prenašajo varnostne popravke. Zato je lahko številka različice jedra na strežniku AlmaLinux ali Ubuntu videti starejša od najnovejše izdaje na kernel.org, pa vseeno vsebuje sveže popravke.

Preverjanje jedra na strežniku

uname -r             # različica tekočega jedra
dmesg | tail -n 50   # zadnja sporočila jedra (potrebne so pravice root)
rpm -q kernel        # nameščena jedra v AlmaLinux/Rocky Linux
dpkg -l 'linux-image*' | grep ^ii   # ugyanez Debian/Ubuntu alatt

Novo jedro po posodobitvi paketov začne veljati šele po ponovnem zagonu. Če uname -r kaže starejšo različico od najnovejšega nameščenega jedra, strežnik še poganja staro. Za posodobitev jedra brez ponovnega zagona so rešitve za popravljanje v živo (live patching), na primer KernelCare ali kpatch.

Lastno jedro na VPS

Virtualizacija KVM da celoten navidezni računalnik, zato na KVM VPS teče lastno jedro, ki ga posodabljaš sam, po potrebi pa lahko naložiš tudi lastne module. V AlmaLinux lahko novejše jedro od distribucijskega namestiš iz repozitorija ELRepo, glej: Namestitev jedra Linux mainline v AlmaLinux. Na deljenem gostovanju jedro upravlja ponudnik. O prednostih in tveganjih lastno prevedenega jedra govori naš blogovski zapis o prilagojenem jedru Linux.

Nazaj: Linux – članki (76)