Stanislav Aleksandrov předložil patch rozšiřující KWin (KDE Plasma) na 3D virtuální desktopové prostředí (videoukázka v mp4).
Digg (Wikipedie), "místo, kde můžete sdílet a objevovat to nejlepší z internetu – a nejen to", je zpět. Ve veřejné betě.
Po .deb balíčcích Mozilla nově poskytuje také .rpm balíčky Firefoxu Nightly.
Vývojové prostředí IntelliJ IDEA slaví 25. narozeniny (YouTube).
Vedení společnosti NVIDIA údajně povolilo použití milionů knih ze známého 'warez' archivu Anna's Archive k výcviku umělé inteligence, ačkoliv vědělo, že archiv tyto knihy nezískal legální cestou. Žaloba, ve které se objevují i citace interních dokumentů společnosti NVIDIA, tvrdí, že NVIDIA přímo kontaktovala Anna's Archive a požadovala vysokorychlostní přístup k datům knihovny.
Grafický správce balíčků Myrlyn pro SUSE a openSUSE, původně YQPkg, dospěl do stabilní verze 1.0.0. Postaven je nad libzypp a Qt 6. Projekt začal na SUSE Hack Weeku 24.
Vývojáři se podařilo vytvořit patch pro Wine, díky kterému je možné na linuxovém stroji nainstalovat a spustit Adobe Photoshop (testováno s verzemi Photoshopu PS2021 a PS2025). Dalším patchem se podařilo umožnit dokonce instalaci téměř celého Adobe Creative Cloud Collection 2023, vyjma aplikací Adobe XD a Adobe Fresco. Patch řeší kompatibilitu s windowsovými subsystémy MSHTML - jádrem prohlížeče Internet exporer, a MSXML3 - parserem
… více »Hackeři zaútočili na portál veřejných zakázek a vyřadili ho z provozu. Systém, ve kterém musí být ze zákona sdíleny informace o veřejných zakázkách, se ministerstvo pro místní rozvoj (MMR) nyní pokouší co nejdříve zprovoznit. Úřad o tom informoval na svém webu a na sociálních sítích. Portál slouží pro sdílení informací mezi zadavateli a dodavateli veřejných zakázek.
Javascriptová knihovna jQuery (Wikipedie) oslavila 20. narozeniny, John Resig ji představil v lednu 2006 na newyorském BarCampu. Při této příležitosti byla vydána nová major verze 4.0.0.
Singularity je rootkit ve formě jaderného modulu (Linux Kernel Module), s otevřeným zdrojovým kódem dostupným pod licencí MIT. Tento rootkit je určený pro moderní linuxová jádra 6.x a poskytuje své 'komplexní skryté funkce' prostřednictvím hookingu systémových volání pomocí ftrace. Pro nadšence je k dispozici podrobnější popis rootkitu na blogu autora, případně v článku na LWN.net. Projekt je zamýšlen jako pomůcka pro bezpečnostní experty a výzkumníky, takže instalujte pouze na vlastní nebezpečí a raději pouze do vlastních strojů 😉.
Josef Bacik oznamuje, že výchozím souborovým systémem pro Fedoru 16 nakonec zůstane ext4 a plánovaný přechod na btrfs se odkládá. Důvodem je nesplnění předsevzatých kritérií v termínu pro vydání Alpha, především co se týká fungujícího fsck. Z Josefovy zprávy je zjevné, jak ho otravují nejapné narážky, které lidé připisují do bugreportů o btrfs.
Tiskni
Sdílej:
vývojáři si ale stojí za tím že oni implementovali fsync správně a moc lepší už to být nemůže.Lepší to být může a snad i bude. K tomu napsal Josef Bacik:
Fsync _sucks_ for btrfs currently, and it has historically not been a well optimized piece of code. I'm working on fixing this, but it requires VFS level changes that are currently sitting in Al's queue. I suspect they will go into 3.1 and so we can move ahead with our work, but for now, it sucks. [...]
u vícero souborůTen problém ale je i jen u jednoho souboru. Tam opravdu nevidím důvod, proč by nešlo udělat API tak, aby program mohl vytvořit nový soubor a atomickou operací jím nahradit obsah staré verze souboru. Databáze jsou na tohle skutečně overkill...
btrfs by tohle mělo zajištovat by default. Buď je tam konzistentní stará verze (starý poslední zápis), nebo nová. Jenže když do jednoho souboru udělám 3x zápis (které spolu souvisejí) na ruzná místa, tak můžu stále získat nekonzistentní soubor.
Já jen upozorním, že toto všecho se týká stavu po špinavém odpojení fs (pád systému / výpadek napájení). Myslím si, že by se především mělo řešit tohle nečisté odpojení, pak zálohy a až někdy bude čas, tak se hádat o tom, co má přesně zůstat na FS poté, co se všechno pokazí. POSIX tohle neobsahuje.
Jde. fsync.fsync je overkill.
Prosím uložte nám data na disk bezpečně tak, aby jste na disk nic nezapsali a přežilo to výpadek napájení.
Pokud chcete data na disku, musite je tam zapsat. Pokud je tam chcete zapsat, musí k tomu být všechny souvislosti (metadata). Této operaci se říká fsync.
Ano, fsync je pomalý, protože je pomalý disk pod tím.
Já bych jen rád upozornil na to, že pokud někdo nechce čekat na fsync, ale chce ho provést, tak ta data může zapisovat v jiném vlákně. Asynchronní přístup, tuto brutální novinku lidstvo vymyslelo už dávno.
Já bych jen rád upozornil na to, že pokud někdo nechce čekat na fsync, ale chce ho provést, tak ta data může zapisovat v jiném vlákně. Asynchronní přístup,Jenze ten fsync nezpomaluje pouze ten cekajici program, ale system celkove (tim ze vytvari zbytecne pozadavky na diskovy subsystem), zvlaste pak na implementacich, ktere implementuji fsync() vicemene stejne jako sync() (AFAIK pripad ext3/4). Proto je reseni s fsync() v pripadech, kdy neni pozadovano, aby data byla skutecne zapsana na disk, ale je pozadovano jen vhodne relativni usporadani operaci, nevhodny overkill.
Mícháte dva požadavky dohromady: uspořádání za běhu a po resetu. Na první je fsync opravdu zbytečný, protože viditelnost změn pro uživatelský prostor zaručuje dokončení systémového volání. Pokud jde o reset, tak tam si jinak než skutečným zápisem, tedy fsync(), nepomůžete.
Vyvozovat z nějaké implementace, že fsync je pomalý, je celé trapné. Od toho ostatně máme konkurenční souborové systémy. Třeba btrfs, který je ještě pomalejší :)
Vyvozovat z nějaké implementace, že fsync je pomalý, je celé trapné.No, pokud nekdo programuje pro hypoteticky obecny POSIXovy system, pak mu to mozna je jedno, ale to je asi stejne smysluplna cinnost jako programovani pro genericky turinguv stroj. To, jak efektivne program pobezi v realnych podminkach je proste dulezity parametr.
opravdu skutecny zapis nepotrebuji, akorat staci, aby si FS zapamatoval
Pravda. FS to nemusí zapisovat, stačí, když si to zapamatuje.
Toto zajištuje žurnálování. Některé FS (ty "pomalejší" - proč asi) umí ordered (nebo dokonce žurnálování dat). Tam je zajištěno pořadí. Opakuji jen některé a jen při konkrétním nastavení.
Aneb proč řešit věci jednoduše, když to jde složitě, že. Buď si ten zápis, který nutný je, obstrarám sám, nebo (zcela v UNIXovém duchu) o to požádám nějakou knihovnu, která je na to specializovaná.
Jenže souborový systém nemůže čmuchat, které operace to jsou. To ví jen aplikace. A proto tu máme fsync(), kterým aplikace řekne, že aktuální stav daného souboru je onen konzistentní stav.
Ano, máte pravdu, že by jej stačilo považovat za bariéru (na daném i-uzlu) a zápis odložit na později. Jenže problém je, že tím stále nemáte řešenou synchronizaci mezi více (fsyncnutými) soubory. To by se vyřešilo zachováním pořadí fsync() bariér, nicméně to pak rovnou můžeme nasadit UFS (kdyby Linux na něj uměl zapisovat). Jinak problém je to zajímavý a postupné zaváděníní volání f*() a *_at() ukazuje, že o transakce je zájem.
Jenže souborový systém nemůže čmuchat, které operace to jsou. To ví jen aplikace. A proto tu máme fsync(), kterým aplikace řekne, že aktuální stav daného souboru je onen konzistentní stav.Jenze hlavni problem fsync() je v tom, ze dela mnohem vic nez jenom tohle - fsync v prve rade rika, ze se maji flushnout modifikovana data a metadata na disk, coz je principielne draha operace a neco, cemu by se jak uzivatele tak programatori radi vyhnuli. Resenim by bylo zavedenim nejake vyrazne slabsiho volani (nazveme ho treba fbarrier()), ktere by melo vyznam (vhodne definovane) bariery, aniz by vynucovalo vcasnou synchronizaci. No a soucasna situace v Linuxu je zda se takova, ze neni moc zajem zavadet nove syscally (nebot stavajici programy se moc nenamahaji je nasadit) a spis tyhle situace vyresit zavedenim vhodnych idiomu (ktere uz stavajici aplikace vice-mene vyuzivaji), kterym by rozumelo stejne jak jadro tak programy.
Resenim by bylo zavedenim nejake vyrazne slabsiho volani (nazveme ho treba fbarrier()), ktere by melo vyznam (vhodne definovane) bariery, aniz by vynucovalo vcasnou synchronizaci.
Řešením by bylo, kdyby se pro daný problém používaly věci pro to určené na místo změny věcí, které by měly být stabilní. Řešení existuje. Chtít změnit jádro pro případ, který si userspace aplikace může velice dobře a levně ošetřit sama či s pomocí dobře známých knihoven, není nejlepší způsob řešení.
Zkrátka chcete po souborovém systému něco, na co nebyl navržen.Ano a to je špatně, protože potřeba požadavek na atomické přepsání souboru novým obsahem je tak elementární záležitostí, že by na to prostě nějaké API existovat mělo.
Reagoval jsem na:
aby program mohl vytvořit nový soubor a atomickou operací jím nahradit obsah staré verze souboru
A to rename() splňuje z definice. Pokud tomu tak není, pak se nejedná o posixový souborový systém a je to problém uživatele (asi jako by použil VFAT a divil se, že nemá symlinky).
Pokud se řeší obsah po resetu, tak stačí zavolat fsync(), protože ten (alespoň na Linuxu) zaručuje zápis i metadat (rozdíl proti fdatasync()).
Jinak řečeno se nejedná o shodu náhod
, ale o jasně definovanou vlastnost.
Co se řešilo v ext*, bylo, že někdo raději rychlejší systém, a tak výše uvedenou definici ignoroval (distributor vypnul ordered režim), což mělo za následek, že se ozvali lidi, kterým tato „optimalize“ rozbila systém, a tak se hledal kompromis, což vyústilo v heuristiku při neordered režimu.
echo "content" > file.tmp mv file.tmp file # *crash*
will most likely give you a zero-length "file".pak je něco špatně...