Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Tento článek je překladem z anglického originálu, a proto vychází se zpožděním.
Současné vývojové jádro 2.6 je 2.6.27-rc7 vydané 21. září. Všechny změny jsou malé - největší jsou věci jako pár změn v defconfigu m68k a triviální pročištění v souboru MAINTAINERS. Detaily lze nalézt v kompletním changelogu.
Od vydání 2.6.27-rc7 bylo do gitového repozitáře hlavní řady začleněno několik tuctů oprav.
Strom linux-next si dal znenadání pauzu; jeho návrat se očekává 13. října.
A stejně jako u teorie relativity se dva lidé s různými CPU mohou skutečně oprávněně neshodnout na řazení stejné události. Jsou zde věci, které se chovají jako "světelné kužely", neboli hranice toho, na čem se mohou shodnout všichni. Ale v základu je při nepřítomnosti explicitních zámků dost možné, že nic takového jako "řazení" nemusí existovat.
- early_printk("Jádro skutečně žije\n"); + early_printk("Jádro skutečně žije! Žije! ŽIIIIIJEEEEEE!\n");
Kód je stále experimentální, není k začlenění, ale vzhledem k tomu, že v něm momentálně nalézám méně chyb než ve zbytku Linuxu, mám dojem, že se k začlenění blíží.
-- Paul McKenney (Díky Stevenu Rostedtovi)
Seznam regresí 2.6.27-rc zaslaný 21. září obsahuje - hluboko - položku "e1000e: 2.6.27-rc1 poškozuje EEPROM/NVM". Její přehlédnutí je odpustitelné; seznam regresí je (bohužel) stále dlouhý a nic v jejím popisu nenaznačuje, že se jedná o významnější problém. Ale je: tato konkrétní chyba znamená víc než jen chybu v síťování; když kousne, poškodí EEPROM na zařízení, které potom přestane fungovat (přinejmenším dokud se uživateli nepodaří nahrát do EEPROM fungující kód). To je problém, který stojí za to opravit.
V době psaní tohoto článku se nicméně nezdá, že by někdo zjistil, kde problém spočívá. Došlo k určitému zmatku kvůli faktu, že příbuzný ovladač e1000 také trpěl problémem s poškozením EEPROM - ukazuje se ale, že šlo o jinou chybu. Problém v e1000 byl opraven přidáním zámku k přístupu k EEPROM, čímž se zabránilo jejímu poškození způsobenému paralelním přístupem. V e1000e se ale děje něco jiného.
Zdá se, že zjistit, co to "něco jiného" je, je výzva. Problém nelze snadno zreprodukovat a menší problém také je, že vyvolat chybu víc než jednou vyžaduje výměnu postiženého hardwaru. Není dokonce ani jasné, které verze jádra jsou postiženy, i když se zdá, že se chyba projevuje jenom ve vývojové sérii 2.6.27. Existuje nějaká korelace mezi poškozením e1000e a pádem grafického ovladače, což Davida Millera vedlo ke zkoumání hypotézy, že skutečným viníkem jsou změny X serveru, ale tuto verzi se ještě nepodařilo prokázat. Další vývojáři mají podezření, že jde o problém spojený se souběhem podobně jako u e1000.
V době psaní tohoto článku je většina toho, co je známo, k nalezení v doporučení od Mandrivy. Jaderní vývojáři přidávají informace, které zjistí, do záznamu v jaderné bugzille (v době vydání je přinejmenším dostupná oprava od Intelu).
Padlo doporučení, že každý, kdo provozuje 2.6.27 na potenciálně postižitelném systému, by měl zazálohovat kopii současného obsahu EEPROM příkazem:
ethtool -e eth0 > eth0.eeprom
(To samozřejmě předpokládá, že je příslušné zařízení ve vašem systému eth0.) S uloženými daty by mělo být možné zařízení opravit, když dojde k nejhoršímu; bez nich je pravděpodobné, že budou oběti muset svůj systém vrátit prodejci.
V jistém smyslu tato chyba ukazuje, že systém (vývoje jádra) funguje. Byla odchycena ještě v době, kdy je jádro ve stabilizační fázi; můžeme si být jisti, že bude nějakým způsobem zlikvidována předtím, než vyjde stabilní verze 2.6.27. Na druhou stranu první hlášení o tomto problému se na síti objevilo 8. srpna; problém byl znám déle než měsíc předtím, než na něj distributoři začali reagovat, a začal skutečný hon na příčinu. To je, co se trvání regrese týče, dlouhá doba, ale obzvlášť dlouhá je v situaci, kdy se jedná o regresi, která může hardware vrátit do doby kamenné.
Distributoři nyní zareagovali; většina z nich stáhla jádra s postiženými ovladači. Zatím nikdo nezaslal nástroj, který by pomohl uživatelům hardware opravit (návrhy použít ibautil by měly být ignorovány a zapomenuty tak rychle, jak to bude možné). Takový nástroj se chystá, ale těžko obviňovat odpovědné techniky z toho, že se předtím zaměřují na opravení problému. Pokud se poštěstí, základní příčina bude nalezena již v době, kdy toto budete číst.
Je tu ale jedna věc, která se nezměnila. Testeři nestabilního softwaru - obzvláště jádra - jsou často varováni, že zmíněný software může s jejich systémem udělat otřesné věci. Tato varování je snadné ignorovat; i -rc1 jádra většinou většině lidí fungují. Nicméně, jak jsme viděli v tomto případě, potenciál pro katastrofické chyby je skutečný. Vývojový kód může zničit váš síťový adaptér, přeházet souborový systém, otevřít vážné bezpečnostní díry nebo uložit vaše dokumenty v OOXML. Když experimentujete s nestabilním kódem - i když vám ho distributor poskytl v hezkém balíčku - je vždy moudré mít dobré zálohy a ještě lepší smysl pro humor.
V poslední den Linux Plumbers Conference (Konference linuxových instalatérů) vedl Keith Packard mikrokonferenci věnovanou budoucím displejům. Bylo diskutováno mnoho témat, ale v klíčové diskuzi se jednalo o blízké budoucnosti linuxových video ovladačů. Dlouhodobí čtenáři Jaderných novin toto téma znají lépe: Linux má několik subsystémů pověřených správou grafického hardwaru, model ovladačů v uživatelském prostoru přijatý XFree86 vede k různým problémům, podpora pro 3D grafiku není taková, jaká by mohla být atd. Celé toto téma bylo v dané diskuzi probráno, nicméně s významným rozdílem: Řešení jsou v posledních fázích stabilizace a tyto problémy se brzy stanou historií.
Jsou dvě hlavní komponenty, na kterých se pracuje: Správa grafické paměti [graphics memory management] a jaderné nastavování režimu [kernel-based mode setting] (vizte Plymouth). Současné grafické procesory (GPU) jsou skutečná CPU ve všech ohledech, včetně integrované jednotky správy paměti. Zvládání sdílení paměti mezi uživatelským prostorem, jádrem a GPU je pro implementaci korektní a na výkon náročné grafiky nezbytné. Před rokem se řešením problému správy paměti zdál být TTM subsystém, ale jak se zlepšilo porozumění problému, s TTM se dalo čím dál tím hůře pracovat. Jako cesta kupředu nyní vypadá kód Správce grafického zpracování [Graphics Execution Manager, GEM]; v současnosti se připravuje k začlenění do hlavní řady jádra.
Keith Packard, Dave Airlie a Jesse Barnes
Jaderné nastavování režimu je míněno jako způsob, pomocí kterého je možné se zbavit nutnosti umožnit kódu v uživatelském prostoru hrabat se přímo v hardwaru. Převést nastavení konfigurace videoadaptéru na jádro má spoustu výhod. Například je mnohem větší šance, že bude fungovat uspávání a probouzení. Jakmile X server přestane k hardwaru přistupovat přímo, nebude již muset běžet pod rootem; muset provozovat tolik nedůvěryhodného kódu se všemi oprávněními lidi už mnoho let znervózňuje. V současném schématu jádro nemůže změnit grafický režim, když potřebuje; to například znamená, že když systém zpanikaří, uživatel v grafickém prostředí si zprávu nikdy neprohlédne. S jaderným nastavováním režimu jádro může režim přepnout a umožnit uživateli zběsile se pokoušet přečíst zprávu dřív, než z obrazovky odroluje. Také s ním bude mnohem lépe fungovat rychlé přepínání uživatelů, zmizí potřeba použít pro každé uživatelské sezení oddělený virtuální terminál.
Jedním z prvních témat diskuze bylo: jak jádro rozhodne o tom, kdy přepnout na obrazovku paniky [panic screen], aby uživateli ukázalo důležitou zprávu? Je poměrně mnoho cest, kterými může jádro signalizovat nouzový stav; měla by se jaderná zpráva ukázat pokaždé, když nastane stav WARN_ON()? Zdá se, že bude potřeba sjednotit chybové cesty v jádře, aby se toto rozhodnutí zjednodušilo. Jesse Barnes navrhl, že jádro by mohlo jednoduše přepnout při každé zprávě, kterou vypisuje printk(), s tím, že taková politika by vedla k rychlé a vítané redukci upovídanosti jádra.
Skutečná debata na tomto sezení se však týkala vývojového procesu. Jak bylo dříve diskutováno v LWN, mnoho z práce na zobrazování se dělá mimo strom hlavní řady jádra. Nyní vidíme, jak se velký kus této práce připravuje na začlenění. Nové rozhraní pro nastavování režimu je ale velká změna API, která bude vyžadovat úpravy v uživatelském prostoru; nové jádro, od kterého se očekává správa nastavení, nemusí podávat nejlepší výsledky, když poběží se starším X serverem v uživatelském prostoru. Dojde tedy na nějaký slavnostní den, kdy se všechno změní a všechen nový kód se poprvé spustí.
Linus není nápadem slavnostního dne nadšen; dlouze apeloval na inkrementálnější přístup k opravě fungování video ovladačů. Z jeho pohledu slavnostní den znamená, že se aktivuje velký kus netestovaného kódu naráz; určitě v něm budou návrhové chyby, které se projeví, a celá ta věc nebude fungovat správně. V tom okamžiku bude zapotřebí další slavnostní den. Linus nebyl ohromen tvrzením, že uživatelé Fedory tento kód nesobecky testovali pro všechny; podle něj je podstatné, že toto testování nedělají jaderní vývojáři. Celou věc vidí jako cestu ke katastrofě.
Skutečný problém - a důvod pro vývoj mimo strom - je, že všechna tato práce vyžaduje vytvoření nových, komplexních ABI pro uživatelský prostor. To platí jak pro nastavování režimu, tak pro správu paměti a tyto dva od sebe nelze snadno oddělit. Dokud kombinace jako celek nebude fungovat, vývojáři videoovladačů se jednoduše nemohou zavázat ke stabilnímu rozhraní do uživatelského prostoru - a to znamená, že jejich kód nelze začlenit.
Jako příklad bylo zmíněno TTM. Kdyby kód byl začleněn, když se zdál být tím pravým řešením, bylo by nyní potřeba řešit ještě větší problémy.
Grafičtí vývojáři v podstatě věří, že jejich přístup je tak inkrementální, jak jenom může být. Jestli o tomto faktu přesvědčili Linuse, není jasné, ale ke konci se zdálo, že plán přijímá. Žádal je, aby do upstreamu tlačili nejprve kód pro nastavování režimu, ale ten nemůže fungovat bez podpory správy paměti, takže GEM se do hlavní řady dostane první. Jakmile bude v jádře všechno, bude možné nabootovat systém s nastavováním režimu buď v jádře, nebo v uživatelském prostoru, takže budou podporovány nové i staré distribuce. Časem, ve vzdálené budoucnosti, bude možné podporu pro nastavování režimu z uživatelského prostoru vyjmout. Mnohem dříve, než se tak stane, bychom nicméně všichni měli provozovat značně vylepšený grafický kód a již si nepamatovat, jak věci vypadaly dříve.
Malá změna v 2.6.25 nedávno způsobila, že Andrew Mortonovi nefungoval systém zcela správně, ale také demonstrovala uživatelské rozhraní, které může být občas přehlédnuto: SELinux. Problém vznikl ze změny, která měla pomoci kontejnerům tak, že se z /proc/net udělal symbolický odkaz, což podrazilo nohy SELinuxovým politikám, které byly napsány pro starší jádra. Jádro se řídí principem přenechání nastavení politik uživatelskému prostoru, ale to může někdy vést k neočekávané synchronizaci, která je mezi těmito politikami a jádrem zapotřebí.
Změna samotná byla vcelku malá, z /proc/net se stal symbolický odkaz na /proc/self/net tak, aby kontejnery viděly jenom svá síťová zařízení místo těch, které jsou v systému, v němž jsou uzavřeny. Nicméně když Andrew spustil nové jádro na svém systému Fedora Core 5 a 6, dostal:
sony:/home/akpm> ifconfig -a Warning: cannot open /proc/net/dev (Permission denied). Limited output.
Další průzkum odhalil, že i ls dostane chybu o oprávněních, když se dívá do /proc/net. Jak je obvyklé u záhadných "přístup odepřen" chyb, příčinou byl SELinux.
Když byla změna v březnu provedena, byla revidována vývojáři SELinuxu, ale nikdo z nich si nevšiml, že způsobí jeden test oprávnění navíc - pro samotný odkaz. Takže když se rozhoduje o věcech jako /proc/net/dev nebo dalších záznamech v tomto adresáři, testují se i "štítky" [label] symbolického odkazu. /proc je samozřejmě syntetický souborový systém, takže štítky jsou generovány z kódu SELinuxu, nikoliv získávány z rozšířených atributů (xattrs).
Distribuce aktualizovaly své politiky, aby se k symbolickému odkazu umožnil přístup - pravděpodobně si všimly zamítnutí od SELinuxu ve zprávách v logu - takže většina lidí na problém nikdy nenarazila. Jak ale Andrew zjistil, existující soubory distribucí (například ty dodané v FC5 a FC6) stále přístup nepovolí. Andrew pravidelně spouští novější jádra na starších distribucích ve snaze zachytit přesně tento druh chyb; je pravděpodobně jeden z mála, možná jediný, kdo to dělá.
Protože bylo změněno jádro dodané distribucí, někteří argumentovali, že potřeba uživatele aktualizovat politiky SELinuxu není tak obtížný požadavek. Paul Moore to řekl takto:
Možná jsem zde v menšině, ale podle mě jakmile přestaneš používat distrem dodané jádro (platí i pro další balíky, i když u těch je to pravděpodobně méně kritické), měl bys také nést zodpovědnost za to, že upgraduješ/vyladíš/nainstaluješ další kousky, které je potřeba opravit.
Andrew s tímto argumentem nesouhlasil a řekl:
Ne. Vydání kernel.org jádra, které není zpětně kompatibilní, je velký problém.
Občas to děláme, oznamujeme to dlouho dopředu, velmi opatrně a po dlouhém rozhodování.
Tentokrát jsme to udělali naprosto náhodou. V tomhle oboru se to chápe jako "chyba".
Vývojář SELinuxu Stephen Smalley nicméně upozornil na to, že testování oprávnění není běžně považováno za součást rozhraní mezi jádrem a uživatelským prostorem. Je to ale poněkud šedá oblast. Standardní UNIXová testování oprávnění jsou součástí tohoto rozhraní alespoň částečně, protože jádro řeší politiku těchto testů. Vzhledem k tomu, že politiky, které určují rozhodnutí o zamítnutí přístupu SELinuxem, přicházejí z uživatelského prostoru, je poněkud obtížné přít se o tom, že změny v jádře nevyplavou na povrch. Stephen problém popsal:
Měl bych zde poznamenat, že co se změn SELinuxu týče, doteď jsme se vždy snažili vyhnout takovému narušení kompatibility zaváděním přepínačů a příznaků politiky, které nové testy povolují atd. (přestože cenou je zvýšená komplexita a rozlézající se kód pro kompatibilitu). Změny ve zbytku jádra ale mohou stejně tak snadno změnit sadu testů oprávnění, které jsou na danou operaci aplikovány, a nemyslím si, že budeme někdy schopni garantovat, že nové jádro + stará politika bude Prostě Fungovat.
Jedním možným řešením současného problému, které Stephen naznačil, bylo, že by SELinux mohl změnit štítek, který vrací pro symbolické odkazy v /proc. Není jasné, jestli někdo tuto změnu požaduje, a neobjevila se žádná snaha ji přidat. Jak řekl Andrew, lidé, kteří dodávají distribuce založené na 2.6.25 a 2.6.26, by pravděpodobně ve svých jádrech takový patch stejně nechtěli.
Co se delšího časového úseku týče, Eric Biederman se ptal na podporu xattrs pro /proc. To by uživatelskému prostoru umožnilo štítkovat souborový systém proc správně, čímž by se odstranil jeden ze speciálních případů. Bohužel by to vytvořilo další nekompatibilitu mezi novějšími jádry a starým uživatelským prostorem.
Protože chybu zpozoroval jenom Andrew mnoho měsíců poté, co byla zavedena, nakonec bude pravděpodobně prostě ignorována. Časem se nicméně může objevit větší problém ohledně toho, jak se testy oprávnění vejdou do rozhraní mezi jádrem a uživatelským prostorem.
Následující obsah je © KernelTrap.
30. září, originál
Takže zase další týden, další -rc, začal Linus Torvalds oznámení jádra 2.6.27-rc8. Toto -rc by mělo být poslední: rozhodně nám nedošly regrese, ale na druhou stranu musím někdy vybrat nějaký okamžik a regrese jako celek nevypadají příliš děsivě. A -rc8 zjevně opravuje další. Linus pokračoval poznámkou, že většina změn od -rc7 je malá a nebylo jich tolik.
Jiří Kosina upozornil, že je zde stále neznámá chyba, která postihuje ovladač e1000e v jádře 2.6.27 a kvůli které jsou karty nadále nepoužitelné pro většinu nejsem-hacker uživatelů (a vzpomeňte si, že dokonce i Dave Airlie úplně usmrtil svůj notebook, když se snažil obsah eeprom obnovit). Když byl tázán, jak tuto chybu reprodukovat, Jiří poznamenal, že neschopnost spolehlivě chybu reprodukovat zvýšilo obtížnost ladění problému, zjevně jde o nějaký druh souběhu, protože obvykle trvá několik cyklů ji vyvolat.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Proč vývojáři jádra tak zarputile trvají na udržování zpětné kompatibility skoro všech rozhraní? Chápal bych to u aplikací
Proč se ale zabývat nízkoúrovňovými záležitostmi typu SElinux
Protože z hlediska jádra je všechno kromě jádra aplikace (uživatelský prostor). Ať už se jedná o 10 let starou databázi nebo o sadu politik SELinuxu.
Že mnohdy nefunguje staré distro na novém HW, nebo starý kernel s novým distrem nikoho nepřekvapí, tak proč by to nemělo platit i naopak?
Protože jde o zpětnou kompatibilitu, nikoliv dopřednou.
Protože z hlediska jádra je všechno kromě jádra aplikace (uživatelský prostor). Ať už se jedná o 10 let starou databázi nebo o sadu politik SELinuxu.Technicky jistě. Ale "logicky" nikoliv. Zatímco stará databáze na novém jádře je celkem představitelný scénář, tak staré distro včetně všech low-level hejblátek s novým jádrem je v podstatě nesmysl. Některé části user space jsou prostě s konkrétním jádrem svázány víc než jiné, tak proč v jádře nechávat překonaná nebo nedostatečná rozhraní?
Protože jde o zpětnou kompatibilitu, nikoliv dopřednou.To ovšem není odpověď na otázku proč tuto kompatibilitu tak odhodlaně zachovávat.
tak staré distro včetně všech low-level hejblátek s novým jádrem je v podstatě nesmyslTak zrovna ja to takhle pouzivam. Distribuci mam obvykle stable Debian (a vetsinou upgraduju nikoliv ihned po vydani noveho stable), zatimco jadro si casto kompiluju aktualni.
Jedním z prvních témat diskuze bylo: jak jádro rozhodne o tom, kdy přepnout na obrazovku paniky [panic screen]Huraaa budeme mit bsod
Celá pravda je, že trasovací kód byl natolik špatný, že jej zahodili a napsali nový, který shodou okolností tímto problémem (xcmp nad do paměti mapovaným IO prostorem) netrpí. Protože se ale nový kód nestihlo zařadit do 2.6.27, tak prostě vyjde v další verzi.