Článek ve formátu PDF je možné stáhnout
zde.
Koncem října 2012 se na univerzitě v Chapel Hillu v Severní Karolíně (USA) uskutečnil čtrnáctý ročník pravidelného setkání vývojářů a uživatelů různých variant operačního systému Linux a zejména jeho rozšíření o vlastnosti reálného času, Real-Time Linux Workshop. Zatímco na předchozích setkáních se diskutovalo o několika „soupeřících“ systémech garantujících deterministické (real-time) odezvy v prostředí Linuxu, letos byl ústředním tématem tzv. rt-preempt patch Linux, který, jak se zdá, vytlačuje své konkurenty ze středu zájmu. Dalším trendem objevujícím se na semináři je rostoucí zájem o použití Linuxu v bezpečnostně kritických aplikacích.
Seminář již tradičně organizovalo sdružení OSADL (Open-Source Automation Development Labs, www.osadl.org ), které sdružuje firmy a akademické instituce používající open-source software (OSS) v oblasti průmyslové automatizace. Cílem OSADL je podporovat a koordinovat vývoj OSS pro tuto oblast použití.
Rt-preempt Linux
Nejočekávanější částí semináře bylo páteční vystoupení vývojářů systému rt-preempt Linux. Pojmem rt-preempt je označována sada změn (patches), která dělá z běžného (mainline) Linuxu real-time operační systém s garantovanou dobou odezvy. Vývoj sady rt-preempt patch začal asi roku 2004 a dnes je odhadem 90 % potřebných změn integrováno v mainlinovém Linuxu. Thomas Glexiner, současný správce a hlavní vývojář rt-preempt Linuxu, shrnul posluchačům, co se okolo rt-preempt Linuxu událo během uplynulého roku. Nejvýraznější je změna v implementaci přerušení SoftIRQ. V mainline Linuxu má SoftIRQ většinou vyšší prioritu než uživatelské aplikační programy, a ty tak mohou být blokovány SoftIRQ, které s aplikací vůbec nesouvisí. U nové implementace v rt-preempt Linuxu je snaha, aby za SoftIRQ „platil“ ten, kdo je vyvolal. Další oblastí vývoje je náhrada tzv. bit-spinlocks za mutexy. Mutexy totiž podporují dědění priorit, a jsou tudíž pro real-time aplikace vhodnější. Odborníci také pracují na podpoře pro „izolaci CPU“, aby bylo možné ve víceprocesorovém systému vyhradit jeden procesor pouze pro uživatelský aplikační program tak, aby jeho běh nebyl nikdy přerušen operačním systémem, pokud o to aplikační program explicitně nepožádá.
Bezpečnostně kritické aplikační programy
Nezanedbatelné množství příspěvků se týkalo bezpečnostně kritických aplikačních programů. Nicholas McGuire představil připravovaný projekt OSADL s názvem SIL2Linux. Cílem projektu je certifikovat jádro Linuxu na úroveň SIL 2 podle IEC 61508. Je plánováno toho dosáhnout tím, že se vybere pokud možno malá podmnožina funkcí Linuxu, které se matematicky namodelují, a na základě formální analýzy vytvořeného modelu bude možné prohlásit, že takto vybraný systém se za všech okolností chová tak, jak je očekáváno. Také se počítá s tím, že síťový subsystém (TCP/IP-stack apod.), který je velmi složitý, nebude v certifikovaném jádře, ale bude implementován v uživatelském prostoru, kde může být např. snadno restartován v případě, že je detekována neočekávaná chyba. Eunsuk Kang z Massachusetts Institute of Technology (MIT) představil zde vyvíjený nástroj a jazyk Alloy. V jazyce Alloy je možné vytvořit formální specifikaci (model) např. části operačního systému a nástroj potom umožňuje specifikaci analyzovat a provést matematický důkaz vlastností daného modelu. Právě o použití open source nástroje Alloy se uvažuje v projektu SIL2Linux.
Další zajímavá témata
Z dalších příspěvků prezentovaných na semináři je vhodné zmínit ještě přednášku Glenna Elliotta ze spolupořádající univerzity v Chapel Hillu, který poukázal na nedostatky obsluhy přerušení pomocí vláken se staticky nastavenými prioritami. Na příkladu, kdy je grafický procesor (GPU) používán pro obecné výpočty (v současnosti je to stále častější praxe), ukázal, že použití statických priorit pro obsluhu přerušení může vést k nezanedbatelnému snížení výkonu systému.
Pavel Píša z ČVUT představil projekt, který přidává do Linuxu podporu automobilové sběrnice LIN. K připojení počítače s Linuxem ke sběrnici LIN potom stačí běžný sériový port a primitivní převodník elektrických úrovní.
Insop Song z firmy Ericsson konstatoval, že jejich síťové aplikační programy obsahují obrovské množství vláken a současný rozvrhovač v Linuxu, který rozhoduje, kdy které vlákno poběží, je pro ně příliš pomalý. Tento problém se snaží řešit implementací prioritní fronty používané softwarovým rozvrhovačem přímo v hardwaru.
Nicholas McGuire si všiml, že velké množství vestavných (embedded) systémů potřebuje ke své funkci generátor náhodných čísel (např. k šifrování) a že v současnosti běžně používané generátory náhodných čísel často nemají dost entropie pro generování opravdu náhodných čísel. Důvod je ten, že entropie je získávána z externích asynchronních událostí, jejichž výskyt je ve vestavných systémech mnohdy nedostatečný. Důsledkem může být snadno prolomitelné šifrování. Autor navrhuje využít náhodnost, která je nedílnou součástí architektury každého moderního procesoru. Ukázal, že čím modernější procesor je použit, tím je jeho časové chování méně deterministické, a snaží se tento nedeterminismus využít pro generování náhodných čísel.
Závěr semináře patřil Carstenu Emdeovi z OSADL. Představil posluchačům novinky v počítačové zkušebně Quality Assurance Farm. Jde o zhruba padesát vestavných počítačů s Linuxem, u kterých je kontinuálně monitorována doba odezvy na vnější události (latence) a další zajímavé parametry. Letos mimo jiné přibyly grafy zobrazující dlouhodobý vývoj latence či zatěžování testovaných systémů výpočty na GPU. U některého hardwaru je tak zřejmé, že za poslední půlrok nepřetržitého provozu nejvyšší latence rt-preempt Linuxu nikdy nepřekročila hodnotu 100 µs.
Příští ročník
Příští ročník setkání Real-Time Linux Workshop se bude konat opět za rok na podzim. Je ale plánována změna formátu. Ukazuje se, že je-li seminář v Americe, návštěvnost rok od roku klesá, kdežto návštěvnost těchto akcí v Evropě je stabilní. Ve hře je tedy varianta, že by se Real-Time Linux Workshop spojil s nějakou větší konferencí či veletrhem.
Michal Sojka, katedra řídicí techniky FEL ČVUT
Obr. 1. Účastnící workshopu (zdroj: LWN.net)