Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Aktuální verze jádra řady 2.6 je 2.6.17.7, vydaná 24. července. Doplňuje poměrně dlouhou řadu oprav pro problémy se síťováním, zvukem a několika dalšími oblastmi.
Aktuální předverze je i nadále 2.6.18-rc2. V hlavním git repozitáři se hromadí opravy a brzy lze očekávat vydání -rc3.
Od 2.6.18-rc1-mm2 ze 14. července nevyšla žádná nová verze stromu -mm.
Problémem Linuxu je, že jeho úspěch k němu přivádí lidi schopnější než ty, se kterými se začínalo, a nedaří se mu s tím vypořádat. Je v tom přímo mizerný, protože se chová nejhorším možným způsobem. Ztratili jsme docela dost vývojářů souborových systémů, protože se prostě nechtěli dohadovat s lidmi, kteří toho ví méně než oni, ale na nové návrhy se tváří otráveně a chovají se nezdvořile, protože chtějí být bossové.
-- Hans Reiser
Když Van Jacobson nadhodil v lednu minulého roku na linux.conf.au svou představu o síťových kanálech, způsobil v linuxové síťové komunitě pořádný rozruch. Pomocí výrazných změn způsobu zpracovávání příchozích paketů a natlačením většiny práce co nejblíže k cílové aplikaci dosáhl Van velkého zlepšení výkonu - odstranil až 80 % režie na víceprocesorových systémech. S takovými čísly to vypadalo, že o začlenění kanálů do Linuxu je už dopředu rozhodnuto.
Od té doby se však začala o slovo hlásit realita - to ona dělává, dříve či později. Proto také David Miller posledně říkal o síťových kanálech tohle:
Na síťové kanály od VJ nebuďte příliš natěšení, protože se objevuje stále více a více překážek bránících jejich nasazení v praxi... Všechen výkon původně ušetřený na úkor routování, netfilteru a vyhledávání TCP soketu se nám ztrácí, když se snažíme přimět síťové kanály k fungování na skutečných systémech.
Daný problém se týká integrace síťových kanálů a netfilteru. Doufalo se, že by pakety mohly být identifikovány a roztříděny do příslušných kanálů ještě před zpracováváním netfilterem (firewallem). Pak by to zpracovávání mohlo být provedeno blízko aplikaci, na tom samém procesoru. Ukázalo se však, že netfilter může změnit skutečný cíl paketu. Takže je nutné pakety filtrovat před vstupem do kanálu a většina výkonu získaného díky použití kanálu je ztracena.
Alexej Kuzněcov poslal podrobnou kritiku kanálů, ve které tvrdí, že většina výhod je iluzorních:
Je to úžasná hračka. Ale nevidím nic, co by ji mohlo pozvednout na praktickou úroveň. Exokernely tohle dělaly léta a veškerý získaný výkon je vyrovnán příliš komplikovaným klasifikačním enginem, který musí zůstat v jádře a dělat v podstatě totéž, co dělá routování/firewall/...
Kromě toho se zdá, že mnoha výhod, které nabízejí kanály, lze dosáhnout pečlivým využitím možností moderního hardwaru. Konkrétně jde o to, že stále větší počet zařízení dokáže provádět jednoduchou klasifikaci paketů a směrovat je na procesor (přes cílená přerušení), kde běží cílová aplikace. Tato technika eliminuje přehmaty keše způsobované zpracováváním přerušení na jednom procesoru a protokolu na druhém.
Vypadá to, že další zdánlivě chytrý nápad se nedostane do reálného nasazení. Některé z jeho základních konceptů, jako například datové struktury spolupracující s kešemi však pravděpodobně ovlivní budoucí směr síťového stacku. Takže ačkoliv asi nebude revoluční nový mechanismus, některá slibovaná zlepšení výkonu by přeci jen měla být realizována. A jak říká David: Aspoň není potřeba psát tolik kódu.
V některých variantách Unixu je systémové volání revoke():
int revoke(const char *path);
Toto volání slouží k odpojení procesů od souborů; když je zavoláno s určitou path, uzavře všechny otevřené popisovače souborů, které odkazují na soubor nacházející se na konci této cesty [path]. Původním účelem bylo zbavit se lidí, kteří napsali program sedící na sériovém portu a předstírající, že je login. Jakmile bylo revoke() zavoláno se souborem zařízení odpovídajícím sériovému portu, všechny falešné loginy byly odpojeny a nemohly nikoho oklamat. Existují i jiná možná využití. Například odpojení procesu od souboru, který brání odpojení souborového systému.
Linux toto systémové volání nikdy neměl, ale možná nebude trvat dlouho a dojde ke změně; Pekka Enberg poslal implementaci revoke() ke kontrole. Pekka také přidal druhou verzi:
int frevoke(int fd);
Tato verze bere samozřejmě jako parametr otevřený popisovač souboru. V obou případech musí volající proces buď soubor vlastnit, nebo být schopen přebít práva. Takže revoke() umožňuje procesu vyškubnout otevřený soubor procesům, které vlastní jiní uživatelé - za předpokladu, že proces daný soubor vlastní.
Zvládnout tuto operaci správně není tak docela snadné, což má za následek určité kompromisy v současné implementaci, které se možná nebudou některým vývojářům líbit. Zjednodušeně ten proces vypadá takto:
Kód prochází ve smyčce přes každý proces v systému; u každého procesu projde tabulkou otevřených souborů a hledá popisovače souborů odpovídající zavíranému souboru. Pokaždé, když nějaký najde, vynuluje záznam popisovače (čímž se popisovač stane pro původního majitele nedostupným). Soubor však není uzavřen; místo toho je vytvořen seznam souborů pro pozdější akci.
To vše je poměrně pomalé, ale problém to není: revoke() není operace, která by ovlivňovala výkon. Trochu problematičtější je alokace paměti (pro přidání záznamu do seznamu souborů k uzavření); selže-li, ukončí se revoke() na půli cesty, přičemž provedlo neznámé množství škod, aniž by splnilo svůj účel.
Zůstává jeden malý nepříjemný problém: některé procesy možná využily mmap() k namapování souboru do svých adresných prostorů. Volání revoke() musí s těmito oblastmi paměti něco udělat, nebo jeho práce nebude dokončena. Takže je nutné projít všechny oblasti virtuální paměti spojené se souborem; u každé je metoda nopage() nastavena na speciální verzi, která vrátí chybový stav.
Tato změna zabrání procesu v chybném běhu na nových stránkách z uzavřeného souboru, ale neudělá nic se stránkami, které už jsou součástí adresného prostoru procesu. Pro nápravu je potřeba prolézt tabulky stránek každého procesu, který soubor namapoval, a vyčistit všechny záznamy, které odkazují na stránky z daného souboru.
Alternativní přístup používá patch pro nucené odpojení od Tigrana Aivaziana, který byl během své dost dlouhé historie (komentáře k němu obsahují jméno autora portu na jádro 2.6) upravován i mnoha jinými vývojáři. Patch má jiný cíl - být schopen odpojit souborový systém bez ohledu na aktuální činnosti. Musí však vyřešit stejný problém - uzavření přístupu ke všem souborům na cílovém souborovém systému. Místo vyčištění popisovačů souborů nahrazuje tento patch výchozí strukturu file novou, která pochází ze souborového systému "badfs". Po této změně budou na pokusy o práci se souborem vraceny EIO. Mapování paměti je odstraněno přímým voláním munmap().
Konečná podoba patche by klidně mohla být kombinací obou a poskytovala by jak nucené odpojení, tak revoke(). Do té doby bude nutné vyřešit několik zbývajících otázek (například jak provést bezpečné uzamčení bez zpomalení vysoce optimalizovaných read() a write()). O tyto funkce je však zjevně zájem, takže je pravděpodobné, že práce dospěje až k začlenění do jádra.
Následující obsah je © KernelTrap
24. črc, originál
Na LKML pokračuje diskuze o tom, proč nebyl Reiser4 dosud začleněn do jádra. Hans Reiser postavil do kontrastu snahy o začlenění Reiser4 a nedávnou diskuzi o novém souborovém systému ext4. Ten kód není ještě ani napsán nebo testován, ale do jádra jde rovnou, aby se jeho vývojáři nemuseli starat o udržování patchů mimo hlavní strom. No ne. Tak trochu těžko vyvracet, že nejde o politikaření, co?
Theodore T'so odpověděl: Jde o vývojovou proceduru, které bylo dosaženo po diskuzi a hledání kompromisu na LKML a mezi vývojáři ext2/3/4. Není to původní plán, který navrhovali vývojáři ext2, ale když jsme naslouchali obavám a návrhům, nepochybovali jsme o motivech těch lidí, kteří s návrhy přicházeli; naslouchali jsme. Pokračoval poznámkou o tom, že části kódu, ze kterého bude ext4, byly napsány už před rokem, a byly důkladně testovány a kontrolovány. Další připomněli, že evoluce z ext3 na ext4 bude velmi veřejný proces, přičemž patche budou začleňovány postupně, kdežto Reiser4 je založen na úplně jiném kódu než Reiser3.
26. črc, originál
Nedávný patch poslaný do LKML obsahoval následující popis: Tento patch přidává mapování paměti efi na e820. Andrew Morton reagoval: Proč? Linus Torvalds nabídl svůj pohled na EFI (Extensible Firmware Interface - rozšiřitelné firmwarové rozhraní), který uvedl slovy: Další dementní věc od Intelu (první bylo ACPI). EFI je náhradou BIOSu, která byla původně navržena pro použití na architektuře ia64, ale od té doby ji přijaly i jiné počítače, včetně intelských Maců. Linus pokračoval ve vysvětlování: Původní EFI kód v jádře v podstatě duplikuje všechna rozhraní BIOSu (tj. vše, co se dotýká mapování paměti, máme ve dvou variantách: normální, otestovaná verze pro e820 BIOS a většinou nefunkční, splácaná verze EFI). Překládat paměťovou mapu EFI do e820 je tedy velmi rozumné.
Linus pokračoval v dalším emailu: Abych se vyjádřil jasně - problém s EFI je ten, že na povrchu vypadá o hodně lépe než BIOS, ale v praxi se z toho stává jedna z těch věcí, které mají jen pár skutečných výhod a často jen přidávají spoustu komplikovanosti, protože ta 'nová a vylepšená' rozhraní byla z většiny vymyšlena komisí. A pokračoval: Takže EFI má bezvadný shell, systém pro natahování ovladačů a další pěkné funkce. Kde "pěkné" samozřejmě znamená "daleko komplikovanější než v sedmdesátých letech, když byli lidi ještě blbí a jen chtěli, aby věci fungovaly". Je samozřejmě otázkou, jestli lidi za posledních 30 let zmoudřeli nebo zblbli. Není to dost času na to, abychom měli díky evoluci větší mozky, ale určitě to stačilo na to, aby většina lidí přestala rozumět tomu, jak vlastně hardware funguje. A co se BIOSu týče: Nikdy bych netvrdil, že BIOS je úžasný, ale každý aspoň ví, že je to jen zavaděč systému, a nikdo se z něj nesnaží udělat něco jiného.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
A kdyz rozdejcha tak nebude delat to co mel, protoze kdyby ten soubor nebyl nepotreboval tak by ho nejspis vubec neoteviral.To, čo píšete, sa týka len jednoduchých aplikácií, ktoré manipulujú s jedným súborom. Pri takých je to naozaj to isté, ako ich zabitie. Ale pri komplexnejších aplikáciách, ktoré pracujú s viacerými súbormi, ako napríklad textový editor, kde máte niekoľko okien, je jeho zabitie a odobratie descriptoru už niečo úplne iné. Samozrejme, že aplikácia sa s tým bude musieť vedieť vysporiadať, ale to nie je taký strašný problém. A existuje určite ešte veľa prípadov, ktoré nás zrejme ani nenapadnú. Navyše, používať to nemusíte, ak nechcete a nijako vás vývoj tohto riešenia nepoškodzuje.
XFS ma prece zurnal, takze by stejne jako u reiseru 3 vypadek napajeni nemel vubec vadit, ne?
Představa, že žurnálovací filesystém vás ochrání před ztrátou dat při nekorektním ukončení systému, je hojně rozšířeným omylem. Žurnálovací filesystém vám pouze poté, co se tak stane, umožní velmi rychle uvést filesystém do konzistentního stavu, aniž byste musel dlouho (třeba i desítky minut) čekat, až proběhne jeho kompletní kontrola.
1 a -1 su opacne cisla. toto sa uci aj na zakladnej skole a kazdy tomu chape (pokial neberiem do uvahy teba)Ešte raz, pojem opačný prvok (alebo negácia) je väčšinou definovaný len pre dvojprvkové množiny, typicky pre hodnoty pravda nepravda, prípadne, v teórii množín, je negácia (alebo komplement) množiny definovaný, ako prvky v nadmnožine, ktoré do nej nepatria. Ale ťahať tieto pojmy do množiny odpovedí na otázku, prípadne do množiny celých čísel (ten príklad som použil naschvál, aby som sa uistil, že či tomu naozaj nerozumieš, alebo sa tak len tváriš), tak to sa robí len na tej zákldnej.
rovnako rychle to nikdy nebude, to pochopi aj sedliak. aby to bolo rovnako rychle museli by vsetky nadbytocne operacie trvat... nic.Mohlo by to byť asymptoticky rovnako rýchle, nadbytočné operácie by mohli trvať O(1), takže v praxi by to bolo to isté, to pochopí aj sedliak, máš úplnú pravdu. Ale že sa to spomalí výrazne, to už vôbec zrejmé nie je.
nehovoril som o negacii ale o opaku. su to ANTONYMA. slova negovat nemozes, ich zmysel MOZES.Opak je negácia, ale o tom potom. Podstatné je, že si použil jazykovú operáciu pri logickej debate. Tu si nemôžeš len tak obracať pojmy, ako sa ti zachce. Treba si uvedomiť, že "nie pomalý", znamená aj "bežný" a ja si mylím, že ak by si si toto uvedomil, tak by si ten hlúpy vtip nemohol napísať.
to o kolko sa to spomali zavisi od implementacie a HW obmedzeni. tak mas nejake porovnanie s inymi FS? neviem ako ty, ale ja by som to vyrazne spomalenie cakal (relativne-na velmi rychlom mediu by to mohlo byt nepostrehnutelne, ale rovnako vyrazne), kedze sa data zapisuju najprv do zurnalu a potom normalne.Vidíš? Už o tom diskutuješ. Ak by to bolo také triviálne, tak by si o tom nediskutoval. Zostáva tu proste fakt, že to závisí od implementácie a tá môže byť pokojne rýchla.
a ako by si to prelozil? to slovo to uplne vystihuje a mylim, ze jeho chapanie by ti nemalo robit problemy (ved mas google a wiki).Kde som napísal, že neviem, čo znamená bottleneck? Vidím, že ti úplne ušla pointa, čo už.
ked nedokazes pochopit, ze tvoj disk sa ti pouzitim uplneho zurnalu 2x nezrychli, tak to je koniec. dakujem.Ešte raz, ja tvrdím, že by to mohlo ísť rýchlejšie ako dvakrát pomalšie, až na úroveň normálnej operácie (to znamená s vypnutým žurnálom). Teda, ak ti to mám napísať inak, rýchlosť bude k*v (kde, k je konštanta a v rýchlosť za bežného behu). Ty tvrdíš, že k bude vždy na úrovni ½. Ja tvrdím, že to je medzi ½ a 1. Ak ti ešte nedošlo, že toto je to, o čom hovorím, tak je to naozaj koniec. A ak nájdeš jediný príspevok, kde tvrdím, že sa to dvakrát zrýchli (samozrejme oproti normálnemu stavu, nie oproti spomalenému, ale takto hlúpo si to dúfam nemyslel?), máš u mňa pivo
si to doplietol. tu konstantu mas zle. 1/2 by bolo zrychlenie oproti normalnemu (1).Aha, takže ak bežím 4 m/s, tak 4 * ½ m/s = 2 m/s je zrýchlenie behu. No už aspoň vidím, s kým mám tu česť. Potom niet divu, že ti uniká pointa, ak nerozumieš jednoduchej operácii násobenia.
a je to od teba pekne, ale na normalnom disku nemas sancu, aby bolo k=1 alebo aspon priblizne. chapeme? a poprosim dokazy, o sci-fi implementaciach sa tu nebudem bavit.Ako som už povedal, nemám chuť počúvať argumenty typu "nemáš sancu" od niekoho, kto o tom nič nevie. Hm, a ak sa ti bude zdať, že ti neodpovedám niekde, kde ma explicitne vyzývaš na odpoveď a/alebo provokuješ, tak je to tým, že ťa blokujem, bude to tak lepšie pre všetkých
a antonymum som pouzil, aby som zdoraznil, ze uplny zurnalovaci fs ma vzdy rychlostnu penalizaciu. evidentne si nepochopil zmysel alebo si sa naschval zacal hadat.Áno, toto je podstata. Pretože tá rýchlostná penalizácia je síce zrejmá (je tam réžia navyše), ale nie je zrejmé, že to musí byť nutne aj badateľné v praxi (asymptoticky pomalšie). A o to mi ide celý čas, že ty si predpokladal, že to zrejmé je.
ext3 s plnym journalovanim podaval v urcitych situaciach vyssi vykonby ma zaujimalo v akych. ale celkovo urcite nie. pri syncovani fs sa to vynahradi.
Textové editory a další uživatelské aplikace by při ukládání souboru měly dělat to, že ho uloží do souborufile.tmp
, pak provedoufsync()
a pak udělajírename()
přes původní soubor
Autorům aplikací, které se takto chovají, bych nejraději nafackoval. Je moc příjemné editovat soubor, který mám nalinkovaný do deseti adresářů, a po čase zjistit, že se mi jednotlivé verze "rozjely", protože autor editoru se zařídil podle vaší rady…
Asi takhle. Kdyz je vypadek a poskodi se data na FS, tak reiser a ext3 a v podstate jakykoli jiny fs pri obnove poskozenych dat data zpristupni. Ty data muzou vypadat na prvni pohled bezproblemova(proste tam jsou a co?), ale mohla se poskodit treba cast s pristupovymi pravy a k datum pak bude mit pristum kdokoli (pozn. tohle se mi opravdu stalo). XFS AFAIK takovahle data obvykle prepise nulami.
A taky jde o agresivni cachovani prace s diskem u XFS. Takze se muze stat, ze data, o kterych si clovek mysli, ze jsou davno ulozena jsou porad jeste nezapsana v cache.
Nezarucuji bezchybnost vyse psaneho textu.
XFS mne také zklamal nebyl sice nepoužitelný jako Reiser, ale traverzace trvala 7sXFS na malý soubory není stavěnej...
Čekal bych, že si reiser poradí s mnoha soubory líp.
Možná je problém v tom, co znamená výraz mnoho. Kdysi jsem s tím experimentoval a při 20000 souborech s relativně krátkými názvy v jednom adresáři neměl ext2/ext3 výraznější problémy a dokonce snad byl i o něco rychlejší než ReiserFS. Otáčet se to začalo až někde nad 50000.