Mi a Linux kernel és mit csinál?

Tartalomjegyzék:

Mi a Linux kernel és mit csinál?
Mi a Linux kernel és mit csinál?

Videó: Mi a Linux kernel és mit csinál?

Videó: Mi a Linux kernel és mit csinál?
Videó: Day 1: Troubleshooting Windows Applications. What is a process and What are threads? - YouTube 2024, Lehet
Anonim
 Több mint 13 millió kódsorral a Linux kernel a világ egyik legnagyobb nyílt forráskódú projektje, de mi a rendszermag és mi használják?
Több mint 13 millió kódsorral a Linux kernel a világ egyik legnagyobb nyílt forráskódú projektje, de mi a rendszermag és mi használják?

Tehát mi a kernel?

A kernel a legolcsóbb, könnyen cserélhető szoftver, amely a számítógép hardverével csatlakozik. Felelős a "felhasználói mód" -on futó összes alkalmazás összekapcsolása a fizikai hardverrel, és lehetővé teszi a folyamatok (szerverek néven) számára, hogy információkat kapjanak egymástól az interakciós kommunikáció (IPC) segítségével.

Különböző típusú kernelek

Természetesen léteznek különböző módszerek a rendszermag és az építészeti megfontolások kialakítására, amikor az egyiket a semmiből készítik. Általánosságban elmondható, hogy a legtöbb rendszernek három típusa van: monolitikus, mikrokerneles és hibrid. A Linux monolitikus rendszermag, míg az OS X (XNU) és a Windows 7 a hibrid rendszermagokat használja. Gyorsan keressük a három kategóriát, hogy később részletesebben megismerhessük.

Image
Image

Kép: szalag pattogatott kukorica

mikrokernel A mikrokernel csak úgy kezeli, hogy mit kezel: CPU, memória és IPC. A számítógépen nagyon sok mindent meg lehet tekinteni kiegészítőként, és felhasználói módban kezelhetők. A mikrokernelek előnye a hordozhatóság, mivel nem kell aggódniuk, ha módosítja a videokártyáját vagy akár az operációs rendszert, amennyiben az operációs rendszer ugyanolyan módon próbál hozzáférni a hardverhez. A mikrokerneleknek is nagyon kicsi a lábnyomuk mind a memória, mind a helyek telepítésére, és általában biztonságosabbak, mivel csak bizonyos folyamatok futnak felhasználói módban, amelyek nem rendelkeznek magas szintű jogosultságokkal mint felügyeleti mód.

Előnyök

  • Hordozhatóság
  • Kis telepítési lábnyom
  • Kis memória lábnyom
  • Biztonság

Hátrányok

  • A hardver elvonóbb a vezetők által
  • A hardver lassabban reagálhat, mert a meghajtók felhasználói módban vannak
  • A folyamatoknak várniuk kell egy sorban, hogy információt szerezzenek
  • A folyamatok nem érhetők el más folyamatokhoz várakozás nélkül

Monolitikus kernel A monolitikus rendszermagok ellentétesek a mikrokernelekkel, mivel nemcsak a CPU-t, a memóriát és az IPC-t foglalják magukba, hanem olyan eszközöket is tartalmaznak, mint az eszközvezérlők, a fájlrendszer-kezelés és a rendszer szerver hívások. A monolitikus rendszermagok általában jobbak a hardverek és a többfeladatos feladatok elérésében, mert ha egy programnak szüksége van a memóriából vagy más folyamatokból származó információk beszerzésére, közvetlen hozzáférési vonal van ahhoz, hogy hozzáférjen hozzá, és nem kell várnia a sorban, hogy a dolgok készen álljanak. Ez azonban problémákat okozhat, mivel több felügyeleti módban futó dolog, annál több olyan dolog van, amely le tudja hozni a rendszert, ha nem viselkedik megfelelően.

Előnyök

  • Közvetlenül hozzáférhet a hardverhez a programokhoz
  • Könnyebb a folyamatok egymás közötti kommunikációjára
  • Ha a készülék támogatott, akkor további telepítések nélkül kell működnie
  • A folyamatok gyorsabban reagálnak, mert nincs várakozási idő a processzor idejére

Hátrányok

  • Nagy telepítési lábnyom
  • Nagy memória lábnyom
  • Kevésbé biztonságos, mert minden felügyeleti módban fut
 Kép a schlesknál a Flickr-en
Kép a schlesknál a Flickr-en

Hibrid Kernel A hibrid rendszermagok képesek kiválaszthatók és kiválaszthatók, hogy mit akarnak futtatni felhasználói módban, és azt, amit felügyeleti módban akarnak futtatni. Gyakran előfordul, hogy olyan dolgokat, mint az eszközillesztők és a fájlrendszer I / O futtatása felhasználói üzemmódban fut, míg az IPC és a szerver hívások felügyeleti módban maradnak. Ez mindkét világ legjobbjait nyújtja, de gyakran a hardvergyártó több munkáját igényli, mert a vezető felelőssége mindegyikükre támaszkodik. Lehetséges néhány késleltetési probléma is, amely a mikrokernelben rejlik.

Előnyök

  • A fejlesztő kiválaszthatja és kiválaszthatja, hogy mi működik felhasználói módban és mi működik felügyeleti módban
  • Kisebb telepítési lábnyom, mint a monolit kernel
  • Rugalmasabb, mint más modellek

Hátrányok

  • Ugyanaz a folyamat késleltetheti a mikrokernelt
  • Az illesztőprogramokat a felhasználónak kell kezelnie (jellemzően)

Hol vannak a Linux kernel fájlok?

Image
Image

Az Ubuntuban a kernelfájl a / boot mappában található, és a vmlinuz-változat. A vmlinuz név az unix világból származik, ahol a 60-as években egyszerűen "unix" -nak hívták a rendszermagukat, így a Linux a 90-es években először fejlesztette ki a "linux" rendszermagot.

Amikor a virtuális memóriát a könnyebb multitasking képességek fejlesztésére fejlesztették ki, a "vm" -et a fájl elé helyezték annak megmutatására, hogy a kernel támogatja a virtuális memóriát. Egy ideig a Linux kernelt vmlinuxnak nevezték, de a rendszermag túl nagy ahhoz, hogy illeszkedjen a rendelkezésre álló indítómemóriába, így a rendszermag képét összepréselték, és az x végét z-re változtatták, hogy megmutassák, hogy tömörítették az zlib tömörítést. Ugyanezt a tömörítést nem mindig használják, gyakran az LZMA vagy BZIP2 helyett, és néhány rendszermagot egyszerűen zImage-nek hívnak.

A verziószámozás A.B.C.D formátumban lesz, ahol A.B valószínűleg 2.6, C lesz a verziója, és D jelzi a javításokat vagy javításokat.

A / boot mappában más nagyon fontos fájlok is lesznek, az initrd.img-verzió, a system.map-verzió és a config-verzió. Az initrd fájlt kis RAM lemezként használják, amely kivonja és végrehajtja az aktuális rendszermag fájlt.A system.map fájl a memóriakezeléshez kerül alkalmazásra, mielőtt a rendszermag teljesen betöltődik, és a konfigurációs fájl megmondja a rendszermagnak, hogy milyen opciókat és modulokat tölt be a rendszermagba, amikor összeállítják.
A / boot mappában más nagyon fontos fájlok is lesznek, az initrd.img-verzió, a system.map-verzió és a config-verzió. Az initrd fájlt kis RAM lemezként használják, amely kivonja és végrehajtja az aktuális rendszermag fájlt.A system.map fájl a memóriakezeléshez kerül alkalmazásra, mielőtt a rendszermag teljesen betöltődik, és a konfigurációs fájl megmondja a rendszermagnak, hogy milyen opciókat és modulokat tölt be a rendszermagba, amikor összeállítják.

Linux kernel architektúra

Mivel a Linux kernel monolitikus, a legnagyobb lábnyom és a legösszetettebb a más típusú rendszermagoknál. Ez egy olyan tervezési jellemző volt, amely a Linux korai napjaiban meglehetősen keveset folytatott, és még mindig ugyanazokat a tervezési hibákat hordozza, mint a monolitikus magok.

Az egyik dolog, amit a Linux rendszermag-fejlesztők azért tettek, hogy megkerüljék ezeket a hibákat, az volt, hogy olyan rendszermag modulokat készítsenek, amelyeket futás közben betölthet és betölthet, vagyis a rendszermag sajátosságait hozzáadhatja vagy eltávolíthatja. Ez túlmutathat a hardver funkciók hozzáadásával a rendszermaghoz, ideértve a kiszolgálófolyamatokat futtató modulokat is, például az alacsony szintű virtualizációt, de lehetővé teszi, hogy az egész rendszermag cserélhető legyen anélkül, hogy bizonyos esetekben újraindítaná a számítógépet.

Képzeld el, hogy frissítheted a Windows szervizcsomagot anélkül, hogy újraindítanod kellene …

Kernel modulok

Mi van, ha a Windows minden illesztőprogramja már rendelkezésre állt, és csak be kellett kapcsolnia a szükséges illesztőprogramokat? Ez lényegében a Linux kernel modulja. A rendszermag modulok, amelyek betáplálható rendszermag modulként (LKM) is ismeretesek, elengedhetetlenek ahhoz, hogy a rendszermag minden hardverével megőrizhető legyen, anélkül, hogy az összes rendelkezésre álló memóriát felhasználná.
Mi van, ha a Windows minden illesztőprogramja már rendelkezésre állt, és csak be kellett kapcsolnia a szükséges illesztőprogramokat? Ez lényegében a Linux kernel modulja. A rendszermag modulok, amelyek betáplálható rendszermag modulként (LKM) is ismeretesek, elengedhetetlenek ahhoz, hogy a rendszermag minden hardverével megőrizhető legyen, anélkül, hogy az összes rendelkezésre álló memóriát felhasználná.

A modul jellemzően hozzáadja az alapkernél a funkciókat, például eszközöket, fájlrendszereket és rendszerhívásokat. Az LKM-k a.ko kiterjesztéssel rendelkeznek, és általában a / lib / modules könyvtárban tárolódnak. Moduláris jellegük miatt egyszerűen testreszabhatja a rendszermagot azáltal, hogy olyan modulokat állít be, amelyek a menuconfig paranccsal vagy a / boot / config fájl szerkesztésével indulnak be, vagy ha a modprobe parancs.

A harmadik fél és a zárt forrásmodulok bizonyos terjesztésekben elérhetőek, például az Ubuntu, és alapértelmezés szerint nem telepíthetők, mert a modulok forráskódja nem elérhető. A szoftver fejlesztője (pl. Az nVidia, az ATI, többek között) nem adja meg a forráskódot, hanem saját modulokat készít, és összeállítja a szükséges.ko fájlokat az elosztásra. Bár ezek a modulok ingyenesek, mint a sörök, ezek nem szabadok, mint a beszéd, ezért nem szerepelnek egyes terjesztésekben, mert a fenntartók úgy érzik, hogy a nem rendszertelen szoftvereket "megfertőzi" a rendszermag.

A rendszermag nem varázslat, de teljesen elengedhetetlen a számítógép megfelelő működéséhez. A Linux kernel különbözik az OS X és a Windows operációs rendszertől, mert magában foglalja a kernel szintű illesztőprogramokat, és sok mindent támogat "a dobozból". Remélhetőleg tudni fogsz egy kicsit többet arról, hogy a szoftver és a hardver együtt dolgozik, és milyen fájlokat kell indítani a számítógépet.

Kernel.org Kép: ingridtaylar

Ajánlott: