Article View: pl.comp.os.advocacy
Article #483911Re: Windows 7 się aktualizuje.
From: toslaw
Date: Wed, 27 Nov 2013 04:59
Date: Wed, 27 Nov 2013 04:59
41 lines
3719 bytes
3719 bytes
Marek <fake@fakeemail.com>: > On Tue, 26 Nov 2013 08:47:34 +0000 (UTC), toslaw <sorry@nomail.4u.pl> > wrote: > > Plus, istnieją też dodatkowe opcje update'owania aktualnie używanych > > plików systemowych o nazwie hot-patching. Polega to na modyfikowaniu > > początków eksportowanych funkcji przez biblioteki systemowe tak, aby > > skakały do nowych wersji funkcji, omijając stare, do pierwszego restartu. > > Dopiero po restarcie pliki są podmieniane, całkowicie usuwając stare > > wersje funkcji. W oczywisty sposób to wymaga synchronizacji z resztą części > > w systemie, wpływając na dodatkowe opóźnienie. > > To jest jakiś absurd. Rozwiązanie, które od razu by design wymaga > restartu. 20 lat developingu i ciągle mają w tym MS jakas fixacje na > punkcie tych restartów. A unixach wystarczy aby proces upate'u zrobil > unlink lib.so a nastepnie cp newlib.so lib.so. Procesy uruchomione i > zlinkowane z lib.so (starą wersją) będą nadal działać ze starą lib > (unlink nie usunie fizycznie z dysku otwartej lib przez inny proces, > plik znika tylko z dirlist) a nowo ładowane procesy już będą > zlinkowane z nowa wersją lib.so. Stare procesy/usługi wystarczy > zrestartować aby skorzystały już z nowych funkcji lib.so. > I nie ma potrzeby restartowania systemu. Rozwiązanie proste i > genialne w swojej prostocie, bo wykorzystuje natywne mechanizmy > dostępu do fs. Chodzi chyba właśnie o to, aby wprowadzić nowe wersje funkcji BEZ konieczności restartu? ;) Z kolei restart jest spowodowany tym, że Windows "by design" lockuje pliki po otwarciu. Nie wiem czym z kolei jest to spowodowane, ale być może tym, że pliki wykonywalne PE w Windowsie posiadają dość popularną sekcję z zasobami, w których znajdują się dane binarne wykorzystywane w programie, podzielone na kategorie językowe. Program po uruchomieniu często doczytuje potrzebne informacje z pliku wykonywalnego w miarę jego działania, a sam windows nie ładuje tej sekcji do pamięci. Przy podmianie tego pliku na nową wersję, nie byłoby możliwości załadowania/sprawdzenia starych zasobów. Może dlatego decyzja została podjęta, aby uniemożliwić usuwanie/modyfikację pliku ;) Z kolei w ELFach na UNIXach ewentualne zasoby kompilowane są w postaci zmiennych bezpośrednio w programie, więc są teoretycznie częścią sekcji danych kodu. Są ładowane od razu ze wszystkim do pamięci i na chwilę działania programu plik wykonywalny jest zbędny, aż do czasu zamknięcia programu.
Technical Details
Message-ID:
<l73u81$4cm$1@dont-email.me>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mailReferences:
<l6t74c$oi6$1@node2.news.atman.pl> <l6tidi$an9$1@dont-email.me> <l6toe4$apj$1@node2.news.atman.pl> <l71n76$vu8$1@dont-email.me> <almarsoft.6640777945790376198@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: toslaw <sorry@nomail.4u.pl> Newsgroups: pl.comp.os.advocacy Subject: Re: Windows 7 się aktualizuje. Date: Wed, 27 Nov 2013 04:59:45 +0000 (UTC) Organization: A noiseless patient Spider Lines: 41 Message-ID: <l73u81$4cm$1@dont-email.me> References: <l6t74c$oi6$1@node2.news.atman.pl> <l6tidi$an9$1@dont-email.me> <l6toe4$apj$1@node2.news.atman.pl> <l71n76$vu8$1@dont-email.me> <almarsoft.6640777945790376198@news.neostrada.pl> Mime-Version: 1.0 Injection-Date: Wed, 27 Nov 2013 04:59:45 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="dee8a23a3079bab6ac237103cf6efd4e"; logging-data="4502"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1979o5X+E6vvDgsmVjj9ww8EPocpsL3Woo=" User-Agent: slrn/1.0.1 (Linux) Cancel-Lock: sha1:F0w9DCD4cqa9wMepXjlh28q7h/E= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit