Kernel

Marcelo Tosatti: Linux 2.4.24-pre1

Címkék

"Hi!

Itt a 2.4.24-pre1...

Az XFS filesystem beolvasztva.

Ez a kiadás többnyire architektúra specifikus frissítéseket trartalmaz." - írta Marcelo az LKML-re.Az XFS merge-en kívül benne van már az OOM killer, mint fordítás idejű opció (alapértelmezés szerint kikapcsolva), NETFILTER javítások, köztük Kadlecsik Józsi munkái, ia64 stuffok. Érdemes szemügyre venni.

A patch letölthető innen. A változások logja Marcelo levelében itt.

Post-Halloween dokumentum új helyen

Címkék

Dave Jones szervere tönkrement, így a 2.6-os kernelről szóló FAQ-ja (amely a 2.6-os kernel új funkcióit, az első telepítés során fellépő kellemetlenségeket, és azok elhárításának módjai ismereti) új helyre költözött.

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.