Hlavní navigace

Linus chce změnit značení verzí jádra

17. 7. 2008
Doba čtení: 4 minuty

Sdílet

Více než deset let jsme byli zvyklí na verzování jádra podle nových vlastností a odlišování stabilních a vývojářských verzí sudými a lichými verzemi. Systém se ale změnil a Linus se obává matoucích a příliš vysokých verzí a rád by přijal nový způsob označování verzí. Jaké jsou konkrétní návrhy?

Jak je to s verzemi jádra?

V podstatě od začátku vývoje linuxového jádra byl udržován jednotný verzovací systém označovaný jako X.Y.Z. Tři čísla oddělená tečkou měla pevně daný význam: X udávalo generaci jader a měnilo se velmi zřídka. Sudé Y označovalo stabilní řadu, liché pak vývojovou větev, která nebyla určena pro běžné uživatele. Z pak značilo konkrétní verzi jádra v té které stabilní či nestabilní větvi.

První stabilní jádro vyšlo v březnu roku 1994 a bylo označeno jako 1.0.0. Zároveň vznikla vývojová větev 1.1.0, do které byly vkládány změny. Z ní pak vzešla nová stabilní řada 1.2.0 a tak dále. Tento vývojový model byl udržován v nezměněné podobě také při vývoji stabilních řad 2.2, 2.4 a 2.6. Ve chvíli, kdy se Linus Torvalds rozhodl otevřít novou vývojovou (lichou) řadu, dostalo aktuální stabilní jádro svého správce, který se o něj nadále staral.

Tento model vývoje a označování verzí byl považován za naprostý standard po více než deset let. Pak se jej v roce 2004 rozhodli vývojáři změnit. Linus se společně s Andrewem Mortonem rozhodl přejít na obvyklejší vývojový model, který využívá většina softwarových projektů „ vývoj mezi jednotlivými stabilními verzemi.

Namísto paralelního vývoje ve dvou větvích tak vývoj přešel na klasický cyklus, kdy je jeden zdrojový kód neustále upravován, jednou za čas je stabilizován, otestován a vzejde z něj jedna nová verze. Tímto způsobem jsou již mnoho let vyvíjena jádra řady 2.6 a žádná vývojová řada 2.7 neexistuje.

Dojde ke změně?

Z dnešního pohledu je tedy trojčíselný způsob označování verzí zcela zbytečný a můžeme jej označit za přežitý. Proto nyní ve vývojářské konferenci padla otázka, jak bude vývoj vypadat, až vyjde verze 2.7 a co to bude přesně znamenat?

Vůbec nic. Nehodlám se vrátit ke starému modelu. Nový model je podstatně lepší, takže nemá vůbec smysl se bavit o návratu. Zvažuji tedy jen změnu verzování. Nechci návrat ke starému modelu, ale stabilní zvyšování verze vede k velkým číslům. Rozhodně nejsem nadšený z čísla ‚26‘, které je velmi obtížně zapamatovatelné.

Je tedy zřejmé, že aktuální vývojový model se osvědčil a Linus je s ním spokojený. Sám si ale uvědomuje zastaralost aktuálního označování verzí a aktuální jádro 2.6.26 už má podle něj příliš vysoké číslo verze. Linus se tak chce vyhnout verzím jako 2.6.168 a podobně.

Dalším důvodem pro změnu je změna cyklu vydávání. Dříve byly testovací verze vydávány vždy podle nových vlastností. Pokud se jich nakupilo větší množství, vývojáři zveřejnili další verzi. Nyní ale nové verze vycházejí v pravidelných časových cyklech, nezávisle na novinkách. Testovací verze vycházejí ve dvoutýdenních cyklech, stabilní vydání pak přicházejí přibližně jednou za dva měsíce.

Myslím, že pravidelná vydání jsou tak úspěšná, že bych rád vyměnil i verzovací model. Nevydáváme na základě nových vlastností, takže proč bychom měli na základě nových vlastností číslovat?

Co Linus navrhuje?

Pravidelný vývojový model by měl mít také pravidelné verzování. Stejný způsob používá například linuxová distribuce Ubuntu, která vychází ve zcela pravidelných cyklech vždy jednou za půl roku. Tomu je logicky přizpůsobeno i číslování verzí: letošní verze z dubna je označena rokem a měsícem jako 8.04 a příští verze, která vyjde v říjnu, ponese označení 8.10.

Linus navrhl několik nových řešení, založených na pravidelných cyklech, která by nevedla k příliš vysokým a nezapamatovatelným číslům.

Pokud budou verze založeny na datech, pak bychom místo 2.6.26 měli mít spíše 2008.7. Nebo můžeme hlavní [major] verzi zvýšit po každé dekádě, střední pak každý rok a nejnižší [minor] pokaždé, kdy uvolníme vydání. Jakkoliv. Mohli bychom u druhého čísla vycházet také z roku vydání, takže 2008 by dalo 2.8 a první vydání roku 2009 by bylo označeno jako 2.9.1. A 2010 by bylo 3.0.1.

Linus se chce také vyhnout „nulovým“ vydáním, která by mohla opět uživatele zmást. Vyhnul bych se ‚.0‘, protože to opět vypadá jako ‚nové velké neotestované vydání‘, což není ve schématu založeném na datech pravda.

Jak by měla vypadat verze jádra v roce 2009?

Co dál?

Linus původně plánoval prezentovat nové verzování až na nadcházejícím Linux kernel summitu, ale když už byla otázka položena, nebyl důvod na ni neodpovědět. Celá otázka tedy bude ještě probírána v širším kruhu vývojářů a bude zřejmě široce diskutována.

Navíc Linus sám ještě není pevně rozhodnut, které řešení by bylo nejvýhodnější pro vývojáře i uživatele. Je tedy možné, že někdo přijde se zajímavějším způsobem verzování, takže vše může být nakonec ještě jinak.

CS24_early

Musím říct, že ještě nemám žádný pevný názor na nové číslování verzí. Každopádně souhlasím s tím, že ‚velká nesmyslná čísla‘ jsou špatná. Číslo ‚26‘ je už docela velké. Řada 2.4.x má navíc už nyní vyšší čísla.

Debata ve vývojářské konferenci pokračuje, názorů je samozřejmě hodně, ale je zřejmé, že by se měl model změnit. Zatím ale rozhodně není jisté jak. Co si o tom myslíte vy?


Citáty a údaje čerpány z KernelTrap.org.

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.