Při těhle eskapádách si vždy vzomenu na https://www.forbes.com/sites/gordonkelly/2015/05/08/microsoft-windows-10-last-windows/ jeho deklaraci, že Windows 10 je poslední jejich systém a dál bude už jen rolling update, tak to zase nevyšlo.
Používat Windows je za trest. Nevtipnější poslední dobou jsou ty neustálé restarty při práci, kterým reálně není možné rozumně zabránit. Takové desítky let vývoj a nevyřešili jednu z nejpalčivějších věcí, jak se bezpečně aktualizovat na pozadí nebo se vrátit k práci, která je rozpracovaná.
"Takové desítky let vývoj a nevyřešili jednu z nejpalčivějších věcí, jak se bezpečně aktualizovat na pozadí nebo se vrátit k práci, která je rozpracovaná."
Myslím, že jde o nepochopení konceptu používání MS Windows. Ten systém tu není pro uživatele, ale uživatel se má přizpůsobit vlastnostem MS Windows. Jestli má rozdělanou nějakou práci, to je úplně vedlejší a nepodstatné. Důležité je, aby se uživatel nějak zabavil a nemusí to být nutně práce, kterou měl v úmyslu dělat. Trvalo mi, než jsem tento princip pochopil :-)
Když se takový systém prosadí ve školách, ve státní správě a ve firmách, tak je úplně jedno, jestli je uživatelům příjemný nebo ne. Ale aby trochu zpříjemnili uživateli práci, posílají mu hezké obrázky na pozadí. Naštěstí se to dá vypnout :-)
> Používat Windows je za trest. Nevtipnější poslední dobou jsou ty neustálé restarty při práci, kterým reálně není možné rozumně zabránit. Takové desítky let vývoj a nevyřešili jednu z nejpalčivějších věcí, jak se bezpečně aktualizovat na pozadí nebo se vrátit k práci, která je rozpracovaná.
Tak ten velký update Windows s restartem je typicky jednou za měsíc, ale samozřejmě u aplikací se to dost liší podle toho jestli mají nějaký vlastní elegantnější aktualizační mechanismus (jako Omaha), nebo tam třeba nějaké MDM na pozadí cpe kompletní MSIčka nebo instalátory.
Jinak ten největší problém byl historicky v tom, že narozdíl od POSIXových systému Windows zamknou soubor, pokud je otevřený v jiném procesu. Není tam unlink. Takže nejde úplně vyměnit za jízdy nějakou binárku, knihovnu a pak restartovat aplikaci, kdy se to hodí - jako se běžně používá na Linuxu.
Do Windows to přidali (nejspíš kvůli WSL1, kdy prostě neměli jak jinak namapovat volání unlink()):
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_file_disposition_information_ex
Ale z nějakého důvodu se tohle pořád nepoužívá pro aktualizace aplikací, nebo o tom alespoň nevím.. (možná to používá malware, jestli se chce načíst do paměti a uklidit po sobě stopy :)).
Naopak, jednou za čas použít Windows je přípomínka uživateli, že to, od čeho utekl, je stále stejný [cenzurováno], a tudíž jeho rozhodnutí odejít jinam (BSD, Linux, macOS, cokoliv) bylo a stále je správné. To se pak po chvilkovém použití Windows v člověku rozlije takový blažený pocit… že už je nemusí používat jako hlavní pracovní nástroj…
Návrat k rozpracované práci řeší Application Recovery and Restart APIs. Aplikace je ale musí sama používat. V tom se situace zlepšuje, a ve Windows 11 už podporuje ARA i nový Notepad.
https://learn.microsoft.com/en-us/windows/win32/recovery/registering-for-application-restart
Uživatelé Linuxu si často myslí, že je možné prostě přepsat soubor za běhu, s tím že aplikace používá starou verzi souboru, a po restartu použije novou. Ve skutečnosti to není řešení, protože to vede ke spoustě problémů. Máte binárku, tu nahradíte, ale běží vám dál stará binárka. Snadno můžete dojít do stavu, kdy máte více instancí jedné binárky, ale některé staré a jiné nové. Nebo nahradíte binárku, knihovny a resources, ale binárka dál běží stará. Stará běžící binárka může s klidem natáhnout nové knihovny nebo resources. Zkuste si třeba aktualizovat web view, na kterém právě jede několik aplikací, a další aplikace budou startovat. Je to jako strkat použité sirky zpátky do krabičky: nemusí to mít nezbytně vliv na funkci, ale nespoléhal bych na to.
"Je to jako strkat použité sirky zpátky do krabičky: nemusí to mít nezbytně vliv na funkci, ale nespoléhal bych na to."
Pro mne, jakožto sprostého uživatele je podstatné, že se nemůžu spolehnout na systém Windows, že když nechám běžet nějaký program nebo systém uspím, že ho pak najdu v takovém stavu, jako jsem ho opustil. Pokud si jen hraju, tak mi to nevadí a beru to jako příjemné rozptýlení, ale na nějakou serióznější práci to není.
Já snad jenom zkopíruji, co tu psal někdo jiný: "řízení chování patchování včetně okamžiku restartu se dělá skrze GPO či LGPO (tzn. bez Active Directory), stačí se zajímat". A dodám, že uživatelé nemají problém nechat systém i aplikace běžet dlouhé měsíce s aplikovanými opravami, ale bez restartu, takže se ty opravy jaksi neprojeví. Rizika jsou snad zjevná.
"stačí se zajímat"
Souhlasím. Ale někdy to zajímání se zabere příliš času na úkor práce, kterou chce dotyčný dělat.
"A dodám, že uživatelé nemají problém nechat systém i aplikace běžet dlouhé měsíce s aplikovanými opravami, ale bez restartu, takže se ty opravy jaksi neprojeví."
Obecně: Může to být tím, že používají systém nevhodný pro jejich činnost. Z nějakého důvodu si nemohou dovolit systém restartovat, tak by měli používat takový systém, který restartovat nemusí. Nejspíš jsou něčím nuceni ten nevhodný systém používat. Třeba jim ho koupil zaměstnavatel nebo používaná aplikace pro jiný systém není, což také není dobře, ale stává se to.
Otevřít lokální GPO a nastavit si chování aktualizací zabere příliš času? :) Takový argument vždy překvapí u uživatelů Linuxu, kteří se ochotně naučili stovky příkazů a jejich syntaxe, lokaci a obsah spousty konfiguráků, ovládání vi s "neviditelnými" režimy přes hjkl esc, skriptování v bashi, regexy, Perl a nevím co ještě.
Obecně pokud něco patchujete, tak to vyžaduje restart dané věci a všeho nad tím. Existují jisté výjimky, například hot patching, ale ani to není vždy řešení.
Když jsme u technologie. Linkoval jsem API, které aplikacím ve Windows umožní registrovat se k obnově stavu po pádu nebo rebootu. Zahrnuje to věci jako notifikaci aplikace aby si uložila stav a ukončila se kvůli aplikaci patche nebo rebootu OS. Jak se tyhle věci řeší na Linuxu? Existuje nějaké API, které mohou aplikace v podobných situacích použít? Jak například package manager řekne desktopové aplikaci, aby si před aktualizací uložila stav, a jak ji poté restartuje?
https://learn.microsoft.com/en-us/windows/win32/recovery/registering-for-application-recovery
Nevtipnější poslední dobou jsou ty neustálé restarty při práci, kterým reálně není možné rozumně zabránit.
řízení chování patchování včetně okamžiku restartu se dělá skrze GPO či LGPO (tzn. bez Active Directory), stačí se zajímat. jak by to asi jinak fungovalo ve firmách kde mají desítky až desetitisíce zařízení, kdyby se jim restartovaly podle vašeho "zcela náhodně".
pokud tedy nekonfigurujete, řídí patchování a restarty Microsoft, pokud konfigurujete, patchuje se a restartuje, kdy chcete vy.