Čo je Linuxové jadro a čo robí?

Obsah:

Čo je Linuxové jadro a čo robí?
Čo je Linuxové jadro a čo robí?

Video: Čo je Linuxové jadro a čo robí?

Video: Čo je Linuxové jadro a čo robí?
Video: 5 Rules for Answering ESSAY Questions on Exams - YouTube 2024, Apríl
Anonim
 S viac ako 13 miliónmi riadkov kódu je jadro Linux jedným z najväčších open source projektov na svete, ale čo je jadro a na čo sa používa?
S viac ako 13 miliónmi riadkov kódu je jadro Linux jedným z najväčších open source projektov na svete, ale čo je jadro a na čo sa používa?

Takže čo je jadro?

Jadro je najnižšia úroveň ľahko vymeniteľného softvéru, ktorý je prepojený s hardvérom vášho počítača. Je zodpovedný za prepojenie všetkých vašich aplikácií, ktoré sú spustené v "užívateľskom režime", až po fyzický hardvér, a umožňuje procesom, známym ako servery, získavať informácie od seba navzájom pomocou interprocesnej komunikácie (IPC).

Rôzne typy jadier

Existujú samozrejme rôzne spôsoby, ako vytvoriť jadro a architektonické hľadiská pri budovaní jedného od nuly. Všeobecne platí, že väčšina jadier spadá do jedného z troch typov: monolitický, mikrokernelový a hybridný. Linux je monolitické jadro, zatiaľ čo OS X (XNU) a Windows 7 používajú hybridné jadrá. Poďme sa rýchlo prehliadnuť do troch kategórií, aby sme mohli prejsť podrobnejšie neskôr.

Image
Image

Obrázok podľa uptown popcorn

Microkernel Mikrokernel využíva prístup len k riadeniu toho, čo má: CPU, pamäť a IPC. Takmer všetko ostatné v počítači môže byť považované za príslušenstvo a môže byť spracované v užívateľskom režime. Microkernely majú výhodu prenosnosti, pretože nemusia mať obavy, ak zmeníte grafickú kartu alebo dokonca operačný systém, pokiaľ sa operačný systém stále pokúša prístup k hardvéru rovnakým spôsobom. Mikrokernuly majú tiež veľmi malú stopu pre pamäť aj inštaláciu priestoru a majú tendenciu byť bezpečnejší, pretože iba špecifické procesy bežia v užívateľskom režime, ktorý nemá vysoké oprávnenia ako režim supervízor.

Pros

  • prenosnosť
  • Malá inštalácia footprint
  • Malá pamäťová stopa
  • zabezpečenia

Zápory

  • Hardvér je viac vodičov
  • Hardvér môže reagovať pomalšie, pretože ovládače sú v užívateľskom režime
  • Procesy musia čakať vo fronte na získanie informácií
  • Procesy nemôžu získať prístup k iným procesom bez čakania

Monolitické jadro Monolitické jadrá sú opakom mikrokrníkov, pretože zahŕňajú nielen CPU, pamäť a IPC, ale obsahujú aj veci ako ovládače zariadení, správu súborových systémov a volania systémových serverov. Monolitické jadrá majú tendenciu byť lepšie pri prístupe k hardvéru a multitaskingu, pretože ak program potrebuje získať informácie z pamäte alebo iného procesu beží, má priamu linku na prístup k nemu a nemusí čakať vo fronte na to, aby sa veci urobili. To však môže spôsobiť problémy, pretože čím viac vecí, ktoré bežia v režime supervizora, tým viac vecí, ktoré môžu znížiť váš systém, ak sa človek správa nesprávne.

Pros

  • Priamy prístup k hardvéru pre programy
  • Pre procesy je jednoduchšie komunikovať medzi sebou
  • Ak je vaše zariadenie podporované, malo by pracovať bez ďalších inštalácií
  • Procesy reagujú rýchlejšie, pretože neexistuje fronta pre čas procesora

Zápory

  • Veľká montážná stopa
  • Veľká pamäťová stopa
  • Menej bezpečné, pretože všetko beží v režime supervisora
 Obrázok cez schoschie na Flickr
Obrázok cez schoschie na Flickr

Hybridné jadro Hybridné jadrá majú možnosť vybrať a zvoliť to, čo chcú spustiť v režime používateľa a čo chcú spustiť v režime supervizora. Často sa veci ako ovládače zariadení a vstupy a výstupy súborového systému spúšťajú v užívateľskom režime, zatiaľ čo IPC a serverové volania sa budú uchovávať v režime supervizora. To dáva to najlepšie z oboch svetov, ale často bude vyžadovať viac práce výrobcu hardvéru, pretože všetky zodpovednosti vodiča sú na nich. Môžu mať aj niektoré z problémov latencie, ktoré sú spojené s mikroekernami.

Pros

  • Vývojár si môže zvoliť, čo sa spustí v režime používateľa a čo sa spustí v režime supervizora
  • Menšia inštalácia stopy ako monolitického jadra
  • Flexibilnejšie ako ostatné modely

Zápory

  • Môžu trpieť rovnakým oneskorením procesu ako mikrokernel
  • Ovládače zariadení musia spravovať používatelia (typicky)

Kde sú súbory Linuxového jadra?

Image
Image

Súbor jadra v Ubuntu je uložený v priečinku / boot a nazýva sa vmlinuz-verzia, Názov vmlinuz pochádza zo sveta UNIX, kde sa v 60-tych rokoch nazývali jadrámi jednoducho "unix", takže Linux začal vo svojom jadre "linux" po prvýkrát vyvinutý v deväťdesiatych rokoch.

Keď bola virtuálna pamäť vyvinutá pre ľahšie multitaskingové schopnosti, "vm" bol umiestnený v prednej časti súboru, aby ukázal, že jadro podporuje virtuálnu pamäť. Chvíľu sa jadro Linuxu nazývalo vmlinux, ale jadro rástlo príliš veľké, aby sa zmestili do dostupnej pamäte zavádzania, takže obraz jadra bol komprimovaný a koniec x bol zmenený na z, aby sa ukázalo, že bol komprimovaný pomocou kompresie zlib. Rovnaká kompresia sa nie vždy používa, často sa nahradí LZMA alebo BZIP2 a niektoré jadrá sa jednoducho nazývajú zImage.

Číslovanie verzie bude vo formáte A.B.C.D, kde bude A.B pravdepodobne 2,6, C bude vaša verzia a D označuje vaše opravy alebo opravy.

V / boot priečinku budú tiež ďalšie veľmi dôležité súbory s názvom initrd.img-version, system.map-version a config-version. Initrd súbor sa používa ako malý disk RAM, ktorý extrahuje a spúšťa aktuálny súbor jadra.Súbor system.map sa používa na správu pamäte pred naplnením jadra a konfiguračný súbor uvádza jadru, aké možnosti a moduly sa načítajú do obrázka jadra pri jeho zostavovaní.
V / boot priečinku budú tiež ďalšie veľmi dôležité súbory s názvom initrd.img-version, system.map-version a config-version. Initrd súbor sa používa ako malý disk RAM, ktorý extrahuje a spúšťa aktuálny súbor jadra.Súbor system.map sa používa na správu pamäte pred naplnením jadra a konfiguračný súbor uvádza jadru, aké možnosti a moduly sa načítajú do obrázka jadra pri jeho zostavovaní.

Architektúra jadra Linuxu

Pretože jadro Linuxu je monolitické, má najväčšiu stopu a najväčšiu zložitosť oproti ostatným typom jadra. Ide o dizajnovú funkciu, ktorá bola v skorých dňoch Linuxu dosť diskutovaná a stále nesie niektoré rovnaké chyby v návrhu, ktoré majú monolitické jadrá.

Jedna vec, ktorú vyvinuli vývojári jadra Linuxu na odstránenie týchto nedostatkov, bolo vytvoriť moduly jadra, ktoré by mohli byť načítané a vyložené za behu, čo znamená, že môžete pridať alebo odstrániť funkcie jadra za behu. To môže presahovať len pridaním hardvérových funkcií do jadra zahrnutím modulov, ktoré spúšťajú serverové procesy, napríklad virtualizáciu na nízkej úrovni, ale môže tiež umožniť výmenu celého jadra bez nutnosti reštartovania počítača v niektorých prípadoch.

Predstavte si, či by ste mohli inovovať na balík Service Pack systému Windows bez toho, aby ste museli reštartovať …

Moduly jadra

Čo ak by Windows mal k dispozícii každý už nainštalovaný ovládač, a museli ste zapnúť ovládače, ktoré potrebujete? To je v podstate to, čo robia moduly jadra pre Linux. Moduly jadra, známe aj ako modul na načítanie jadra (LKM), sú nevyhnutné na to, aby jadro fungovalo so všetkým hardvérom bez toho, aby ste vyčerpali všetku dostupnou pamäť.
Čo ak by Windows mal k dispozícii každý už nainštalovaný ovládač, a museli ste zapnúť ovládače, ktoré potrebujete? To je v podstate to, čo robia moduly jadra pre Linux. Moduly jadra, známe aj ako modul na načítanie jadra (LKM), sú nevyhnutné na to, aby jadro fungovalo so všetkým hardvérom bez toho, aby ste vyčerpali všetku dostupnou pamäť.

Modul zvyčajne pridáva do základného jadra funkčnosť pre zariadenia, systémy súborov a systémové volania. LKM majú príponu.ko a sú zvyčajne uložené v adresári / lib / modules. Vzhľadom na ich modulárnu povahu môžete jednoducho prispôsobiť svoje jadro nastavením modulov na načítanie alebo nezaťaženie počas spúšťania pomocou príkazu menuconfig alebo úpravou vášho / boot / config súboru alebo môžete načítať a vyložiť moduly za behu s modprobe príkaz.

Moduly tretej strany a uzatvorené zdroje sú k dispozícii v niektorých distribuciách, napríklad v Ubuntu, a nemusia byť štandardne nainštalované, pretože zdrojový kód pre moduly nie je k dispozícii. Vývojár softvéru (tzn. NVidia, ATI, okrem iných) neposkytuje zdrojový kód, ale skôr vytvorí vlastné moduly a zostaví potrebné súbory.ko na distribúciu. Zatiaľ čo tieto moduly sú voľné, ako v prípade piva, nie sú voľné, ako v reči, a preto nie sú zahrnuté v niektorých distribúciách, pretože správcovia sa domnievajú, že "poškodzuje" jadro poskytovaním neslobodného softvéru.

Jadro nie je kúzlo, ale je úplne nevyhnutné pre správne fungovanie každého počítača. Linuxové jadro je iné ako OS X a Windows, pretože obsahuje ovládače na jadrovej úrovni a mnohé veci sú podporované "mimo krabice". Dúfajme, že budete vedieť trochu viac o tom, ako váš softvér a hardvér pracuje spoločne a aké súbory potrebujete na zavedenie počítača.

Kernel.org Obrázok podľa ingridtaylar

Odporúča: