Szerző: nevergone

2003. december 27. 09:31

Új sorozat indult: Linux 2.6

Karácsony előtt jelent meg a 2.6.0-s kiadású stabil Linux kernel, cikkünkben áttekintjük kernel történetét és a friss széria legfontosabb újdonságait, változásait, végül az is kiderül, érdemes-e áttérni az új változatra vagy maradjunk a jó öreg 2.4-es sorozatnál.

Amikor Linus Benedict Torvalds 1991. augusztusában néhány szakmai fórumon megemlítette, hogy egy új, szabad kernel fejlesztésébe kezdett, még talán senki sem gondolta volna, hogy a rendszer később nagyvállalati megoldásokat irányít majd, otthoni gépek és beágyazott eszközök operációs rendszerének magja lesz, komoly vetélytársaként más, védjegyzett, zárt forráskódú fejlesztéseknek. Persze nem csak Linus teljesítményét kell ünnepelnünk, hiszen az ő munkája csak egy része az egésznek, melyet az informatikában "szabad világként" emlegetünk, ő rendszermagot adott egy olyan operációs rendszerhez, amit a GNU közösség készítgetett, és ami így már teljes értékűvé vált.

A kernel gyors, szinte robbanásszerű fejlődése nagyrészt az internetnek köszönhető. A világban eddig nem volt ismert olyan média, amely szinte pillanatok alatt össze tud kötni hasonló érdeklődésű embereket, függetlenül a köztük levő távolságtól, és persze kellett hozzá a véletlen is, hiszen előtte Linus az Andrew S. Tanenbaum által készített Minix operációs rendszeren tanult, amely azért íródott, hogy a diákoknak ne kelljen kereskedelmi Unix-licenceket vásárolniuk ahhoz, hogy tanulmányozni tudják a Unix kernelét. Mondhatni, a történelem ismétli önmagát: ha egy informatikai megoldás lényegi megvalósítása rejtett, zárt lesz, rögtön megjelenik egy nyílt fejlesztésű, szabad alternatíva, amely azon emberek között hivatott terjedni, akik kiszorultak az előbbi rendszer megismeréséből.

Az első olyan megvalósítást, amely már szélesebb körben is használható, 1991. decemberére tehetjük, a Linux ekkor már kezeli a floppy-meghajtót. Pár héttel később már a 0.12-es verziónál tartunk, ez nem sokban különbözik a 0.9-es kerneltől, de már feladatvezérléssel rendelkezik, és képes futása közben lemezre lapozni. Érdekesség, hogy a forráskód ekkor mindössze 12 ezer sorból áll.

1994. március 14 -én elérhetővé válik a Linux kernel forrásának 1.0-s változata, mely összetömörítve már eléri az 1 MB-ot, és saját ELF bináris formátumot tartalmaz, beépített SCSI-támogatással és a matematikai társprocesszor emulációval. Ekkor már többféle Linux-disztribúció létezett (pl. Red Hat, Slackware, Debian), ezzel is elősegítve a fejlesztést és a tesztelést.

1996. június 9-én elkészül a 2.0.1-es Linux kernel, amelynek forrása tömörítve is 5 MB-ra rúg, a széria komoly változásokat hozott: a legfontosabb, hogy lehetővé vált a kernel számára a betölthető modulok kezelése. Ettől kezdve már nem szükséges mindent beledrótozni a kernelbe, lehetőség van egy adott eszközmeghajtó menet közbeni betöltésére, majd használat után eltávolítására, ennek segítségével a kernel ritkábban használt részei nem foglalják feleslegesen a memóriát. Ebben a verzióban jelent meg továbbá az első próbálkozás többprocesszoros rendszerek kezelésére.

1999. január 25-én megjelenik a Linux kernel 2.2.0, a maga 10 MB-os forrásával, amely ugyan több hibát is tartalmazott, de továbbfejlődött a többprocesszoros rendszerek kezelése, átdolgozott TCP-vermet (stack) kapott, bővítették a kezelhető állományrendszerek számát, javították a modulok kezelhetőségét, és jelentősen megnőtt a támogatott hardvereszközök száma.

2001. január 4-én jelentették be a 2.4.0-s kernelt, mely szintén tartalmazott jó pár hibát, ezért sokan elég hosszú ideig nem merték vállalni az átállás kockázatát, de ezeket a hibákat a rendszer idők folyamán szépen kinőtte; a forráskód ekkor már tömörítve is 19 MB volt. A sorozat újdonságának számítottak az új generációs naplózó file-rendszerek, amelyekkel még biztonságosabbá vált a helyreállítás az esetleges hardver-meghibásodás után, továbbá a plug-and-play és az USB eszközök széleskörű támogatása.

A múlt héten, december 18-án pedig a kernel soron következő stabil, 2.6.0-s verziója is elérhetővé vált. A forrás mérete tömörítve 32 MB, és a kód a tesztváltozatokat nem ismerők számára rengeteg meglepetést tartogat.

[oldal:Újdonságok, változások a 2.6-os szériában]

A közel kétéves fejlesztési ciklus alatt beérett, stabil, 2.6-os kernel átdolgozott modulkezelést hozott, így a régebbi rendszereken szükség lehet a kernel modulkezelő parancsainak frissítésére. Ezt a legtöbb terjesztés már előrefordított csomagban tartalmazza, de ha saját magunk szeretnénk forrásból feltenni, akkor elérhető Rusty honlapján, module-init-tools néven. Jelentős újdonság az NPTL (Native Posix Threading Library), amely a szálkezelésben hozott több mint egy nagyságrendbeli sebességnövekedést, leváltva ezzel a korábbi LinuxThreads-alapú szálkezelést.

Az új kernelsorozat azonban valószínűleg a legnagyobb sikerét Molnár Ingó munkájának köszönheti, aki a Red Hat kernelhackereként dolgozva megalkotta az új generációs O(1) ütemezőt, amely speciális esetekben akár 187 százalékos gyorsulást jelenthet, de minden helyzetben jól teljesít. Jelenleg megelőzi az összes zárt licencű Unix-változatot, nagyobb interaktivitást ad a rendszernek (azaz akkor is garantálja pl. a folyamatos egér és billentyűzetkezelést, ha az erősen terhelt), és jobb válaszidőket biztosít a futó processzek számára, függetlenül azok számától, ráadásul igen jó skálázhatóságot biztosít a többprocesszoros szervereken (akár 32 processzorig is), minden processzor saját eszközöket kap egyedi futási sorral és zárolással. Javult a processzor-affinitás SMP (többprocesszoros) módban, azaz ha lehetséges, akkor egy adott processz mindig egy adott processzoron fog futni, növelve ezzel a teljesítményt.

Újraírták a blokkeszközök kezelését és a rendszer a virtuális memória (swap) kezelésében is nagyobb teljesítményre képes. Végül pedig az új kernel-változatban már jól használható a számítógép szoftveres elaltatása (software suspend), továbbá jelentősen megváltozott a framebuffer-kezelés, és jobban alkalmazkodik a beágyazott rendszerek (PDA, telefonok, ipari vezérlések) tulajdonságaihoz. Támogatottá vált az AMD 64 bites architektúrájára épülő Opteron processzor. Az új kernel ezen felül már az új NUMA (Non-Uniform Memory Access, nem egységes memória-hozzáférés) technológiát is támogatja, amely többprocesszoros rendszerekben az SMP után következő lépcsőfok, amellyel a hatékonyság jelentősen növelhető. Az újdonságok áttekintéséből a HyperThreadinget és az Intel PAE-t (Physical Address Extension, Fizikai Cím Kiterjesztés) sem hagyhatjuk ki, amely az újabb 32 bites x86 processzorok számára lapozott módban megoldja akár 64 GB memória kezelését.

Az új kernel forráskódjának konfigurálása során egy átgondoltabb struktúrával találkozhatunk, példának okáért az eszközmeghajtók új helyre, egy menüpont alá kerültek, csoportosítva. Eltávolították a XFree86 4.0-s verziója által használt DRM-et (Direct Rendering Manager), és lassan kivezetésre kerül a devfs támogatása (helyét az udev veszi át), illetve a hangkártyák kezelését vezérlő OSS (Open Sound System) rész, ez utóbbi feladatait az ALSA (Advanced Linux Sound Architecture) veszi át. Megjelent a /sys virtuális állományrendszer, amely a /proc kiváltására jött létre, és egységes struktúrákkal segíti a rendszerparaméterek menet közbeni változtatását. Végül pedig lehetőség nyílt a lapozó (swap) fordítás közbeni teljes kikapcsolására, így a jelentősen kevesebb memóriát használó megoldások (pl. beágyazott eszközök) nagyobb hatékonysággal működhetnek majd. Fordítás során pedig már használható az új mechanizmus (make, make modules_install) a régi kernelfordítási parancssorozat helyett. Az újragyúrt modulkezelő rétegnek köszönhetően az eszközmeghajtók képesek hatékonyabban kezelni a hardverelemeket.

Megemelkedtek a belső állandók értékei is, jobban illeszkedve a nagyvállalati megoldásokhoz: a processzazonosítok már 1 milliárdig is terjedhetnek; 16 bitről 32 bitre emelkedett a felhasználói azonosítók és csoportok tárolása, így már 4 milliárd a felső korlát.

Apró kis figyelmesség, hogy lehetőségünk nyílik kernelmodulba helyezni a PC beépített hangszórójának kezelését, így azt igény esetén könnyedén el lehet némítani. A processzor sebessége már szoftveresen is állítható, ez különösen a hordozható eszközök tulajdonosainak okoz majd örömet. A biztonság növelése érdekében bizonyos állományrendszereknél lehetővé vált az ACL attribútumok használata, és beolvasztásra kerültek az NSA által fejlesztett SELinux (Security-Enhanced Linux) bizonyos részei is.

A hálózatkezelésért felelős kódban ugyancsak jelentős módosítások történtek, a friss kóddal a kernel támogatja a virtuális szervereket, könnyített módot ad a sávszélesség szabályozására, illetve az iptables/netfilter alapú tűzfalmegoldás is tovább tökéletesedett.

[oldal:Mikor használható?]

Az új generációs Linux kernel számtalan újdonságot hozott magával, amelyekből a sokprocesszoros vállalati rendszerek vagy épp a hordozható tenyérgépek felhasználói is profitálhatnak, de az asztali számítógépeken is folytatódik a Linux evolúciója: megnőtt az érzékenység, így némelyik alkalmazás szinte valós módban futhat, miközben megmarad a már megszokott stabilitás.

Az új rendszermag az üzleti Linux-megoldásokba még hosszú hónapokig nem kerülhet bele, a Red Hat Enterprise Linux következő változata, amely már a 2.6-os kernelre fog épülni, a tervek szerint csak egy év múlva, 2005 elején jelenik majd meg, de a Red Hat legnagyobb piaci vetélytársánál, a SuSE-nél is arra számítanak, hogy a SuSE Linux Enterprise Server új kiadása -- szintén a 2.6-os kernellel -- leghamarabb 2004 nyarán kerülhet piacra. A nagyobb általános célú disztribúciókban (Slackware, Fedora, SuSE Linux Professional) várhatóan jövő tavasszal debütál majd a friss rendszermag.

Ezt az időt természetesen nem kell kivárnunk, hamarabb is használatba vehetjük a friss kernelt, azt azonban nem szabad elfelejtenünk, hogy a váltás esetleg kényelmetlenségekkel járhat, nem biztos, hogy minden hardverünk támogatva lesz. A gyakran használt elemek mindenképpen működnek, de a ritkább, nehezen fellelhető eszközökhöz csak akkor készülhet kifogástalan eszközmeghajtó, ha ebben a felhasználók is segítenek teszteléssel, és az esetleges hibák bejelentésével. Ehhez nyújthat segítséget az LKML (Linux Kernel Mailing List, Linux Kernel Levelezőlista), ahol a fejlesztők szívesen várják az esetleges kérdéseket és a hibák bejelentését. Az új kernelt bátran ajánlhatom minden olyan Linux-felhasználónak, aki nem retten meg attól, ha egy picit mélyebben bele kell látnia a kernel finomhangolásába. Sok sikert hozzá!

A cikk megírásában nyújtott segítségéért itt szeretnék köszönetet mondani Micskó Gábornak (trey), aki segített az akkor még tesztelői fázisban levő kernel megismerésében, a HUP csapatának, illetve Vasas Krisztiánnak (IroNiQ).

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról

AKROBATA

5

Elrajtolt az Adobe AI asszisztense

2024. április 17. 12:40

Előfizetéses modellben használható az AI Assistant, ami a cég PDF-szerkesztőjébe és olvasójába épül be.