Kernel

FBUI: GUI a Linux kernelben

Címkék

Z Smith egy levelet küldött tegnap az LKML-re, amelben bejelentette, hogy egy olyan GUI-n (grafikus felhasználói felület) dolgozik, amely a Linux kernelben van megvalósítva. A kód kicsi, lehetővé teszi, hogy ablakokat tegyünk a Frame Buffer-alapú virtuális konzolokra, képes olvasni a billentyűzet bemenetet és kezeli az egér mutatót. A fejlesztő azért indította el a GUI a kernelben projektjét, hogy megállítsa a szoftver hízás (software bloat) tendenciát. A projekt már most használható. Képernyőkép:





A szerző összehasonlította az általa készített in-kernel szoftver komponenseket a X komponenseivel:


Tétel FBUI X-Windows
Core software size 26 kilobytes 1710 kilobytes

Konfigurálható Magic SysRq

Címkék

Kis kitérő:

Linux kernelt futtatva kerülhetünk olyan helyzetbe, amikor a rendszerünk úgy néz ki, hogy teljesen halott (pl. deadlock, ...). Ilyen esetben kaphatunk fekete konzolt, ``lefagyó'' X szervert, stb. A Linux kernel működését kevésbé ismerő felhasználók ilyenkor azt gondolhatják, hogy ``megfagyott a Linux...''

Az igazság az, hogy nagyon kevés esetben ``fagy meg'' a Linux kernel annyira, hogy teljesen magatehetetlen. Ha nincs mint tenni, a kernel általában eldumpol (oops), és látható az, hogy mely programozási hiba miatt szállt el. Igazából, ha a kernel nem dumpol el, akkor az esetek nagy részében még igenis működik, csak éppen mi nem látjuk, hogy mit csinál. A kezdő felhasználó általában nyom egy reset-et, ha az X vagy a konzol nem reagál, és ezzel kockáztatja azt, hogy a filerendszere esetleg megsérülhet. Ha ismerné a Magic SysRq billentyűkombinációkat, akkor minden bizonnyal azt használná, és megkímélhetné magát több kellemetlenségtől is.

Mi is az a Magic SysRq? A "mágikus SysRq billentyűparancs" olyan billenytű szekvencia, amelyek segítségével egyszerű parancsokat adhatunk át közvetlenül a Linux kernelnek. Általában a Magic SysRq parancsokat a (kernel)fejlesztők használják a debug-olási munka során. Bizonyos esetben (például, mikor nem látjuk a konzolt, mert az ``megfagyott'') szükség lehet arra, hogy a kernelnek olyan utasítást adjunk, hogy 'S'ync-elje le a filerendszert, 'U'mount-oljon, és 'B'oot-olja újra a gépet. Ezzel a filerendszer ``tiszta marad'' és a következő bootolás után elkerülhetjük az fsck-t. A kernelnek számos más hasznos parancsot is adhatunk a fent felsoroltakon kívül. Nézzük mi kell ahhoz, hogy egy gépen használhassuk a Magic SysRq billentyű-kombinációkat:1.) A kernelbe bele kell fordítani a Magic SysRq támogatást.

Kernel hacking --->
Magic SysRq key

Microcode. WTF?

Címkék

Egyes Intel CPU-k (mint a legtöbb hardver és szoftver) rendelkeznek tervezési és/vagy gyártási bugokkal. Szerencsére az architektúrájuk eléggé rugalmas, és lehetővé teszi, hogy ezeket a hibákat kijavítsuk. Na nem kalapáccsal és pontozóval, hanem szoftveresen. A javítás egyik lehetséges módja az, hogy egy darab kódot, ún. microcode-ot töltünk be a processzorba ``on-the-fly'' azaz röptében, az operációs rendszer futása alatt. Ehhez nincs szükség arra, hogy rebootoljuk az operációs rendszert. Azzal, hogy betöltjük a processzorba a microcode-ot, érvényre juttatjuk azokat a javításokat, amelyet az Intel készített el azóta, hogy az adott CPU-t szilíciumba öntötte. A betöltött változtatásokkal a processzort felfrissítettük.

Mivel ez a beavatkozás nem végez fizikai változásokat a processzorban, a rendszer rebootolásával a frissítés eltűnik, így minden egyes boot-kor be kell tölteni a kódot. Természetesen ez azt is jelenti, hogy a microcode feltöltésével nem tudjuk elrontani a processzorunkat.

Nézzük mi kell ahhoz Linux operációs rendszer alatt, hogy kihasználhassuk az Intel microcode frissítések előnyeit:

C++ a Linux kernelben

Címkék

A Reykjavik University Network Laboratory egyik kutatója olyan patchet készített, amely lehetővé teszi, hogy teljes, kernelszintű runtime C++ támogatással rendelkezzen a Linux kernel.

Linux 2.6.10-rc1 vs. ATi bináris kernel driver

Címkék

A 2.6.10-rc1 kernel megjelenésével megszűntek a pci_find_*() függvények. A megszűnt függvények teljes listája a linux-2.6.10-rc1/Documentation/pci.txt file ``8. Obsolete functions'' szekciójában található.

Mivel az ATi bináris driver használja a pci_find_class() függvényt, ezért az a 2.6.10-rc1-es kernellel nem fordul le jól (*** Warning: "pci_find_class" [/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!). Ez azt eredményezi, hogy a modul nem lesz betölthető.A pci_find_*() függvények helyett a jövőben a pci_get_*() függvények használatosak. Az új függvények már kompatibilisek az új PCI alrendszerrel.

Ahhoz, hogy az ATi driver 3.14.1-es verziója használható legyen, a telepítés után meg kell patchelni a /lib/modules/fglrx/build_mod/agpgart_be.c filet. A patchelést követően a driver lefordul (némi warning kíséretében, mert az inter_module_* anyagok is deprecated-ek lettek, a remap_page_range() helyett megjelent a remap_pfn_range() függvény, stb.), és használható.

Készítettem egy patchet, ezt megtalálod itt.

Használat.

1.) Telepítsd a drivert, ahogy eddig tetted. Ha fel van telepítve, akkor lépj be a /lib/modules/fglrx/build_mod/ könyvtárba

# cd /lib/modules/fglrx/build_mod/

2.) Töltsd le a patchet

# wget http://www.hup.hu/old/stuff/ati/2.6.10-rc1/agpgart_be.patch

3.) Patcheld meg a agpgart_be.c filet

# patch -p0

4.) Fordítsd le a kernelmodult a szokott módon

A továbbiakban a kernelmodul használható.

Tesztelve: fgl_glxgears

Marcelo Tosatti: Linux 2.4.28-rc1

Címkék

A nyári / öszi pihenő után úgy tűnik, hogy ismét beindult a Linux kernel fejlesztése. Marcelo is kiadott egy -rc1 kernelt. A 2.4.28 első kiadásra jelölt verziója nem tartalmaz nagy változásokat a -pre4-hez képest...libata hibajavítások, PIIX IDE driver DMA bugfix, USB és tmpfs javítások jellemzik a patchet.

Letölthető patch-2.4.28-rc1.bz2

Változások listája Marcelo levelében itt.

Woozy Numbat: Az elnevezési háború folytatódik...

Címkék

``Az elnevezési háború folytatódik''. Ezzel a tárggyal postázta tegnap levelét Linus az LKML-re, amelyben bejelentette a 2.6.10-rc1-es Linux kernelt. Mint írta, sokat gondolkodott, hogy mi legyen a kernel neve (fogott egy sört és nézte a TV-t), mert korábban számos panasz érkezett a kernel elnevezésével kapcsolatban... Legyen ``-rc1''? Vagy ``-pre1''? Vagy csináljon úgy, mint a rakéta tudósok, és számoljon fentről le, és ne lentről felfelé?A végén egyszerűen úgy döntött, hogy ``-rcX'' lesz, és kész... (Gondolom ezzel a kis bevezetővel arra a bikeshed-re célzott, amit a felhasználók generáltak a listán, mert nem volt nekik mindegy, hogy minek nevezi a nem stabil, fejlesztés alatt álló pre/rc/foo kernelt.)

Szóval megjelent a 2.6.10-rc1, benne nagy számú patch. Például beolvasztások az -mm fából, hálózati (és net driver) frissítések, SATA anyag, bluetooth, SCSI munkák, szokásos karbantartás, stb.

A kernel igazi neve is változott! Ezentúl nem ``Zonked Quokka'' hanem helyette a ``Woozy Numbat'' használatos :-)

/*

A Makefile-ban található elnevezés:

VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 10

EXTRAVERSION = -rc1

-NAME=Zonked Quokka

+NAME=Woozy Numbat

*/

Az anyag letölthető: patch-2.6.10-rc1.bz2

Változások listája Linus levelében itt.

Kritikus szerver igények és a Linux kernel

Címkék

A Linux Journal oldalain olvashat az érdeklődő egy olyan cikket, amely a küldetés-kritikus szervereknek a kernellel szemben támasztott igényeit elemzi. A cikk megpróbálja meghatározni, hogy milyen funkciókra és mechanizmusokra van szüksége a Linux kernelnek ahhoz, hogy olyan mission-critical környezetben is felhasználható legyen, mint például a telecom iparág, ahol a megbízhatóság, teljesítmény, rendelkezésre-állás és a biztonság rendkívül fontos követelmény.

A cikket megtalálod itt.

Alan Cox újra megnyitotta az -ac fát

Címkék

Alan Cox hosszú idő után újra saját kernelfa karbantartását kezdte meg. Az első napon (10. 21) máris 3 verziót adott ki egymás után. Az újonnan megnyílt fa foltjaira természetesen azonnal kikerült a link a kernel.org főoldalára.A célja, egyrészt a saját patcheinek összegyűjtése; másrészt, hogy a 2.6-os kernelszéria különböző problémáira a fejlesztők által küldött javításokat a vanilla kernelfába beillesztés előtt összegyűjtse és tesztelje. El akarja kerülni a 2.6.8/2.6.8.1 elhamarkodott kiadásához hasonló problémákat.

Tehát alapvetően a javításokra és a stabilizálásra koncentrál, amit bizonyára örömmel fogadnak a jelenlegi fejlesztési irányvonal kritizálói.

Bejelentő levele itt olvasható. Az éppen legfrissebb 2.6.9-ac3 változások listája itt. A patch letölthető innen.