Portál AbcLinuxu, 5. května 2025 15:20
Stav vydání jádra. Citáty týdne. Začleňovací okno 4.5, 3. část.
Současný vývojový kernel 4.5-rc1 byl vydán 24. ledna. Začleňovací okno 4.5 je uzavřeno. Linus: „Docela normální vydání – ani velké, ani malé. I statistika vypadá celkem normálně, více než 70 % novinek připadá na ovladače (k největším patří gpu, sítě, zvuk, staging (testování), fbdev, ale už je po všem).“
Stabilní aktualizace:4.3.4, 4.1.16, 3.14.59 a 3.10.95 byly vydány 23. ledna. Verze 4.4.1, 4.3.5, 4.1.17, 3.14.60 a 3.10.96 byly v době psaní tohoto článku (minulý týden) v procesu revidování a nyní by již měly být dostupné. Greg Kroah-Hartman varuje: „Ještě stále je zde mnoho nezpracovaných patchů, konkrétně více než 400, takže některé vaše oblíbené patche ještě nemusí být součástí těchto vydání.“ Možná by tedy bylo lepší si počkat na stabilnější aktualizace.
Ale pokud bych příležitostně nepřidal takový text, mohli by tito lidé jednoduše přečíst většinu memory-barriers.txt a domnívat se, že jim vlastně rozumí. Takže občas jim tuhle domněnku musím podrazit.
Řada projektů by považovala 400 patchů za velké vydání, ale tady je až za dvěma tečkami.
Linus vypustil vývojový kernel 4.5-rc1 a uzavřel začleňovací okno pro tento cyklus 24. ledna, jak jsme očekávali. Od minulého týdne bylo začleněno téměř 2000 změn, mezi nimi některé opravdu významné:
Jde o vyvrcholení pět let trvající snahy o sloučení platforem ARMv6 a ARMv7, která by umožnila jejich bootování na stejném kernelu. Jde o obrovskou spoustu práce zahrnující čištění kódu a refaktoring, podílelo se na ní mnoho lidí a v jejím rámci vzniklo několik nových (i důležitých) subsystémů, které umožnily lepší abstrakci nad detaily specifickými pro jednotlivé platformy.
Nakonec, v prosinci si Linus všiml, že nástroje pro přístup v uživatelském prostoru (get_user() a další), se na některých profilech objevovaly velmi často, zvláště na systémech s aktivním režimem supervizora pro omezení přístupu. Problém je v tom, že kernel často potřebuje vykonat několik přístupových sekvencí, a výsledkem je, že dochází k častému vypínání a zapínání prevence přístupu.
Řešením, jak už to tak bývá, je dávkování (batching): vypněte prevenci přístupu pouze jednou, udělejte, co je třeba, a znovu ji zapněte. Linus připravil pro tuhle možnost sadu maker:
user_access_begin(); unsafe_put_user(value, user_space_pointer); unsafe_get_user(value, user_space_pointer); user_access_end();
Jak píše dále v komentářích, „nebezpečné“ funkce nejsou nutně nebezpečné, používají-li se správně, ale je nutné, aby vývojáři dávali pozor. Makra unsafe_put_user a unsafe_get_user() lze použít pouze po volání user_access_begin() a jako obvykle musí nejprve projít access_ok(). První použití těchto funkcí se nabízí ve funkcích manipulujících s řetězci v uživatelském prostoru. Ve vydání 4.5 je podporována pouze architektura x86, další architektury budou následovat.
Při uzavření tohoto začleňovacího okna bylo začleněno celkem 10 305 neslučovacích sad změn. Trochu to naznačuje, že 4.5 bude docela pomalý vývojový cyklus. Většinu času zpoždění můžeme tentokrát připsat na vrub relativně malému počtu začleněných patchů ze staging tree, jinak pracují vývojáři velmi pilně.
Pokud se dodrží tradiční 63 denní cyklus, můžeme očekávat finální vydání jádra 4.5 13. března. Do té doby je se nejspíš najde a opraví spousta chyb.
Takže občas jim musím do mozku vnutit potvrzení této domněnky.V originále je přesný opak.
assert()
, jejichž smyslem je nechat program fatálně selhat, není-li splněna nějaká klíčová podmínka (např. konsistence dat).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.