:

Szerző: Bodnár Ádám

2012. július 26. 09:36

Linux kernel 3.5: sok kis fejlesztés

Pontosan két hónap után érkezett új verzió a Linux rendszermagból. A kernel több mint 200 újdonságot tartalmaz, ezek zöme azonban kisebb horderejű fejlesztés. Néhányat azért mégis érdemes kiemelni ezek közül, a HWSW erre törekedett a teljesség igénye nélkül.

Újdonságok a mag mélyéről

Több évig tartó fejlesztés és néhány újrakezdés után bekerült a mainline kernelbe a uprobes (userspace probes), amely lehetővé teszi felhasználói környezetben ("user space") futó programok teljesítményének monitorozását. A uprobes tetszőleges memóriacímre telepíthet "szondákat" (automatikus töréspontokat) egy felhasználói alkalmazásba, amelyek segítségével debug információkat és teljesítményadatokat gyűjthet, anélkül, hogy az alkalmazás kódját módosítani kellene vagy azt akár újra kellene indítani. Ez leginkább hibakeresésnél segíthet, de persze teljesítményhangolásnál is hasznát lehet venni. A kernel viselkedését már eddig lehetett tanulmányozni a kprobes segítségével, a uprobes rendszermagba illesztésével végre a felhasználói szoftverekre is kiterjeszthető ez az ellenőrzés.

Az ext4 fájlrendszer a metaadatok integritását ellenőrzőösszeggel védi mostantól. Fontos megjegyezni, hogy itt nem a fájlrendszerben tárolt adatok épségének ellenőrzéséről van szó, csak a fájlrendszer belső metaadatainak ellenőrzéséről. Ha a CRC32 ellenőrzés során hiba lép fel, az a fájlrendszer problémájára utalhat, ilyenkor a felhasználói adatok biztonsága érdekében le lehet választani a fájlrendszert vagy csak olvasásra lehet korlátozni a hozzáférést.

A metaadatok ellenőrzését egy ext4 fájlrendszeren utólag is be lehet kapcsolni, azt azonban érdemes szem előtt tartani, hogy egy ellenőrzőösszeggel védett ext4 fájlrendszert csak olvasásra lehet a funkciót nem támogató, régebbi kernelt futtató rendszerhez csatlakoztatni. A fejlesztők szerint az ellenőrzőösszeg használata nem jár érzékelhető teljesítményveszteséggel hétköznapi esetekben, persze elképzelhető olyan I/O intenzív feladat (pl. sok fájl létrehozása és törlése), ahol már komoly lassulás lesz az eredmény.

Hálózat

A hálózati stack is bővül néhány kisebb-nagyobb fejlesztéssel. A rendszermag 3.5-ös verziójába bekerült a "CoDel" és a "Fair Queue Codel AQM" csomagidőzítő, mindkettő célja a hálózati pufferek "eltömődésének" a kiküszöbölése, ami lehetetlenné teszi azok elsődleges feladatának ellátását, vagyis a hirtelen megnövekedő forgalom kezelését. A pufferek telítettsége a hálózati forgalomban folyamatos késlekedéseket okoz. A "CoDel" (Controlled Delay Management) csomagidőzítő működéséről itt lehet bővebben olvasni. Újdonság még a kernelben a Google egyik mérnöke által fejlesztett TCP Early Retransmit képesség, amely csomagvesztés esetén hamarabb építi újra a kapcsolatot, illetve a TCP-kapcsolatot lezáró, majd egy másik gépen transzparensen újraindító Connection Repair - ez főleg virtualizációs feladatoknál lehet hasznos.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig

Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

A hálózatkezelés kapcsán érdemes még megemlíteni, hogy az új rendszermag már támogatja a SCSI eszközök használatát FireWire vagy USB felületen is - a képesség hasonló a Mac gépeken már elérhető "FireWire Target Disk" funkcióhoz. A Linux kernel 3.3-ban bemutatkozott Ethernet teaming driver, amely több hálózati interfészt képes összekapcsolni, mostantól terheléselosztás funkcióval is rendelkezik.

Közeledik a mainline Linux és az Android

Hosszas vita után megjelent a kernelben az Android "suspend blockers" képességéhez hasonló funkció is, amely közelíti egymáshoz a mainline Linux rendszermagot és az Androidot. A mobil eszközök esetén rendkívül fontos az energiahatékonyság, ennek érdekében az Android bevezette a "suspended blocker" (androidos terminológiában wakelock) képességet, amely a gyakorlatban azt takarja, hogy az operációs rendszer minden körülmények között igyekszik alvó állapotba kerülni, ilyenkor csak a memóriát frissíti és ellátja árammal azokat az eszközöket, amelyek felkelthetik. Az Android számára az alvás a természetes állapot, a rendszer csak akkor lép ki ebből, ha feladata van.

Az energiahatékonyság persze nem csak mobil környzetben fontos, ezért régóta komoly vita zajlott a kernelt fejlesztő közösségben az Android-féle suspended blockers API beolvasztásáról a mainline rendszermagba, de az alapvetően mobilokra fejlesztett androidos implementáció használata x86-os PC-ken és szervereken nem várt bonyodalmakat okoz (ezekről itt lehet részletesen olvasni). A rendszermag 3.5-ös verziójában végül megjelent az Autosleep, amely az Androidéhoz kísértetiesen hasonló API, a fejlesztők várakozásai szerint ez akár átkerülhet az Androidba is, valamint megkönnyítheti androidos meghajtók beültetését a mainline kernelbe.

Grafika

Már megszokhattuk, hogy nincs új Linux kernel nagyobb horderejű grafikus fejlesztések nélkül. A 3.5-ös magban említésre érdemes a Prime keretrendszer támogatása, amely lehetővé teszi a futásidőben hozzáadható grafikus eszközök, például külső DisplayLink monitorok vagy ki-be kapcsolható videovezérlők kezelését. Az ősszel várható, az új kernelre épülő disztribúciók így végre jobban kezelhetik a két videovezérlővel, például NVIDIA Optimus technológiával felvértezett noteszgépeket. A Radeon-tulajdonosok is örülhetnek, az új driver állítólag nagyobb teljesítményt csikar ki az R600-R900 chipre épülő vezérlőkből és a Radeon 6000-es sorozatú GPU-kon végre van hang HDMI-kimeneten keresztül.

A rendszermag fejlesztéseiről részletesen a kernelnewbies és az H-Online cikkében lehet olvasni, maga a kernel pedig szokás szerint a www.kernel.org oldalon érhető el.

a címlapról