sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
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.
Současné vývojové jádro je 2.6.39-rc7 vydané 9. května. Linus řekl:
Takže věci byly poměrně v klidu a pokud se neobjeví něco význačného, věřím, že tohle -rc bude poslední. Všechny detaily lze nalézt v kompletním changelogu.Stabilní aktualizace: aktualizace stabilních jader 2.6.32.40, 2.6.33.13 a 2.6.38.6 byly vydány 9.května. Každé obsahuje dlouhý seznam důležitých oprav.
-- ...ale řeknou vám, jak na to
-- Zdroj schopností Grega Kroah-Hartmana
napsal Jonathan Corbet, 11. května 2011
Když proces zapíše do stránky v paměti obsahující data souboru (ať už pomocí mapování do paměti nebo systémovým voláním write()), označí se stránka jako špinavá a časem je nutné ji zapsat zpět na úložiště. Kód zpětného zápisu [writeback], když se k dané stránce dostane, ji označí jako pouze pro čtení, nastaví příznak „probíhá zpětný zápis“ [under writeback] a naplánuje I/O operaci. Ochrana před zápisem neslouží k tomu, aby se zabránilo v tom stránku měnit; účelem je detekovat další změny, které by vyžadovaly další zpětný zápis. Současná jádra ve většině případů umožní procesu modifikovat stránku, na které probíhá zpětný zápis.
Ve většině případů to také funguje bez problémů. Nejhorší varianta je, že druhý zápis do stránky začne předtím, než začne I/O operace prvního zpětného zápisu; v takovém případě budou nová data zapsána na disk již při první I/O operaci a později se naplánuje druhý, redundantní zápis. Tak jako tak se data dostanou na úložiště, což je cílem.
Jsou ale případy, kdy je modifikace stránky, když probíhá zpětný zápis, špatným nápadem. Některá zařízení dokáží kontrolovat integritu, což znamená, že k datům zapsaným na disk se vypočítá kontrolní součet a ten se porovná s kontrolním součtem, který spočítalo a zapsalo jádro. Pokud se data změní po vypočítání kontrolního součtu jádrem, kontrola selže, což vede na podivnou chybu při zápisu. O změny dat mohou zakopnout i implementace softwarového RAIDu. Výsledkem těchto problémů je to, že vývojáři pracující v oblasti souborových systémů již před nějakou dobou dospěli k přesvědčení, že je nutné, aby jádro podporovalo „stabilní stránky“, u kterých je garantováno, že se během zpětného zápisu nezmění.
Když se Jaderné noviny v únoru stabilními stránkami zabývaly, Darrick Wong zaslal patch, který měl problém vyřešit. V situacích, když se používá kontrola integrity, by jádro před zahájením zpětného zápisu vytvořilo kopii stránky. Vzhledem k tomu, že nikdo v uživatelském prostoru by o kopii nevěděl, bylo by garantováno, že během zápisu nebude poškozena. Patch řešil problémy v případě kontroly integrity, ale dodatečné operace kopírování jsou drahé. Vzhledem k tomu, že se považovalo za žádoucí poskytnout stabilní stránky ve všech situacích, byla taková cena odmítnuta.
Darrick se tedy vrátil s novou sadou patchů, která používá jiný – a jednodušší – přístup. V krátkosti s tímto patchem jakýkoliv pokus zapsat do stránky, na které probíhá zpětný zápis, jednoduše počká, dokud se zápis nedokončí. Není potřeba kopírovat stránky nebo používat jiné triky, ale tento přístup má také svou cenu.
Jak bylo zmíněno výše, když probíhá zpětný zápis, stránka se označí jako pouze pro čtení; také je zde příznak, který říká, že probíhá zpětný zápis. Všechny tyto kousky jsou zde k tomu, aby se zachytily zápisy do takové stránky. A aby to bylo ještě jednodušší, vrstva VFS již má zpětné volání [callback] (page_mkwrite()), kterým souborové systémy upozorní na to, že stránka pouze pro čtení byla změněna na zapisovatelnou; Darrick jenom musel změnit to, jak tato volání page_mkwrite() fungují, když probíhá zpětný zápis.
Některé souborové systémy page_mkwrite() vůbec nenabízejí; pro ty Darrick vytvořil obecnou funkci empty_page_mkwrite(), která zamkne stránku, počká na dokončení zpětného zápisu a pak zamknutou stránku vrátí. Komplikovanější souborové systémy ale mají obsluhy page_mkwrite(), takže Darrick musel přidat podobnou funkcionalitu pro ext2, ext4 a FAT. Btrfs implementuje stabilní stránky již nějaký čas interně, takže tam nebyly potřeba žádné změny. Ukazuje se, že Ext3 obsahuje nějaké komplikované interakce s žurnálovací vrstvou, které implementaci stabilních stránek ztěžují; vzhledem k tomu, že invazivní změny v tomto souborovém systému nejsou momentálně vítány, podpora stabilních stránek v něm možná nebude nikdy.
Objevily se obavy, že tento přístup by mohl zpomalit aplikace, které opakovaně zapisují do stejné části souboru. Před touto změnou zpětný zápis nijak nezpomalil další zápisy; po ní budou muset čekat. Darrick zkusil několik benchmarků, tento přístup otestoval a zjistil, že pokles výkonu je až 12 %. Toto zpomalení není vítáno, ale zdá se, že konsenzus je takový, že jenom málo aplikací na takový problém skutečně narazí. Opakované přepisování dat je relativně vzácné; zainteresování vývojáři říkají, že ani neví o žádném případu ze skutečného světa, který by mohli otestovat.
To, že o žádných neví, samozřejmě neznamená, že žádné neexistují. Problémy, které taková změna způsobí, se mohou projevit až za několik let, když se kód konečně dostane od distributorů k uživatelům; v té době už bude příliš pozdě vzít něco zpět. Pokud jsou tu aplikace, které by na tuto změnu mohly reagovat špatně, je potřeba o tom dát vědět teď. V opačném případě přínosy stabilních stránek pravděpodobně zajistí, že budou ve většině případů přijaty.
napsal Jonathan Corbet, 11. května 2011
Arjan van de Ven nedávno nahlásil, že změna v 2.6.39 týkající se toho, jak jádro předává data ze sledovacích bodů, rozbíjí powertop; požádal, aby byla částečně vzata zpět. Následná diskuze se týkala již známého problému ohledně toho, jak se sledovací body míchají s jaderným ABI. Také ale odhalila vážné neshody o tom, jak by se měla data ze sledování předávat, a možná i to, jakým směrem se toto rozhraní bude ubírat v budoucnu.
Každý sledovací bod v jádře obsahuje několik polí, které obsahují hodnoty relevantní k události, která je jím dokumentována. Například sledovací bod sched_switch, který se spustí, když plánovač přepíná mezi procesy, zahrnuje ID obou procesů, jejich priority a tak dál. Každý sledovací bod má také několik „společných“ polí včetně ID procesu, jeho příznaků a hodnoty preempt_count; když se data čtou v binární podobě, objeví se tyto hodnoty na začátku přečtené struktury.
Před vývojovým cyklem 2.6.32 mezi tato společná pole patřilo i ID skupiny vláken (thread group ID); tato hodnota byla odstraněna v září 2009. Pohled na zdrojové kódy powertop ukazuje, že program stále očekává, že tam toto pole bude (i když ho nepoužívá); interně definovaná struktura pro data ze sledování obsahuje pole tgid. Změna tedy měla powertop rozbít už tenkrát a taky by se tak stalo, kdyby nedošlo k další změně: ve stejný den Steve Rostedt přidal jiné společné pole lock_depth, které hlásilo, jestli současný proces držel velký jaderný zámek (big kernel lock, BKL). U tohoto pole se nikdy nepředpokládalo, že by mělo zůstat natrvalo: koneckonců jeho účelem bylo pomoci BKL odstranit.
V 2.6.39 bylo podle lock_depth odstraněno a powertop přestal fungovat. Arjan si následně stěžoval; také dodal patch, který přidává pole vyplněné nulami na místo, kde býval lockdepth. Steve s patchem nesouhlasí, protože kdyby powertop používal sledovací ABI správně, nikdy by fungovat nepřestal. Jádro exportuje informace o každém sledovacím bodu; pro výše zmíněný sched_switch lze tyto informace prozkoumat z příkazové řádky:
# cat /sys/kernel/debug/tracing/events/sched/sched_switch/format name: sched_switch ID: 51 format: field:unsigned short common_type; offset:0; size:2; signed:0; field:unsigned char common_flags; offset:2; size:1; signed:0; field:unsigned char common_preempt_count; offset:3; size:1; signed:0; field:int common_pid; offset:4; size:4; signed:1; field:char prev_comm[16]; offset:8; size:16; signed:1; field:pid_t prev_pid; offset:24; size:4; signed:1; field:int prev_prio; offset:28; size:4; signed:1; field:long prev_state; offset:32; size:8; signed:1; field:char next_comm[16]; offset:40; size:16; signed:1; field:pid_t next_pid; offset:56; size:4; signed:1; field:int next_prio; offset:60; size:4; signed:1;
Steve říká, že správně napsaný program by tento soubor měl načíst a offsety dat, která ho zajímají, zjistit z něj. Linus podle všeho souhlasil, že by bylo hezké, kdyby věci fungovaly takto, ale na to nedošlo. Místo toho přinejmenším jeden program začal záviset na formátu binárních dat, která jádro exportuje. To stačí k tomu, aby se tento formát stal součástí jaderného ABI; rozbití programu se počítá jako regrese a Arjanův patch tedy byl začleněn.
Stevovi se tento výsledek nelíbil; naprosto odporuje snaze, která byla věnována tomu, aby se sledovací body mohly měnit bez rozbití aplikací. Alternativou je podle něj pohřbít jádro v bordelu pro kompatibilitu:
Myšlenku, že by se ze sledovacích bodů XFS stala součást jaderného ABI, označil Dave Chinner jako bláznivé řeči, ale tyto sledovací body se od ostatních nijak neliší. I z nich by se opravdu mohlo stát jaderné ABI.
Steve měl také problém s velikostí událostí: odstranění lock_depth kromě toho, že odstranilo (nyní) nesmyslný kus dat, také zmenšilo každou událost o 4 byty. Vždycky je tlak na to omezit režii sledování a omezit velikost dat kopírovaných do uživatelského prostoru je toho součástí; přidat pole kvůli odsazení jde proti tomuto cíli. David Sharp (z Googlu) se přidal a poznamenal, že na velikosti dat jim záleží hodně:
Steve doufal, že odstraní i další společná pole (změna, kterou Google interně již používá); to je teď pasé. Sledovací body jsou podle všeho ABI, přestože informace, které poskytují, v jádře již nedávají smysl.
Zbytek diskuze tvořila hádka mezi Stevem a Ingo Molnárem, kteří chtěli tento problém na někoho hodit a určit, jak věci budou fungovat v budoucnu. Ingo zaútočil na Steva za jeho odpor vůči neměnným sledovacím bodům, obvinil ho, že ftrace spravuje jako fork perfu v jádře (přestože ftrace existovalo dřív) a řekl, že perf musí funkce ftrace převzít:
Také vyhrožoval tím, že přestane od Steva přetahovat změny sledování.
Steve oplátkou obvinil perf z toho, že se přilepil na infrastrukturu ftrace a pak vyexportoval binární struktury ftrace přímo do uživatelského prostoru. Obvinil Inga, že blokuje změny, které mají situaci zlepšit (například vytvoření samostatného adresáře pro stabilní sledovací body, který byl odsouhlasen na Jaderném summitu 2010), a stěžoval si, že Ingo ignoruje jeho pokusy vytvořit sledovací infrastrukturu, která by fungovala pro všechny. Také ještě jednou zmínil obavy, že sledovací body zakované do kamene zpomalí vývoj jádra.
Přes to všechno je Steve ochoten pracovat na sjednocení ftrace a perfu, za předpokladu, že to nebude znamenat zahození ftrace:
Zdá se tedy, že i když mezi vývojáři v této oblasti zjevně panují neshody, měl by zde být prostor pro řešení, které bude fungovat pro všechny. Důraz se zjevně bude čím dál tím více klást na perf, ale i přes Ingovu touhu se bude dál vyvíjet i ftrace. Možná uvidíme snahy tlačit aplikace k tomu, aby používaly knihovny, které je odstíní od změn sledovacích bodů, ale zatím musíme považovat každý sledovací bod přidaný do jádra za součást ABI; vzhledem k tomu by vývojáři měli revidovat nové sledovací body pečlivěji než doteď. Při troše štěstí se osazení Linuxu sledovacími nástroji – které se během posledních let značně zlepšilo – bude zlepšovat i nadále.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Je to dostupné zvenku, tak to lidi používají.Ano, cílem JE, aby to bylo dostupné zvenku. Jenže za nějakých podmínek. Informace, které z jádra nejde nijak vytáhnout, jsou k ničemu.
Zrušit to znamená naštvat uživatele (vývojáře powertop)Dotyčný vývojář něco použil blbě, ergo je to blbec a pokud bude naštvaný, může si za to sám... Jo, kdyby šlo o nějaké ABI ve smyslu strč do jádra tuhle strukturu a někde se změní IP adresa, tak neřeknu ani slovo (a protože se toho jádro drží, ještě pořád funguje ifconfig). Ale když jde na struktury 1:1 spjaté s tím, jak jádro funguje vevenitř, tak to pardon, ale nikdo příčetný nemůže očekávat, že budou stabilní.
sysfs
a následně na základě nich v runtime sestavit strukturu, kterou bude s jádrem komunikovat, to mi přijde slušně řečeno trhlé.Že by měl powertop parsovat nějaký data ze sysfs a následně na základě nich v runtime sestavit strukturu, kterou bude s jádrem komunikovat, to mi přijde slušně řečeno trhlé.Taky to trhlé je, proto existuje lepší řešení. Powertop nepotřebuje všechna pole, která od jádra dostane (příkladem budiž to tgid, které víc než rok neexistuje). Takže ta struktura pro data může být napevno vytvořená už při překladu, při spuštění se proleze ten soubor ze sysfs, zjistí se offsety požadovaných polí a podle nich se načtená binární data ze sledování rozstrkají do té struktury.
Nemůže si prostě powertop naincludovat tu strukturu z nějakého jaderného .h?Tohle je slušně řečeno trhlé. Změníš verzi jádra a přestane ti to fungovat.
bufer[4]+(buffer[5]<<8)+(buffer[6]<<16)+(buffer[7]<<24)
. (plus casty)
Staci teda napsat trivialni knihovnicku, nebo pouzije neco jako libASN1. V cem je teda problem, krome lenosti vyvojare powertopu?
nejaka funkce mu vrati bufer[4]+(buffer[5]<<8)+(buffer[6]<<16)+(buffer[7]<<24)
. (plus casty)
Krása Kedy mozme ockavat statitisku 2,6.39Budeš si muset přečíst originál, s článkem se statistikami je moc práce a není tam moc zajímavého, takže překlad není.