Portál AbcLinuxu, 10. května 2025 16:02
Aktuální verze jádra: 3.3. Citáty týdne: Christoph Lameter, H. Peter Anvin, Adam Jackson. Gregg: výkon Linuxu v grafech. Linsched pro Linux 3.3. Začleňovací okno verze 3.4, část první.
Linux 3.3 vyšel 18. března, a proto ještě nevyšla žádná vývojová verze. Některé z hlavních novinek v této verzi jsou: infrastruktura bajtových omezení front [byte queue limits], Open vSwitch, návrat spousty androidího kódu do stromu staging, podpora architektury C6X, podpora rozšíření pro velké fyzické adresy na ARM a ještě více. Více informací lze nalézt na příslušné stránce na KernelNewbies.
Začleňovací okno pro verzi 3.4 je otevřené; níže najdete přehled toho, co bylo doposud začleněno.
Stabilní aktualizace: 19. března vyšly verze 3.0.25 a 3.2.12 s obvyklou kupou důležitých oprav. Pro uživatele starších jader jsou tu verze 2.6.27.62 a 2.6.32.59 v rámci dlouhodobé údržby, obě mají docela málo změn a vyšly 27. března.
V současnosti se revidují stabilní aktualizace 3.0.26 a 3.2.13, jejich vydání lze očekávat 23. března nebo později.
Ověřování patchů probíhá v umělé bublině tvořené programy, které používají nebo znají vývojáři jádra. Než bude kód otestován ve skutečných situacích, tak mohou uběhnout roky.
V jazyce C za žádných okolností, pod pohrůžkou smrti, nikdy nedeklaruješ nebo nedefinuješ funkci s prázdnými závorkami, neboť ač v jazyce pod jménem C++ známém míní se tím (void), v C budiž to ekvivalentní (...), což jest bez smyslu, jelikož tak není známo argumentu, skrze něhož typ variadických argumentů lze určiti, což svádí kompilátory na cestu zlou, jež nečistý kód kvůli ošetření variadických argumentů může způsobiti.
Jediná věc, která vede k napsání ovladače, je napsat ten zatracený ovladač.
Brendan Gregg předvedl „ohnivé grafy“ [flame graphs] fungující jako nástroj pro odhalení výkonnostních problémů v jádře. Strom s výkonnostním přehledem (a prohlížeč v ncurses) fungují jako výborný nástroj, pokud si chcete zobrazit informace v textové podobě. Výstup se často nevejde na jedinou obrazovku (i když byste mohli říct, že se ani vejít nemusí, protože většina vzorků je identifikována hned na první stránce). Pro odhalování nejvíce vytěžovaných cest v kódu je navíc třeba číst procenta. S ohnivými grafy máte všechna data na obrazovce najednou a nejvytěžovanější cesty jsou jasné na první pohled jako nejširší funkce. Kód projektu je hostován na Githubu.
Na Kernel Summitu 2011 popsal vývojář Googlu Paul Turner framework pro testování plánovače, který měl dle jeho slov být brzy vydán. Samozřejmě to nakonec trvalo déle, než se původně čekalo, ale 14. března Paul vydal Linsched k veřejnému užití. Vzhledem k zájmu, jaký nástroj vyvolal, se dá čekat, že se do hlavní řady dostane relativně ve spěchu.
Linsched je framework, který umožňuje spouštět jaderný plánovač po různými simulovanými zátěžemi a zkoumat kvalitu rozhodnutí, jaké udělá. Zkoumá celkové zatížení CPU, počty migrací a další věci. Dokáže napodobovat spoustu všemožných hardwarových topologií s různou charakteristikou.
Původní podoba Linschedu byla dosti násilná; vkládala více než 5000 řádek kódu do jádra, které se krčily za #ifdef LINSCHED. Po troše úsilí se toto číslo podařilo trochu snížit – na 20 řádek. Zbytek byl chytře ukryt za speciální architekturu „linsched“, která poskytuje vše potřebné pro běh plánovače v uživatelském prostoru. Kód pro samotnou simulaci a provádění měření se krčí v adresáři tools.
Měnění plánovače je nechvalně náročný úkol; je až příliš snadné zanést do kódu regresi, na kterou se nepřijde, dokud na ni někdo nenarazí v produkčním nasazení. Díky dostatečnému počtu simulovaných topologií a zátěží by nástroj jako Linsched měl být schopen riziko podobných chyb snížit. A to by mělo vést k lepším vydáním jádra.
Vydání verze 3.3 dne 18. března nevyhnutelně vedlo k otevření začleňovacího okna pro vývojový cyklus verze 3.4. V době psaní tohoto textu bylo do hlavní řady přetaženo nějakých 3500 neslučovacích změn; jinými slovy tento cyklus právě začal.
Některé ze změn viditelných pro uživatele zahrnují:
Také stojí za pozornost funkčnost transcendentní paměti „ramster“, která byla přidána do stromu staging, aby byla zanedlouho zase odstraněna; různé další změny ji totiž rozbily. Ramster je nástroj pro něco jako sdílení paměti mezi stroji; systém s volnými stránkami může hostovat data pro jiný systém, který jich má nedostatek. Pro více informací si přečtěte tento článek a dále si pak můžete přečíst vizi Ramsteru. Přidání této funkčnosti vyžaduje vyčlenění řady funkcí ze souborového systému OCFS2 pro jejich obecné použití. Dá se očekávat, že se patch vrátí do verze 3.5.
Změny viditelné vývojářům jádra zahrnují:
Začleňovací okno bude pokračovat asi až do 2. dubna. Na přetažení ještě čeká spousta subsystémů, takže můžeme očekávat velké množství dalších změn.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.