přejít na obsah přejít na navigaci

Linux E X P R E S, Jádro 8/2005

Jádro 8/2005

Novinky z jaderného vývoje přináší Jan Outrata.


Další vylepšení ovladače USB (CDMA) modemů

Začátkem června bylo zveřejněno další vylepšení ovladače cdc-acm USB modemů, tentokrát od Davida Kubíčka. Tento ovladač se používá pro CDMA modemy (GPC-6420, Z010 a jiné) pro připojení k internetu přes datovou síť CDMA mj. tuzemského mobilního operátora Eurotel. Vylepšení spočívá opět v odstranění rychlostního limitu původního ovladače (tentokrát ale pomocí zpracování více USB požadavků mimo obsluhu přerušení od modemu) a problémů se stabilitou ovladače (např. zatuhnutí při vytažení USB kabelu při navázaném spojení).

Proč píši o dalším vylepšení? Současná verze ovladače cdc-acm má omezení rychlosti na 32 kB/s a problémy se stabilitou. To se samozřejmě uživatelům připojení přes CDMA nelíbilo, a proto byly již loni v září podniknuty pokusy (P. Písař) o jejich odstranění. Ty ale mylně předpokládaly, že chyba je v modemu od Eurotelu, a úpravy nebyly správcem ovladače přijaty. P. Písař tedy vyhlásil soutěž (a sbírku) na podporu přijatelné úpravy ovladače (aisa.fi.muni.cz/~xpisar/cdma/). Velice jednoduchá úprava P. Machka z května ale k odstranění omezení rychlosti nestačila.

Poslední, větší, úprava D. Kubíčka je dostupná na dave.ok.cz/index.php?id=78 ve formě záplaty na zdrojové kódy pár posledních verzí jádra. Autor, a nejen on, bude rád za otestování a jakékoliv další zkušenosti s tímto (doufejme definitivním) vylepšením ovladače; ať mohou konečně všichni (nejen uživatelé MS Windows) využívat připojení přes CDMA naplno (autor uvádí až 170 kB/s ve špičkách)!

Jádro 2.6.12

Po třech a půl měsících neustálého vývoje tu máme další verzi jádra řady 2.6 a to 2.6.12, kterou vydal Linus Torvalds 17. června. Je to první stabilní verze vydaná po přechodu správy zdrojových kódů jádra z komerčního SCM BitKeeper na svobodný Git, uskutečněného koncem dubna (ve verzi 2.6.12-rc3), a proto seznam změn (ChangeLog) obsahuje jen změny od verze 2.6.12-rc2. Obavy ze zpomalení vývoje po opuštění BK se tedy nekonají.

A nových věcí je požehnaně, namátkou ovladač TPM (trusted computing) čipu u Thinkpadů, ovladač gigabitových síťových karet Broadcom (bcm5706), přepsaný ovladač webových kamerek Philips (bez dekompresoru umožňujícím používat kamerky naplno), vícecestná podpora pro ovladače zařízení (zvýšení spolehlivosti a výkonu), nahrávání programů a knihoven na náhodné adresy, resource limit (rlimit, umožňující obyčejným uživatelům spouštět procesy s realtime prioritou), plus další vylepšení a aktualizace např. SATA, USB, ALSA, IPv6, ovládání frekvence CPU, UML (User Mode Linux), CIFS, XFS, JFS, atd. a samozřejmě mnoho dalších drobných oprav.

Nemohou chybět opravy bezpečnostních chyb, např. vážné chyby při nahrávání spustitelného souboru formátu ELF (která může vést k získání práv superuživatele), zpřístupnění adresního prostoru jádra z uživatelského prostoru (umožňující poškození paměti jádra) a dalších. Kvůli bezpečnostním chybám umožňujícím pád jádra nebo DoS útok byla dokonce hned za pět dní vydána první opravná verze 2.6.12.1. Aktualizace na novou verzi jádra je vřele doporučována především kvůli opravám bezpečnostních chyb, stahovat můžete jako obvykle z některého z českých zrcadel kernel.org, viz www.kernel.org/mirrors/countries/html/CZ.html.

Realtime preemtivní plánování

Od konce května do poloviny června probíhala v LKML velmi dlouhá diskuze o přijetí záplaty Ingo Molnara pro realtime preemtivní plánování procesů do (vanilla) jádra, i když Ingo sám o přijetí (ještě) nepožádal. Přijetí poměrně veliké záplaty (830 kB), která se rychle vyvíjí na redhat.com/~mingo/realtime-preempt/, se v dohledné době nechystá a ani nebude zřejmě do jádra přijata vcelku, ale po částech (některé už tam jsou). Někteří vývojáři (a uživatelé) by ji už v jádře nejraději měli, jiní se bojí velkých změn a z nich plynoucích případných chyb a paradoxně zpomalení kvůli větší režii. Samozřejmě přijetí celé záplaty neznamená přechod na realtime preemtivní plánování obecně, to se zapíná při konfiguraci jádra volbou CONFIG_PREEMPT_RT.

Realtime (v reálném čase) preemtivní plánování je jeden ze způsobů dosažení garantované maximální doby odezvy pro uživatelské procesy s vysokou prioritou, právě jako u skutečných realtime operačních systémů. Spočívá v tom, že všechny procesy v jádře jsou preemtivní (tj. plánovačem kdykoliv přerušitelné). To znamená, že ať dělá jádro cokoliv a proces s vysokou prioritou se dostane do stavu, kdy bude moci běžet, bude okamžitě naplánován (bude mu přidělen procesor). „Preemptivní“ jádro lze vytvořit i (standardní, bez záplaty) volbou CONFIG_PREEMPT, ale při té nejsou preemptivní věci, vyžadující citelnější změny v jádře a které dělá preemptivními právě Ingova záplata: nová zamykací primitiva (rt_mutex místo spinlocků a semaforů), obslužné rutiny přerušení ve vláknech a předělání dalších nepreemptivních mechanizmů.

Realtime plánování vyžadují zejména aplikace a distribuce orientované na práci se zvukem a videem v reálném čase a Ingův způsob dosažení (téměř) okamžité odezvy není jediný. Podle některých vývojářů je lepším řešením garance realtime plánování např. projekt RTAI/fusion (www.rtai.org, vložení „nanojádra“ mezi jádro Linuxu a hardware). Zajímavé shrnutí různých způsobů úpravy linuxového jádra pro použití jako realtime operačního systému sepsal P.E. McKenney, viz lkml.org/lkml/2005/6/7/256. Rozebrány jsou varianty: bez úprav, CONFIG_PREEMPT, CONFIG_PREEMPT_RT, Linux vnořený do realtime OS, duální OS/jádra (Linux a realtime), migrace procesů mezi OS a migrace procesů (v Linuxu) mezi realtime a ne-realtime procesory. Zájemcům rozhodně doporučuji k přečtení.

Nahoru

(Jako ve škole)
 

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz