Portál AbcLinuxu, 6. května 2025 07:19

Jaderné noviny – 23. 9. 2009

15. 10. 2009 | Jirka Bourek
Články - Jaderné noviny – 23. 9. 2009  

Aktuální verze jádra: 2.6.31. Citáty týdne: Linus Torvalds, Andrew Morton, Stephen Hemminger. AppArmor: Je zpááááátky. Vydán SystemTap 1.0. Devtmpfs a práva. Konec paravirt_ops? Začleňovací okno 2.6.32, část druhá. Nový sloupek: Ptejte se jaderného vývojáře.

Obsah

Aktuální verze jádra: 2.6.31

link

Začleňovací okno 2.6.32 je stále otevřené, v době psaní tohoto článku tedy není žádná vývojová verze jádra 2.6. Vydání 2.6.32-rc1 (a uzavření začleňovacího okna) lze očekávat 24. září.

Současné stabilní jádro je 2.6.31; během minulého týdne nevyšly žádné stabilní aktualizace; je revidována série aktualizací, ale v době psaní tohoto článku ještě nebyla vydána.

Citáty týdne: Linus Torvalds, Andrew Morton, Stephen Hemminger

link

Upřímně jsem nikdy neviděl důvod mluvit s jádrem pomocí nějakého idiotského paketového rozhraní. Je to jenom nablýskaný způsob, jak dělat ioctl, a každý ví, že ioctl jsou ošklivá a zlá. Proč je nablýskané paketové rozhraní najednou o tolik lepší?

-- Linus Torvalds o netlinku.

Ještě jsem pro tyto výhody neviděl uvěřitelné a kompletní vysvětlení. Několikrát jsem se na tyto věci ptal a nic se nedělo.

Mám podezření, že ve skutečnosti se postupem času stalo to, že dříve fungující kód byl rozbit, čehož si lidé později všimli, ale nepodařilo se jim analyzovat ho a opravit místo toho, aby všechno vytrhli a začali znova.

Takže pro nedostatek analýzy a opravování několika možných regresí jsme vyhodili velmi citlivý vnitřní jaderný kód, který měl za sebou desítky milionů strojových hodin testování. To považuji za neuvěřitelně uspěchané.

-- Andrew Morton o zpětném zápisu podle BDI.

-extern void refrigerator(void);
+extern void refrigerator(void) __cold;

-- Stephen Hemminger o správném mrazení.

AppArmor: Je zpááááátky

link

Bezpečnostní modul AppArmor měl těžký život – a to i když uvážíme, že bezpečnostní moduly obecně mívají těžkou cestu do hlavní řady. Jeho přístup založený na cestách [pathname] vyvolal obavy u mnoha vývojářů a implementace způsobila, že se ze všech koutů sítě ozývalo NACK. Nakonec hlavní vývojáři přišli o práci, distributoři ztratili zájem a AppArmor se ztratil z dohledu. Mezitím modul TOMOYO Linux překonal překážky a do hlavní řady se dostal.

Při své řeči na LinuxCon autor článku prohlásil, že neví, jestli se AppArmor vrátí, nebo ne. O den později John Johansen zaslal novou sadu patchů AppArmor. Co je zajímavé, John pracuje v Canonicalu, takže AppArmor, pokud se dostane do hlavní řady, by se mohl stát jedním z největších příspěvků této firmy do jádra. Jeho šance na začlenění by nyní měly být lepší; TOMOYO Linux rozbil bariéry pro povinné kontroly přístupu založené na cestách a AppArmor používá nové háčky pro bezpečnostní moduly, které byly přidány pro TOMOYO. V době psaní tohoto článku nicméně nebyla zaslána žádná hodnocení, takže se stále může stát cokoliv.

Vydán SystemTap 1.0

link

Tým SystemTap oznámil vydání SystemTap 1.0; SystemTap je dynamický sledovací nástroj pro Linux. Autor článku neví, čím si toto konkrétní vydání vysloužilo označení 1.0, ale nových věcí je v něm hodně, včetně experimentální podpory pro neprivilegované uživatele, křížový překlad pro jiné architektury, propojení třídy C++ a rozsahu jmenného prostoru, omezení spotřeby paměti za běhu, omezení režie ve značkách v uživatelském prostoru, opravy chyb a další… Více informací vizte v oznámení.

Devtmpfs a práva

link

Někteří vývojáři nejsou šťastni z toho, že do 2.6.32 bylo začleněno devtmpfs; jeden dokonce zaslal patch, který ho zase odstraňuje. Ingo Molnár místo toho jednoduše nahlásil chybu: Když devtmpfs vytvořil /dev/null/dev/zero, znepřístupnil je neprivilegovaným účtům. To rozbíjí většinu aplikací v systému, což podle Inga není zcela žádoucí.

Vývojáři devtmpfs původně zareagovali tím, že v době, kdy by mohla běžet nějaká aplikace v uživatelském prostoru, by měl práva správně nastavit udev, nicméně devtmpfs nabízí možnost se přinejmenším na relativně jednoduchých systémech používání udev vyhnout. Linus souhlasil, že to by byla zajímavá možnost, ale poznamenal, že to nebude fungovat, pokud několik speciálních souborů nebude globálně přístupných. Nastavit práva správně není tak těžké, ale vede to směrem, kterým se vývojáři devtmpfs nechtěli dát: Směrem ke vkládání určitého objemu administrativních politik do jádra.

Nakonec se nicméně stalo přesně to; devtmpfs získal možnost dotázat se jaderných subsystémů na výchozí práva a ta nastavit. Vzhledem k tomu, že práva byla Linusovou největší stížností o celé této věci, zdá se nyní pravděpodobné, že devtmpfs má v jádře 2.6.32 bezpečné místo.

Konec paravirt_ops?

link

Mechanismus paravirt_ops poskytuje linuxovému jádru možnost efektivně se zaháčkovat do hypervizoru kvůli privilegovaným operacím, když běží ve virtualizovaném režimu. Postupem času se v procesorech objevily vlastnosti zaměřené na podporu virtualizace, nicméně stále bylo možné těžit z implementace některých operací pomocí paravirt_ops. Tato situace se ale, zdá se, mění.

VMI je paravirtualizační vrstva VMWare vytvořená nad paravirt_ops. Vývojáři ve VMWare nedávno zkusili sadu testů a došli k zajímavému závěru: Na současných systémech VMI výkonnost hostitelských systémů nezlepšilo – právě naopak, výkonnost se zhoršila. V blízké budoucnosti by měla být rozumná hardwarová virtualizace dostupná na téměř všech systémech, na kterých záleží, takže se vývojáři VMWare rozhodli, že VMI již nedává smysl; plánuji ji odstranit.

Vývojář KVM Avi Kiviti poznamenal, že v jeho táboře došli ke stejnému závěru; KVM se bude v blízké budoucnosti zbavovat podpory pro některé paravirtualizované operace. To nám ponechává dva další systémy – Xenlguest – které paravirt_ops používají. Xen, jak se zdá, to tak bude dělat i nadále a lguest s vysokou pravděpodobností nikdy neobětuje dost štěňátek na to, aby mohlo začít hardwarovou virtualizaci používat. paravirt_ops tedy ještě malou chvíli zůstanou, ale jejich eventuální odchod je na obzoru. Až zmizí, dost možná vezmou lguest s sebou.

Začleňovací okno 2.6.32, část druhá

link

Od článku z minulého týdne bylo do hlavní řady pro vývojový cyklus 2.6.32 začleněno nějakých 3300 sad změn. Celkový počet neslučovacích sad změn mířících do 2.6.32 je nyní těsně přes 7800 – poměrně dost, ale rekord to ještě není.

Mezi změny viditelné pro uživatele patří:

Mezi změny viditelné pro vývojáře jádra patří:

Začleňovací okno by se obvykle blížilo svému konci; je však možné, že ho Linus trochu rozšíří, aby se nahradil čas, který strávil na LinuxCon a Linux Plumbers conference.

Nový sloupek: Ptejte se jaderného vývojáře

link

[Poznámka redaktora: Greg Kroah-Hartman ochotně souhlasil, že pro LWN příležitostně napíše sloupek, ve kterém bude zodpovídat otázky, které by čtenáři chtěli položit jaderné vývojové komunitě. Greg odvede skvělou práci, ale klíčem k úspěchu jsou zde dobré otázky; prosím, vymyslete co nejlepší a já je pošlu.]

Ahoj a vítejte u nového polotýdenního sloupku. Zde se budeme snažit zodpovědět vaše časté otázky o vývoji linuxového jádra. Tento sloupek bude spoléhat na čtenáře, že budou zasílat otázky k zodpovězení buď sem v komentářích nebo e-mailem na greg@kroah.com s pochopením, že ne na všechny lze odpovědět.

Platná témata jsou v rozsahu od technických po procedurálních otázky nebo směrem k čemukoliv, co je vzdáleně spojené s linuxovým jádrem a co vás napadne.

Abych začal, poskytl jsem pár „počátečních“ otázek, na které jsem často tázán a rád bych na ně tedy odpověděl najednou, abych to nemusel dělat znovu.

Proč je jádro 2.6.27 stále udržováno, zatímco novější jádro 2.6.29 již aktualizováno není?

link

Stabilní série linuxového jádra se snaží spravovat jenom jeden jaderný strom naráz, ten nejnovější s malým přesahem jednoho nebo dvou vydání, když vyjde nové jádro. V současnosti, kdy bylo právě vydáno jádro 2.6.31, jsou aktualizovány jak stromy .31, tak .30. Po dalším vydání stromu .30 bude tento opuštěn a aktualizován bude pouze strom .31.

Některé jaderné stromy jsou ale trochu „zvláštní“. Jádro 2.6.27 vypadalo jako dobré jádro pro delší údržbu. Někteří uživatelé nahlásili, že by rádi zůstali u jedné verze jádra déle než 3-4 měsíce, takže jaderný strom 2.6.27 se bude pokoušet být tím stromem, u kterého se lze spolehnout na to, že se do něj budou dostávat bezpečnostní opravy i opravy chyb po delší dobu. Vzhledem k tomu, že bylo jádro 2.6.27 vydáno 9. října 2008, je podporováno již téměř rok.

Až budu unaven údržbou této větve, Adrian Bunk se nabídl, že ji bude udržovat ještě déle, takže během přibližně roku přejde správa na něj a tato verze bude žít dál.

Jak zajistím začlenění patche do stabilní aktualizace jádra?

link

Nejprve se podívejte na Documentation/stable_kernel_rules.txt a ověřte si, že patch, který zvažujete, splňuje pravidla pro stabilní vydání jádra. Pokud ano, nejjednodušší způsob, jak ho nechat začlenit, je přidat řádek:

Cc: stable <stable@kernel.org>

do oblasti Signed-off-by: patche předtím, než ho pošlete správci subsystému. Když je patch s touto řádkou začleněn do Linusova jaderného stromu, stabilní tým je automaticky upozorněn, že tento patch by měl být začleněn, a oni ho zařadí do fronty k příštímu vydání jádra.

Pokud si všimnete patche, o kterém si myslíte, že by měl patřit do stabilního vydání, ale tuto značku nemá a v Linusově stromě již je, jednoduše napište e-mail na stable@kernel.org a uveďte id commitu patche v Linusově stromě a krátký popis toho, do které stabilní verze jádra by měl podle vás být začleněn. To je vše, co je potřeba.

Tak sem s otázkami!

Související články

Jaderné noviny – 16. 9. 2009
Jaderné noviny – 9. 9. 2009
Jaderné noviny – 2. 9. 2009
Jaderné noviny – 26. 8. 2009

Odkazy a zdroje

Kernel coverage at LWN.net: September 23, 2009

Další články z této rubriky

Jaderné noviny – přehled za březen 2025
Jaderné noviny – přehled za únor 2025
Jaderné noviny – přehled za leden 2025
Jaderné noviny – přehled za prosinec 2024
Jaderné noviny – přehled za listopad 2024

Diskuse k tomuto článku

15.10.2009 07:23 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Jaderné noviny – 23. 9. 2009
Odpovědět | Sbalit | Link | Blokovat | Admin
Nedal jsem to přímo do článku, ale pro jistotu: Jaderné noviny jsou překlad, takže pokud byste někdo chtěli posílat dotazy na jaderné vývojáře, pak buď původnímu autorovi nebo na adresu uvedenou v článku Gregovi KH. (Pochopitelně v angličtině)
Quando omni flunkus moritati
15.10.2009 08:05 Martincek
Rozbalit Rozbalit vše AppArmor a další vývoj?
Odpovědět | Sbalit | Link | Blokovat | Admin
Jak to vypadá s tím AppArmor? Chci se naučit nějaké bezpečnostní rozšíření jádra a alternativou je už jen SELinux. A ten je opravdu složitý a jak říkají i někteří odborníci - jeho možnosti nastavení jsou tak jemné, že to jen tak někdo nezvládne. A upgrade každého programu se pak stává bolestnou záležitostí.

AppArmor přitom vypadá úžasně jednoduše a věřím, že i když je založen na cestách k souborům, třeba díry v php by mohl ochránit docela dobře.

Jenže jestli ho vyhodí z jádra, tak je konec. Přitom Ubuntu zvolilo AppArmor jako svoji hlavní bezpečnostní technologii.

Používá to někdo? Má to budoucnost?
15.10.2009 17:37 ivan
Rozbalit Rozbalit vše Re: AppArmor a další vývoj?
Me prijde SELINUX docela nebezpecnej, protoze pouziva extended atributy filesystemu. Chapu, ze je z urcityho pohledu optimalni pristup, ale sprava takovyho systemu muze byt nebezpecna. Nekdy staci tohle(anebo neco podobnyho):
cp /etc/shadow /etc/shadow.bak
..
cp /etc/shadow.bak /etc/shadow
a jste v ... - novy shadow soubor nema spravne extended atributy.

15.10.2009 19:51 Dramon
Rozbalit Rozbalit vše Re: AppArmor a další vývoj?
root si holt musí dávat pozor co dělá. Ale stejným způsobem si každý musí hlídat ACL, pokud se používají. A občas spuštěný restorecon systému také neublíží :)
Pokud by člověk chtěl systém založený na názvu souboru, může se v rámci SELinuxu tento název dát do konfiguračního souboru démona restorecond a on mu to pohlídá.
17.10.2009 15:40 asdf
Rozbalit Rozbalit vše Re: AppArmor a další vývoj?
SELinux zase tak slozity neni. Vypilovat konfiguraci, aby delal vse, co je potreba, muze byt pracne, ale pridani nekolika jednoduchych pravidel je docela snadne. Dobrou dokumentaci je
http://www.root.cz/knihy/ceska-dokumentace-pro-selinux/,
http://www.root.cz/serialy/jak-spravne-na-selinux/
Karry avatar 15.10.2009 09:47 Karry | skóre: 10
Rozbalit Rozbalit vše Re: Jaderné noviny – 23. 9. 2009
Odpovědět | Sbalit | Link | Blokovat | Admin
...každý ví, že ioctl jsou ošklivá a zlá...

Já to nevím... Co je na nich tak zlého? Vždyť se používají všude... Co by se místo nich mělo používat?
unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
15.10.2009 10:54 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Jaderné noviny – 23. 9. 2009
Co je na nich tak zlého? Vždyť se používají všude.
Prave to je na nich zle - su vsemocnym mechanizmom ako zasahovat do vsetkeho mozneho, a to bez spolocneho dizajnu, zjavnej semantiky a cohokolvek co by sa dalo nazvat navrhnutym rozhranim. Same o sebe povodne vznikli len ako workaround, ktory metastazoval do celeho kernelu.
Karry avatar 15.10.2009 17:34 Karry | skóre: 10
Rozbalit Rozbalit vše Re: Jaderné noviny – 23. 9. 2009
su vsemocnym mechanizmom ako zasahovat do vsetkeho mozneho
bezesporu...

Koukni na tento kousek:
unsigned long int value;
fd = syscall(SYS_open, devf, O_RDONLY);
ioctl(fd,VIDIOC_G_CTRL,&value);
close(fd);
Je to kus kódu z použití V4L API. Přijde ti tohle špatně navržené? Jak tohle udělat lépe, aby se pokud možno zachovala jednoduchost?
unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
16.10.2009 11:30 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Jaderné noviny – 23. 9. 2009
V mikrojádrech je tento způsob zcela normální, protože prakticky všechny zbytné „služby systému“ jsou formálně zprávy zasílané mezi procesy. V podstatě je to jen otázka curryfikace – jestli je název služby vestavěn do názvu funkce nebo veden jako argument.
16.10.2009 20:20 ivan
Rozbalit Rozbalit vše Re: Jaderné noviny – 23. 9. 2009
Mel by na to byt zvlastni syscall. unixy maji obecne minimum syscallu(narozdil od woken). Chybejici syscally se nahrazuji ioctl. Pro samostnou fukcionalitu aplikace to asi neni problem. Co kdyz prozenete svuj program nejakym analyzatorem a ten vam rekne ze jste stravil 80% casu cekanim na iotl? Jaky z toho udelate zaver? Zrovna to V4L proslo nejakym vyvojem - ioctl umoznuje snadnou zmenu rozhrani ovladace, beze zmeny zbytku kernelu a userspace knihoven. To nemusi byt zrovna vyhodne pro uzivatele.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.