Kernel

OOM Killer, mint fordítási idejű opció

Címkék

Szeptember elején kezdődött egy olyan folyamat, amelynek a vége az lett, hogy a 2.4.23-as kernelből eltávolításra került a Rik van Riel (cikk) -féle Out of Memory Killer.

Az OOM Killer feladata az, hogy működésbe lépjen, ha a rendszeren ``out of memory'' helyzet jön létre. Ebben a helyzetben a feladata az, hogy ha nincs felszabadítható memória és nem áll rendelkezése swap hely sem, akkor kill-elje a legmegfelelőbb taszkot annak érdekében, hogy memóriát szabadítson fel.

Andrea Arcangeli szerint az OOM Killer szerver környezetben nem mindig működik megfelelően, és bizonyos helyzetekben bizonyítottan ``deadlock'' helyzetet idézhet elő (főleg adatbázis szervereken). Ezért Andrea eltávolította az OOM Killert a 2.4-es VM-ből. Ezeket a változásokat Marcelo Tosatti beolvasztotta a 2.4-es kernelfába a 2.4.23-pre4 idején.Több desktop felhasználó jelezte, hogy nem elégedett az új VM változásokkal. Nem biztos, hogy a szerver és dekstop felhasználók érdekei megegyeznek. Azok a változtatások, amelyek jók szerver környezetben, nem biztos, hogy a legjobb viselekdést produkálják a desktopokon.

Sok felhasználó látta volna szívesen az OOM Killer-t, mint fordítási időben választható opciót. Tosatti engedett a nyomásnak, és megjelent a 2.4-es kernel konfigurációban az CONFIG_OOM_KILLER opció.

Így lehetőség nyílik a szerver környezetben jobban viselkedő, új VM-be épített (-aa féle) OOM védelem, és a desktop környezetben jobban teljesítő régi OOM Killer közötti választásra.

A különbség a két OOM védelem között: míg az új védelem (-aa féle) azt a teszkot ``lövi ki'', amely memóriát próbál allokálni az ``out of memory'' helyzetben, addig a régi OOM Killer megpróbálja a legésszerűbb taszkot kiválasztani (heurisztikus keresés alapján).

Marcelo levele és a patch itt.

Processz ütemező összehasonlítás 2.4 vs. 2.6

Címkék

A 2.6-os Linux kernel egyik legnagyobb újítása kétségtelenül a processz ütemezőjében rejlik (A Linux processz ütemező, A Linux processz ütemező II.).

Többen kételkednek az új O(1) ütemező teljesítményében, ezért néhány ember az LKML-en rendszeresen teszteli a ``régi'' 2.4-es kernel és az új 2.6-os kernel skálázhatóságát. Az elmúlt napokban Craig Thomas hasonlította össze a 2.4.18-as kernelt a 2.6.0-test9 kernellel.

A teszteredmények igazolják, hogy a 2.6-os Linux kernel sokkal skálázhatóbb, mint a 2.4-es kernel.

Az eredmények Craig levelében.

Az eredmények részletesebbek, grafikonokon szemléltetve itt.

Linux 2.4.23 OOM killer nélkül

Címkék

A 2.4.23-as stabil Linux kernel megjelenésével számos VM változást könyvelhettek el a felhasználók. A VM változások Andrea Arcangeli nevéhez fűződnek, az Ő -aa ágából kerültek a fő kernelfába. Az egyik legjelentősebb változás az, hogy Marcelo Tosatti a 2.4.23-pre4 megjelenésekor belovasztotta azokat a VM változáskozat, amelyeknek eredményeként a kernelből eltávolításra került a régóta használt Out of Memory Killer.

Sokanak nem tetszik az új VM, és ennek hangot is adtak az LKML-en. Egy felhasználó jelezte, hogy gondjai akadtak az új VM-mel, mikor a 2.4.23-ra frissített. Arcangeli a válaszlevelében leírta, hogy miért van szükség ezekre a változtatásokra.Amikor a korábbi 2.4-es kernelnek kifutottak a memóriából, az OOM killer heurisztikus módon próbálta megállapítani, hogy melyik processz kill-elése lenne a legmegfelelőbb. Andrea szerint ez a heurisztika sajnos nem minden esetben a legjobb processzt választotta, és ez néha problémákhoz vezetett. Például ahhoz, hogy a rendszer deadlock-ra futott. A 2.4.23-ban a VM rendszer egyszerűen azt a processzt ``lövi ki'' amely az out-of-memory helyzetet előidézte, és így a szituáció nem vezethez deadlock-hoz. Továbbá nem jöhet létre olyan szituáció, hogy processzt ``lő ki'' a VM akkor, amikor még van szabad RAM, kizárólag akkor kezdi el kill-elni a processzeket, amikor ténylegesen fellép az out-of-memory helyzet. Végül - Arcangeli szerint - mostmár lehetőség van arra, hogy teljesen letiltsuk a lapozó területet (swap) úgy, hogy mellette egy használható rendszert kapunk.

A válaszokban az állt, hogy a 2.4.23 ``rossz processzeket'' kezd el kill-elni. Erre Arcangeli azt válaszolta, hogy ez nem feloldható probléma. A kernel nem tudja követni a használójának a gondolkozásmódját. Csak akkor tudná a kernel megfelelő processzt kiválasztani, ha belelátna az adminisztrátor gondolkozásmódjába. Csak abban az esetben lenne biztos, hogy azt a processzt ``lövi ki'' először a VM, amelyet a felhasználó szeretne.

Többen kértek segítséget ahhoz, hogy visszaállíthassák a régi OOM killert a 2.4.23-as kernelben. Sokan szívesen látnának a kernel konfigban egy olyan opciót, amely fordítási időben választható VM-et tesz lehetővé. Az egyik felhasználó egy patchet küldött a 2.4.23-hoz, amely visszaállítja a korábbi 2.4.22 VM-et.

A thread itt kezdődik.

A GPL és a bináris kernel modulok

Címkék

Egy nagyon-nagyon hosszú thread kezdődött a LKML-en a Linux kernel és a csak bináris formában terjesztett (binary only) kernel modulok kapcsolatáról.

Az köztudott, hogy a Linux kernel terjesztése a GNU General Public License feltételei szerint történik. A Linux kernel mindig is GPL-es volt, eltekintve attól a rövid időtől, amely közvetlenül az első kiadása után 1991-ben volt. Az Linux kernel első licence sokkal kötöttebb volt. Kimondta, hogy a forrásnak minden körülmények között elérhetőnek kell lennie, és ahogy a Linux kernelből nem lehet pénzt keresni.Linus néhány hónap múlva megváltoztatta az eredeti licencet, és helyette a GPL-t alkalmazta. A GPL nem tiltja a GPL-es programok pénzért való terjesztését. A Linux kernel azóta is a GPL alatt van terjesztve.

Köszönhetően a GPL-nek, a Linux kernelből származtatott összes forráskódnak is szabadon elérhetőnek kell lennie a GPL licenc alatt. Ezért sokan megkérdőjelezték a csak bináris formában terjesztett kernelmodulok (NVidia, ATi, winmodemek és még sorolhatnám) legalitását, hiszen ezekhez nincsen forráskód.

A hosszú threadben Linus is kifejti véleményét a dologgal kapcsolatban. Szerinte van egy szürke területe ennek a dolognak. Szerinte azok a driverek, amelyek eredetileg nem a Linux kernelhez, hanem más operációs rendszerhez készültek (vagyis nem nevezhetők tisztán a Linux kernelből származtatott eredetűnek) ide tartoznak.

AZ érdekes threadet megtalálod itt kezdődik.

ALSA: az 1.0 küszöbén (1.0.0rc1)

Címkék

Az Advanced Linux Sound Architecture (ALSA) projekt - majd hat évvel azután, hogy elkezdett (1998) egy új hang alrendszert kidolgozni a Linux kernel számára - bejelentette az ALSA 1.0.0 első kiadásra jelölt verzióját. A bejelentés szerint a végleges 1.0.0-ás verzió hamarosan várható. Mint az ismert, az ALSA része lesz a 2.6-os kernelnek. Még a 2.5 korai szakaszában 2002. február 13-án mergelte Linus a 2.5.5-pre1-be. Valószínűleg a közelgő stabil 2.6-os kernel megjelenéséhez igazították az ALSA fejlesztők az 1.0-ás bejelentést.

Bejelentés itt.

CAN-2003-0961: privilégium szint emelés (helyi root)

Címkék

Érintett kernelverziók: 2.4.22 és a korábbi kernelek

A tegnapi Debian SA-ból következik, hogy minden Linux disztribúció használójának érdemes a 2.4.23-as kernelre (vagy a legújabb 2.6-os test kernelekre) frissíteni. Mivel a Debianban megtalált kernelhiba nem Debian specifikus volt, a többi disztribútor ``terméke'' is érintett lehet. A Mandrake már ki is adta a hibajegyét. A Red Hat szintén.

A hiba leírása:A 2.4.22-es és korábbi Linux kernelben megtalálható do_brk() függvényben hibás a határellenőrzés. Ezt a hibát kihasználva a rosszindulatú helyi felhasználó root jogokat szerezhet az áldozat gépen. Az exploit közkézen forog, úgyhogy a hibát komolyan kell venni!

A CVE bejelentése itt.

Lesz XFS a 2.4-es kernelben?

Címkék

Tegnap Keith Owens bejelentette a 2.4.23-as kernelhez az SGI-s XFS split patcheket. Az XFS csoport időnként készít olyan patcheket, amelyben csak az XFS filerendszer core változásai szerepelnek, de az egyéb patchek (mint például a kdb, acl, dmapi) nem. A core patcheket azért adják ki, mert remélik, hogy a disztribútorok, tesztelők hasznosnak találják majd és alkalmazzák/tesztelik őket.

Az ismert, hogy az XFS a 2.6-os kernel része elég régóta (pontosabban a 2.5.36 óta, amelybe tavaly szeptemberben mergelte be Linus az XFS kódot).

Nathan Scott - Keith Owens bejelentésének apropóján - felkérte Marcelo Tosattit, hogy olvassza be a 2.4-es kernelbe az XFS filerendszer használatához szükséges alapvető változásokat. Tosatti válaszában elutasította a kérést:

``Úgy gondolom, hogy az XFS egy 2.6-os funkció. A 2.6 jelenleg már elegendően stabil arra, hogy az emberek használják''Nathan tovább próbálkozott, mondván, hogy a változások kicsik, és nem érintenek másik filerendszereket. Kérte Marcelot, hogy olvassza be az XFS-t a mainline kernelbe, mert az XFS állandó fejlesztés alatt áll, nagy telepített felhasználói bázisa van, és a kernelfán kívül évek óta karban van tartva.

Valószínűleg azért került elő az XFS bolvasztásának kérdése most, mert tegnap Marcelo kijelentette, hogy a 2.4.24-es lesz az az (valószínűleg) utolsó stabil kernel, amelybe újabb funkciók, driverek kerülhetnek. A későbbiekben a 2.4-es kernelhez csak bugfixek és biztonsági javítások lesznek már csak elérhetőek.

Az XFS felhasználók mindenesetre reménykednek, hogy beolvasztásra kerül a kedvenc naplózó filerendszerük.

A thread itt kezdődik.

Marcelo Tosatti: A Linux 2.4 jövője

Címkék

Marcelo Tosatti - a 2.4-es stabil kernelsorozat karbantartója - mai levelében felvázolta a szándákait a 2.4-es kernel jövőjével kapcsolatban:

``Hi,

Az célom az ezzel az emaillel, hogy tisztázzam az álláspontomat a 2.4.x jövőjével kapcsolatban.

[A] 2.6 napról-napra egyre stabilabb, és remélhetőleg még ebben a hónapban vagy januárban látjuk is majd megjelenni.

Amint említettem, a szándékaim:- A 2.4.24-ig azoknak a problémáknak a javítása, amelyek erőszakosabb változtatásokat igényelnek. Lesznek új driverek elfogadva ebben a periódusban (pl. a Cyclades PC300 driver, input userlevel driver támogatás, vagy más ésszerű driverek amelyek előjöhetnek)

- a 2.4.25-től csak a kritikus/biztonsági problémák javítására kerül sor''

Marcelo levele itt.