|
A Linux kernel több fontos részből áll: processzkezelés (process
management), memóriakezelés, hardver eszközvezérlők (device drivers),
fájlrendszer vezérlők, hálózatkezelés és egy csomó, változatos kisebb
rész. Szemléltetésül lásd a 2.1 ábrát.
. ábra:
A Linux kernel legfontosabb részei.
|
Valószínűleg a legfontosabb részek (semmi más nem működik nélkülük) a
memóriakezelés és a processzkezelés. A memóriakezelés törődik a
memória- és swap területek processzekhez, kernel részekhez és a cache
pufferekhez való rendelésével. A processzkezelés létrehozza a
processzeket és megvalósítja a többfeladatúságot (multitasking) az
aktív processz váltogatásával.
. ábra:
A 2.1. ábra eredetije. (Az angol szakkifejezések kedvéért.)
|
Legalacsonyabb szinten a kernel mindenféle támogatott hardver
eszközhöz való vezérlőt tartalmaz. Mivel a világ tele van különféle
hardverrel, az eszközvezérlők száma igen nagy. Gyakran van azonban
jelentős hasonlóság a hardver eszközök között. Ez lehetővé teszi, hogy
a vezérlőprogramokat általános csoportokba osszuk be, melyen belül a
műveletek hasonlóak; a csoport minden eleme azonos kommunikációs
felületet mutat a kernel többi része irányába, de különbözik a
műveletek megvalósításának módja. Például minden lemezvezérlő a kernel
többi része felé hasonló képet mutat, azaz mindnek van `meghajtó
inicializáló', `N. szektor beolvasó', `N. szektorba író' művelete.
A kernel által nyújtott néhány szolgáltatásnak hasonló jellemzői
vannak, és ezért osztályokba lehet őket sorolni. Például a különféle
hálózati protokollok egyetlen programozási felületbe, a `BSD socket
könyvtárba' lettek összegyűjtve. Másik példa a virtuális
fájlrendszer (virtual filesystem, VFS) rétege, mely a
megvalósítástól független, absztrakt formára hozza a fájlrendszereken
végzett műveleteket. A fájlrendszertípusok mindenféle
fájlrendszerműveletet tartalmaynak. Amikor valami használni akarja a
fájlrendszert, a kérés keresztülmegy a VFS-en, amely a megfelelő
fájlrendszervezérlőhöz irányítja.
|