Virtuális memória

A HupWiki-ből...

A Linux (is) támogatja a virtuális memória (virtual memory) kezelését. Ez azt jelenti, hogy képes lemezterületet RAM bővítésként kezelni, azaz a felhasználható memória mérete ennek megfelelően nő. A kernel a pillanatnyilag nem használt memóriablokkokat kiírja a merevlemezre, így a felszabaduló memória más célra felhasználható lesz. Amint az eredeti tartalomra újra szükség lesz, a kernel visszaolvassa a memóriába. Ez teljesen láthatatlan a felhasználó számára; a Linux alatt futó programok csak a nagy memóriaterületet látják és nem veszik észre, hogy bizonyos részei időnként a HDD-re kerülnek. Természetesen a merevlemez írása és olvasása sokkal lassabb, mint a valódi memória használata, ami a programok futását lassítja. (A memória és a merevlemez olvasási és írási sebessége közt pár ezerszeres szokott lenni a különbség.)

A merevlemez azon részét, amelyet a virtuális memória használ swap területnek (swap space) nevezzük.

A Linux a fájlrendszer egy normális fájlját vagy egy külön partíciót is tud használni mint swap területet. A swap partíció gyorsabb, viszont a swap fájl mérete sokkal könnyebben állítható. (A partíció méretének megváltoztatása sokszor csak a rendszer újrainstallálásával lehetséges.)

Tudni kell még, hogy a Linux megengedi egyszerre több swap partíció és/vagy fájl használatát egyidőben. Ez azt jelenti, hogy ha esetenként szokatlanul nagy swap területre van szükséged, egy új swap fájl létrehozásával megoldható a probléma a teljes terület állandó lefoglalása helyett.

A számítástechnika tudománya általában különbséget tesz a swappelés (swapping: a teljes processz swap területre írása) és a lapozás (paging: csak bizonyos fix méretű részek, általában pár kilobájt kiírása) között. A lapozás általában hatékonyabb, és ezt használja a Linux is, de valamiért a linuxos szóhasználat ezt is swappelésnek nevezi.