Az alkalmi felhasználóknak és a kevésbé keményebb rajongóknak a Linux egy operációs rendszer. A puristák számára azonban a "Linux" cím az operációs rendszert futtató rendszermag számára van fenntartva. Ha kíváncsi vagy arra, hogy mi a Linux kernel, válaszoljunk rá a kérdésre az új felhasználó szemében.
módok
Mielőtt elmagyarázzuk, mi a rendszermag, fontos megérteni a "felhasználói mód" és a "kernel" kifejezést. A felhasználói mód az, amikor a kód végrehajtása nem képes közvetlenül elérni a hardver vagy referencia memóriát. A hardver és a memória elérése érdekében a felhasználói módban futó kódnak utasításokat kell átengednie a rendszeralkalmazás-programozási interfészekhez (API-k). A kernel mód az, amikor a kód végrehajtása korlátlan hozzáférést biztosít az összes hardverhez, és az operációs rendszer legmegbízhatóbb funkcióihoz van fenntartva.
Mi a kernel?
Minden operációs rendszernek van rendszermagja. A Windows, a MacOS, az iOS, az Android, a Chrome OS és a Linux mindegyikének alacsony szintű rendszere van, amely felelős az összes alkalmazásnak a számítógép fizikai hardverével való összekapcsolásáért. A rendszermag nélkül egyetlen alkalmazás sem tudná használni a fizikai számítógépet; olyan alkalmazások, mint a Firefox, a Chrome, a LibreOffice, az MS Office vagy az Outlook nem működnek. A rendszermag felelős azért is, hogy a folyamatok lehetővé tegyék az információk cseréjét az Inter-Process Communication (IPC) segítségével.
Vannak (általánosságban) háromféle rendszermag:
- Monolit kernelek: ezek a rendszermagok magukban foglalják a CPU-t, a memóriát, az IPC-t, az eszközillesztőket, a fájlrendszer-kezelést és a rendszer szerver hívásokat. Feladata továbbá a szabad rendszer memória átadása az alkalmazásoknak. Az ilyen típusú rendszermagok általában jobbak a hardver és a többfeladatú műveletek eléréséhez.
- Mikrokernel: A mikrokernelek minimalista megközelítést alkalmaznak, és csak a CPU-t, memóriát és IPC-t kezelik.
- Hibrid kernelek: A hibrid kernelek képesek arra, hogy eldöntsék, mit szeretnének futtatni a felhasználó vagy a kernel módban. Bár ez mindkét világ számára a legjobbat nyújtja, sokkal többet követel a hardvergyártóktól olyan illesztőprogramok létrehozásához, amelyek a futó kód és a hardver közötti kapcsolódást szolgálják.
A Linux nyílt forrású, monolit kernelt használ, míg a macOS és a Windows egyaránt Hybrid Kerneleket használ. A Linux rendszermagot 1991-ben fogalmazta meg Linus Torvalds. A mai napig Mr. Torvalds továbbra is a Linux kernel vezető fejlesztője, míg a világ minden tájáról érkező fejlesztők hozzájárulnak a Linux kernelhez. Valójában becslések szerint közel 1000 fejlesztő, több mint 1000 cégtől kapott hozzájárulást a Linux kernelhez (mivel a nyomkövetés 2005-ben kezdődött).
Hol van a kernel?
Ha megnyit egy terminál ablakot és kiadja a parancsot ls / boot, megjelenik egy nevű fájl vmlinuz-VERSION (Ahol a VERSION az elengedési név vagy szám). A vmlinuz fájl a ténylegesen indítható Linux kernel, és a "z" azt jelzi, hogy a kernel tömörített; így a vmlinux helyett vmlinuz van.

A / boot könyvtáron belül más fontos rendszermag fájlok, például initrd.img-VERSION, system.map-VERSION és config-VERSION (ahol a VERSION név vagy kiadási szám). Ezek a fájlok a következő célokat szolgálják:
- initrd: kisméretű RAMdiskként használható, amely kivonja és végrehajtja az aktuális rendszermag fájlt.
- system.map: a memória kezeléséhez használt, a rendszermag betöltése előtt.
- config: utasítja a kernelt, hogy milyen opciókat és modulokat tölt be.
modulok
Modulok nélkül a rendszermag nem sok hasznára lenne. A modulok hatékonyan bekapcsolják a hardverrel való kommunikációhoz szükséges meghajtókat, anélkül, hogy az összes rendszermemóriát felhasználnák. A modulok a rendszermag funkcióit is kiegészítik, például a perifériákkal való kommunikáció, a fájlrendszerek kezelése, a biztonság stb. A modulok listázása, hozzáadása és eltávolítása a rendszermaghoz a következő parancsokkal lehetséges:
- lsmod felsorolja az aktuálisan betöltött rendszermag modulokat.
- insmod betölt egy rendszermagot a futó rendszermagba.
- rmmod eltávolít egy modulot a futó rendszermagról.
Így egyszerű parancsok segítségével a Linux kernel meglehetősen rugalmas lehet.
A jelenlegi kernel
Ebből az írásból a stabil Linux kernel 4.18.5, de nem minden Linux disztribúció tartalmazza a legújabb rendszermagot. Valójában a frissített Elementary OS asztali terjesztés a 4.15.0-30 rendszermagot futtatja. Mit jelent ez a szám? Az Elementary OS legújabb rendszermagja esetében:
- A 4 a fő változat
- A 15 a kisebb verzió
- 0-30 a felülvizsgálat
Lehetőség van a Linux kernel különböző változatainak letöltésére a kernel.org-ból, és összeállítani. A Linux-rendszermag összeállítása a legjobban feladja azoknak, akik tényleg tudják, mit csinálnak. A helytelenül összeállított rendszermag elindíthatja a rendszert. Tehát, hacsak nem hajlandó belevetni a kódkészítés ezen a szinten lévő kihívást jelentő feladathoz, használja az alapértelmezett rendszermagot, amely hajlandó és frissíti a választott terjesztést.




