Mi az a Linux kernel?

Linux 2 perc olvasás

A Linux kernel a Linux operációs rendszer magja. Ez a program indul el elsőként a rendszerbetöltő után, és a gép leállításáig folyamatosan fut. Ő kezeli a hardveres erőforrásokat (processzor, memória, lemezek, hálózati adapterek és egyéb eszközök), és ő szolgálja ki a programok rendszerhívásait (system call), például amikor egy program fájlt nyit meg, memóriát kér vagy hálózati kapcsolatot létesít.

A kernel az operációs rendszer legalsó szintje, amely közvetlenül kommunikál a hardverrel. A felhasználói programok, a parancssor és a grafikus felület nem érik el közvetlenül a hardvert, hanem a kernelen keresztül kérnek hozzáférést, így egy hibás program nem tudja tönkretenni a többi folyamat memóriáját.

A Linux rétegei: a felhasználói térben a programok és a rendszerkönyvtárak rendszerhívásokkal érik el a kernelt, a kernel kezeli a hardvert

A kernel fő feladatai

  • Folyamatkezelés és ütemezés: eldönti, melyik folyamat mikor és melyik processzormagon fusson.
  • Memóriakezelés: kiosztja a fizikai memóriát, kezeli a virtuális memóriát és a swapot, és memóriahiány esetén az OOM killer révén leállít egy folyamatot.
  • Eszközkezelés: az eszközillesztők (driverek) a kernel részei vagy betölthető kernelmodulok.
  • Fájlrendszerek: az ext4, az XFS, a Btrfs és a többi fájlrendszer támogatása.
  • Hálózat: a TCP/IP protokollok és a tűzfal (netfilter, nftables) alapja.

Monolitikus, de moduláris

A Linux monolitikus kernel, vagyis a fenti funkciók egyetlen, közös címtérben futó programban működnek. A ritkábban használt részek, például egyes eszközillesztők, ugyanakkor menet közben betölthető modulként is elérhetők. A betöltött modulokat az lsmod parancs listázza ki.

Kernelverziók

A kernel fejlesztése nyilvánosan, a kernel.org köré szerveződve folyik, kiadásonként több ezer fejlesztő közreműködésével. Nagyjából két-három havonta jelenik meg új főverzió. Egyes verziókat hosszú távú (LTS) kiadásként évekig karbantartanak. A disztribúciók többnyire saját kernelt szállítanak: egy adott verziót választanak, és ahhoz a támogatási idő végéig visszaportolják a biztonsági javításokat. Ezért egy AlmaLinux vagy Ubuntu szerveren a kernel verziószáma régebbinek tűnhet, mint a kernel.org legfrissebb kiadása, mégis naprakész javításokat tartalmaz.

A kernel ellenőrzése a szerveren

uname -r             # a futó kernel verziója
dmesg | tail -n 50   # a kernel legutóbbi üzenetei (root jog kell)
rpm -q kernel        # a telepített kernelek AlmaLinux/Rocky Linux alatt
dpkg -l 'linux-image*' | grep ^ii   # ugyanez Debian/Ubuntu alatt

Egy új kernel a csomagfrissítés után csak újraindítással lép életbe. Ha az uname -r régebbi verziót mutat, mint a legújabb telepített kernel, a szerver még a régit futtatja. Újraindítás nélküli kernelfrissítésre élő javító (live patching) megoldások szolgálnak, például a KernelCare vagy a kpatch.

Saját kernel a VPS-en

A KVM alapú virtualizáció teljes virtuális gépet ad, így a KVM VPS-en saját kernel fut, amelyet Ön frissíthet, és szükség esetén saját modulokat is betölthet. AlmaLinuxon a disztribúció kernelénél újabbat az ELRepo tárolóból telepíthet, lásd: Mainline Linux kernel telepítése AlmaLinuxon. Megosztott tárhelyen a kernelt a szolgáltató kezeli. A saját fordítású kernel előnyeiről és kockázatairól a testreszabott Linux kernelről szóló blogbejegyzésünk szól.

Vissza: Linux leírások (62)