abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 15:22 | Nová verze

Byl vydán Mozilla Firefox 64.0. Přehled novinek v poznámkách k vydání a na stránce věnované vývojářům. Nejnovější verze tohoto webového prohlížeče přináší například ovládání více panelů, nebo správce úloh, který lze otevřít v nabídce Firefoxu > Více > Správce úloh, nebo napsáním about:performance do adresního řádku.

Ladislav Hagara | Komentářů: 1
dnes 13:00 | Zajímavý článek Ladislav Hagara | Komentářů: 0
včera 22:33 | Nová verze

Po 3 měsících vývoje od vydání verze 14 byla vydána nová stabilní verze 15 open source systému Nextcloud, forku ownCloudu, umožňujícího provoz vlastního cloudového úložiště. Přehled novinek i s náhledy v příspěvku na blogu. Pro vyzkoušení Nextcloudu je k dispozici demo.

Ladislav Hagara | Komentářů: 4
včera 18:00 | IT novinky

Počítačová hra Doom slaví 25 let. Společností id Software ji vydala 10. prosince 1993. Zahrát si ji lze například na Internet Archive.

Ladislav Hagara | Komentářů: 14
9.12. 23:55 | Zajímavý článek

Nakladatelství Raspberry Pi vydalo 244 stránkového průvodce pro úplné začátečníky s jednodeskovým počítačem Raspberry Pi The Official Raspberry Pi Beginner’s Guide (pdf). Programování ve visuálním programovacím jazyce Scratch je věnována nová příručka Code Club Book of Scratch Volume 1 (pdf). Vydáno bylo také třetí číslo časopisu věnovaného počítačovým hrám Wireframe (pdf).

Ladislav Hagara | Komentářů: 0
9.12. 23:44 | Nová verze

U příležitosti oslav jednoho roku prací na debianím balíčku, vyšlo GPXSee 7.0. Nová verze přináší zejména podporu vektorových map (Mapbox PBF) pomocí nově vzniklého Qt pluginu.

Martin Tůma | Komentářů: 8
7.12. 23:33 | Nová verze

UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch (seznam podporovaných zařízení), oznámila vydání nové verze Ubuntu Touch OTA-6. Zdůrazněna jsou například vylepšení webového prohlížeče Morph.

Ladislav Hagara | Komentářů: 0
7.12. 21:33 | Komunita

Richard Hughes na svém blogu informuje, že se společnost AMI (American Megatrends Incorporated), největší dodavatel firmwarů a BIOSů (AMIBIOS, Aptio, ...), zapojila do projektu LVFS (Linux Vendor Firmware Service). Seznam projektem podporovaných zařízení by se měl tedy časem rozšířit.

Ladislav Hagara | Komentářů: 0
7.12. 20:11 | Komunita

Nadace pro svobodný software (FSF) informuje, že seznam doporučených svobodných distribucí GNU/Linuxu byl rozšířen o distribuci Hyperbola GNU/Linux-libre. Hyperbola vychází z Arch Linuxu a na rozdíl od něj splňuje požadovaná kritéria.

Ladislav Hagara | Komentářů: 7
7.12. 19:55 | IT novinky

Společnost Valve oznámila, že počítačová hra Counter-Strike: Global Offensive (Steam) je nově free to play. Hra Company of Heroes 2 (Steam) je do pondělí 10. prosince zdarma.

Ladislav Hagara | Komentářů: 0
Chystáte se přejít na Wayland na „desktopu“?
 (26%)
 (7%)
 (11%)
 (30%)
 (26%)
Celkem 105 hlasů
 Komentářů: 14, poslední včera 12:19
Rozcestník

Jaderné noviny – 19. 7. 2018: Jmenné prostory jaderných symbolů

1.8. | David Kolibáč | Jaderné noviny | 2135×

Stav vydání jádra. Citáty týdne: Dave Täht, James Bottomley a Ted Ts'o. Jmenné prostory jaderných symbolů.

Stav vydání jádra

Kernel release status. Jonathan Corbet. 18. července 2018

Současné vývojové jádro je 4.18-rc5, vydané 15. července. Linus řekl: „Tento týden mi z nějakého důvodu přišel docela rušný, ale čísla rc5 říkají něco jiného: je malý a klidný, pěkně to postupuje.“

Stabilní aktualizace: 4.17.7, 4.14.56, 4.9.113 a 4.4.141 byly vydány 17. července. O den později přišla aktualizace 4.17.8 s jednou opravou, která se nestihla dostat do 4.17.7.

Aktualizace 4.4.142 obsahuje trojici oprav a vyšla 19. července.

Citáty týdne

Quotes of the week. Jonathan Corbet. 18. července 2018

No tak, nepamatujete si doby, kdy se flashovalo jen tak, pro zábavu?

Dave Täht

Tyto výsledky snad ukazují, že rozhodně je možné provozovat kontejnery bezpečnější než hypervizory, a konečně utnou debaty o tom, která technologie je bezpečnější.

James Bottomley

Vychází to z předpokladu, že (aspoň pro americké výrobce CPU) je úsilí nutné k přidání zřejmého backdooru do, řekněme, souboru správy registrů a plánovače instrukcí tak velké, že by to nezvládl jeden osamocený inženýr, ani malá skupinka inženýrů. Muselo by o tom vědět dost lidí, nebo by byli schopni přijít na to, že něco nehraje, nebo by se na to přišlo z různých regresních testů, že by v CPU byl zjevný backdoor. To je dobře, protože nakonec univerzálnímu CPU věřit *musíme*. Pokud by CPU aktivně pracoval proti našim zájmům, to by byl konec veškerých nadějí.

Ted Ts'o

Jmenné prostory jaderných symbolů

Kernel symbol namespacing. Jonathan Corbet. 18. července 2018

Jaderný modul, aby vůbec mohl něco dělat, musí získat přístup k funkcím a datovým strukturám ze zbytku jádra. Za toto povolení a řízení přístupu je odpovědný mechanismus exportu symbolů. Povolení sice nepochybně dává, ale s řízením to už tak jasné není: v současných jádrech mají všechny moduly přístup k téměř 30 tisícům symbolů, což mnoho vývojářů považuje za příliš vysoké číslo. Skupina patchů jmenných prostorů symbolů od Martijna Coenena ho nesnižuje, ale poskytuje mechanismus, který by měl pomoci udělat pořádek obecně v exportovaných symbolech.

Jaderný kód může symbol (funkci či datovou strukturu) zpřístupnit modulům, které lze načíst, makry EXPORT_SYMBOL() a EXPORT_SYMBOL_GPL() – to druhé symbol zpřístupňuje pouze modulům označených jako šířených pod licencí kompatibilní s GNU GPL. Dále existuje makro EXPORT_SYMBOL_GPL_FUTURE(), které označuje symboly, u nichž se do budoucna plánuje přechod na podporu pouze exportů kompatibilních s GNU GPL. Jeho využití je také otázkou budoucnosti, protože k němu nedošlo od zavedení v roce 2006. Když už symboly byly ve vzácných případech změněny k použití pouze s moduly pod GNU GPL, ukázalo se být snazší prostě je změnit bez ohlášení předem v kódu.

EXPORT_SYMBOL() pracuje tak, že se deklaruje struktura kernel_symbol:

struct kernel_symbol
{
    unsigned long value;
    const char *name;
};

Po slinkování tato struktura obsahuje ukazatel na jméno symbolu a adresu odpovídající symbolu. Všechny struktury, které odpovídají veškerým exportovaným symbolům, linker shromáždí do dvou sekcí ELF v binárce jádra (či modulu): __ksymtab a __ksymtab_gpl. Symboly nejsou ani v jedné z těchto sekcí uspořádány či odděleny – jsou prostě na jedné velké hromadě.

Ne všechny symboly jsou ale stejné. Obecně neplatí, že by všechny existovaly pro potřeby načítaných modulů, které je vyžadují pro svou činnost. Některé jsou totiž exportovány proto, aby zjednodušily ladění jaderného kódu. Další jsou součástí většího subsystému, který se skládá z více modulů, a neměly by se používat mimo tento subsystém. Tyto symboly není možné nijak označit nad rámec komentářů v kódu.

Coenenova skupina patchů se tento problém snaží řešit tak, že přidává exportovaným symbolům jednoduchou podobu jmenných prostorů. I když výchozí chování zůstává takové, že symboly budou v nepojmenovaném globálním jmenném prostoru, bude možné symboly izolovat do odděleného prostoru, kde bude nutné k jejich užití vyvinout explicitní úsilí. K exportování symbolů přibyla dvě nová makra:

EXPORT_SYMBOL_NS(symbol, namespace);
EXPORT_SYMBOL_NS_GPL(symbol, namespace);

Člověk by si mohl myslet, že tato nová makra pro symboly ve jmenných prostorech vytvářejí nové sekce, ovšem není tomu tak. Místo toho se název jmenného prostoru přidá ke jménu symbolu a výsledek se opět umístí do stejné sekce __ksymtab (či __ksymtab_gpl). Takže kdyby se kmalloc() měl exportovat do nového jmenného prostoru MM, ve výsledné binárce by se ukázal jako kmalloc.MM. (Dodejme, že v praxi by tak stěžejní symbol jako kmalloc() takto izolován nebyl.)

V případě, že modul bude chtít použít symboly z určitého jmenného prostoru, deklaruje přístup k tomuto jmennému prostoru pomocí:

MODULE_IMPORT_NS(namespace);

Tento mechanismus novou sekci ELF („__knsimport“) skutečně používá, aby si udržoval seznam jmenných prostorů importovaných daným modulem. V zásadě všechno, co dělá, je, že poskytuje seznam importovaných jmenných prostorů. Neřeší tedy nic hlubšího, než že modul chce přistupovat k určitému jmennému prostoru.

Vynucování mechanismu jmenných prostorů v praxi můžeme popsat jako „benevolentní“. Při překladu se nijak nedává najevo, že se používá symbol ze jmenného prostoru. Ve smyšleném příkladě uvedeném výše by kód mohl zavolat kmalloc(), aniž by byl býval importoval jmenný prostor MM, a překladač by na to nijak nereagoval. Situace se mění po překladu v kroku modpost, kdy se zahlásí varování o použití symbolů ze jmenného prostoru, který nebyl importován. Další varování se objeví při načtení modulu: jádro si všimne užití symbolu, který postrádá deklaraci importu příslušného jmenného prostoru, leč samotnému užití tohoto symbolu nic nebrání.

Skupina patchů vytváří pouze jeden jmenný prostor: USB_STORAGE pro skupinu symbolů USB. Jinak obsahuje mechanismus, který automaticky vytvoří patche pro další subsystémy, což je funkce, kterou Greg Kroah-Hartman popsal jako „fakt úžasnou.“ Všehovšudy je to skromný začátek mechanismu, který by jednou mohl jaderné komunitě pomoci zvládnout obrovitou hromadu neroztříděných symbolů, ale i samotné jádro začalo skromně. Pokud se tento mechanismus ukáže být užitečný, časem poroste a snad přinese řád do notoricky chaotické části jádra.

       

Hodnocení: 100 %

        špatnédobré        

Nástroje: Tisk bez diskuse

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

1.8. 01:35 pc2005 | skóre: 37 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Jaderné noviny – 19. 7. 2018: Jmenné prostory jaderných symbolů
C++? :-D
1.8. 18:58 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Jaderné noviny – 19. 7. 2018: Jmenné prostory jaderných symbolů
Ne tak úplně. Exportované symboly jsou zajímavé jen při linkování, ne při překladu.
3.8. 05:09 oux
Rozbalit Rozbalit vše Re: Jaderné noviny – 19. 7. 2018: Jmenné prostory jaderných symbolů
kdyz jmenne prostory tak me napadaji jine veci nez c++
4.8. 00:27 pc2005 | skóre: 37 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Jaderné noviny – 19. 7. 2018: Jmenné prostory jaderných symbolů
Mě napadl ještě bash, ale to by bylo až moc heretické :-D

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.