Portál AbcLinuxu, 1. května 2025 20:36
Stav vydání jádra. Citáty týdne: Thomas Gleixner a James Bottomley. Čestný doktorát pro Alana Coxe. LTSI a FUEGO.
V době psaní článku byl nejnovější vývojový kernel stále 4.7-rc7 – příslušný týden žádná nová -rc verze nevyšla, jelikož Linus byl na cestách. Finální 4.7 je venku od 24. července.
V seznamu regresí pro vydání 4.7 zbývalo několik nevyřešených problémů.
Stabilní aktualizace: v příslušném období žádné nebyly vydány.
Copy&paste není omluvou pro špatný kód.
Někteří vývojáři by se mnou už nikdy nepromluvili, kdybych jim řekl, že jsem si hrál s webovými technologiemi.
-James Bottomley (zaslechnuto na LinuxConu v Japonsku)
Blahopřejeme Alanu Coxovi, jemuž byl udělen čestný doktorát na univerzitě ve Swansea, a to za práci na Linuxu. „Alan začal pracoval na Verzi 0. Obsahovala chyby a problémy, které dokázal opravit. Nainstaloval Linux na stroj v počítačové síti univerzity ve Swansea, čímž odhalil mnoho problémů v síťování, které opravil. Později síťový software přepsal. Alan do Linuxu zavedl disciplínu softwarového inženýrství: vydání Linuxu, která byla otestována, opravena a především stabilní. Po promoci na univerzitě ve Swansea pracoval, nastavil britský linuxový server a distribuoval tisíce systémů.“
Už to bude téměř pět let, co Cugikazu Šibata oznámil spuštění projektu iniciativy dlouhodobé podpory (LTSI). Jeho cílem je poskytovat rozšířenou podporu pro konkrétní vydání jádra, což může dodavatelům embedded systémů sloužit jako výchozí bod a způsob, jak mohou posílat patche do upstreamu. Šibata-san poskytl na letošním japonském LinuxConu aktuální informace o LTSI. Následoval jej Tim Bird, který hovořil o testovacím frameworku „Fuego“, který se nyní k ověřování LTSI vydání používá.
Proces pro jádra LTSI se od počátku v principu příliš nezměnil. LTSI vydání jsou založena na vydáních s prodlouženou podporou, o která se stará Greg Kroah-Hartman, a udržují se po stejně dlouhou dobu. Obsahují však mnoho patchů navíc, a to v podobě dodavateli přidaných funkcí a backportů z novějších vydání jádra. Rovněž procházejí důkladnějším testováním než běžná stabilní vydání.
Za pět let se LTSI dostalo výrazného přijetí. Meta-distribuce Yocto nabízí možnost používat jádra LTSI od roku 2012. Jádra LTSI dále využívá projekt Automotive Grade Linux (skrze Yocto). Relativně nový projekt Civil Infrastructure Platfrom (CIP) také používá LTSI, ale za pozoruhodných okolností. Od systémů založených na CIP se očekává, že poběží opravdu dlouho, takže potřebují ještě delší dlouhodobou podporu: 10 až 15 let. CIP samotná bude poskytovat podporu tak, že převezme odpovědnost za jádra LTSI poté, co LTSI přejde na novější vydání. Šibata-san poznamenal, že podporovat jádro tak dlouhou dobu bude zajímavou výzvou a popřál projektu hodně štěstí.
LTSI vydání začíná jako běžné vydání s dlouhodobou podporou. Po dobu čtyř až pěti měsíců se pro dané jádro připravují patche, které obsahují backporty a další funkcionalitu, která je pro komunitu LTSI užitečná. Pak proces pokračuje dvouměsíčním začleňovacím oknem, ve kterém jsou všechny tyto patche začleněny. Následuje jeden měsíc věnovaný ověřování. Od všech přispěvatelů do jádra LTSI se očekává, že ve finálním vydání bude vše fungovat spolehlivě. Šibata-san tvrdí, že tento proces vede k produkci jednoho z nejstabilnějších a nejbezpečnějších dostupných jader.
Ovšem existují obavy, že současný sedmiměsíční proces je příliš dlouhý. Prodleva je akutně cítit hlavně v jádře 4.4, které vyšlo o něco dříve, než se čekalo. Takže v projektu se hovoří o zkrácení aktuálního vydávacího procesu: měla by proběhnout dvouměsíční fáze příprav a poté jednoměsíční začleňovací okno. Konečné rozhodnutí o této změně zřejmě proběhne v dohledné době.
Jednou z významných změn v procesu vydávání LTSI, o kterých hovořil Šibata-san, bylo přijetí nového testovacího frameworku nazvaného „Fuego“. Bird využil další sezení k tomu, aby Fuego představil a vysvětlil, jak funguje. Ve zkratce je Fuego kombinací nástroje Jenkins pro průběžnou integraci, sady skriptů a sbírky testů, zabalenou uvnitř kontejneru Dockeru.
Jenkins se používá ke spouštění testů na různých přelomech (triggers) a ke sběru dat. Je velmi rozšířený a obsahuje stovky rozšíření, která poskytují funkce jako oznámení e-mailem nebo integrace s verzovacími systémy. Významná úprava, kterou Fuego přidává, je oddělení konfigurace hostitele a cíle. Testování může být řízeno hostitelem, ale běží na konkrétním cílovém embedded systému.
K dispozici je sada „abstrakčních skriptů“ navržených pro bezproblémové fungování Fuega na jakékoli cílové desce. Tyto skripty jsou řízeny proměnnými, které popisují komunikaci s deskou, funkce načítající/ukládající soubory, spouštění příkazů atd. Výsledkem je generovaný skript pro spuštění daného testu. Do systému bylo zatím integrováno okolo 50 testů, většina z nich jsou stávající testy odjinud, ale cílem je přidat řadu testů nových.
Celý systém je navržen tak, aby se dal zabalit do kontejneru Dockeru. Konečný výsledek by měl být spustitelný bez dalších úprav na jakékoli linuxové distribuci.
Fuego bylo navrženo tak, aby ho inženýři, kteří vyvíjejí embedded systémy, mohli snadno nastavit a spouštět. Dodává se s konfiguracemi pro konkrétní cílové systémy včetně Yocto, Buildroot, OpenWrt aj. Jsou podporovány různé typy a transporty cílů. Fuego dokáže s cílovým systémem komunikovat skrze sériový port, SSH, androidí nástroj adb
atd. Je navrženo tak, aby výsledky testů odesílalo do centralizovaného úložiště. Cílem je umožnit vznik decentralizované testovací sítě, která by podpořila testování změn na široké škále hardwaru a umožnila obejít problém „nemám tuhle konkrétní desku.“
Budoucí plány zahrnují vyčištění rozhraní Jenkinsu, které je momentálně docela přecpané. Lidé z projektu by dále rádi přidali manipulaci přes USB, aby byla komunikace s mobilními zařízeními pomocí nástroje adb
jednodušší. Na stejném seznamu je i doplnění dokumentace, více testů a také integrace s projektem kernelci.org.
Projekt by nepochybně uvítal více přispěvatelů a uživatelů. Prozatím ke komunikaci používá e-mailovou konferenci ltsi-dev. Další informace o projektu, včetně odkazů na repozitáře, je možné najít na elinux.org. Viz tuto stránku o tom, jak Fuego nainstalovat a správně používat.
Autor článku, Jonathan Corbet, děkuje Linux Foundation za financování cesty na LinuxCon do Japonska.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.