Windows Update przybrał na wadze? Jak rósł rozmiar aktualizacji Windows 10
Kilka lat temu, Microsoft zmienił model dostarczania aktualizacji. Zamiast wydawania oddzielnego pliku dla każdego rozwiązywanego problemu, zadecydowano o agregowaniu ich w jedną, comiesięczną paczkę aktualizacji. Każda następna dawka poprawek miała zawierać wszystkie poprzednie. Zainstalowanie najnowszej paczki docelowo miało skutkować posiadaniem w pełni aktualnego systemu.
21.11.2020 22:59
Decyzja ta wzięła się z powodu bardzo słabej skalowalności mechanizmu pobierania aktualizacji. Gdy ich liczba wzrosła ponad wyobrażenia twórców Windows Update, mechanizm wyszukiwania zaczął szwankować. Windows 7 wyszukiwał pasujące paczki przez godzinę. Windows XP robił to cały dzień. A Vista, w przypadku niefortunnego zestawu zainstalowanych łatek, potrzebowała na ukończenie wyszukiwania ponad dwóch tygodni.
Teraz wyszukiwanie aktualizacji jest ekspresowe, zwłaszcza w Windows 10, który od początku był serwisowany właśnie z wykorzystaniem dużych, kumulatywnych paczek. Jak duże są owe aktualizacje? Zazwyczaj jest to kilkaset megabajtów, ale w przypadku wersji 1607 jest to już ponad 1,6 gigabajta. Czy paczki aktualizacji Windows Update rosną, czy może istnieje pewien podzbiór plików w Windows, który niezmiennie sprawia problemy?
Tyją, ale powoli
Otóż… rosną. Ma to miejsce zarówno w przypadku najstarszych wersji Windows 10, jak i najnowszych. W przypadku najstarszych łatek, można sformułować bezczelne założenie, że "wszystko miało już dziury, więc podmieniają wszystko". Po okresie wysycenia, rozmiary aktualizacji nie powinny znacząco wzrastać, ponieważ zamiast otrzymywać nowe pliki do podmiany, będą podmieniać te, które podmieniały już wcześniej. Tymczasem aktualizacje rosną mimo to. Dlaczego?
Zapewne dlatego, że poprawki wymagają wprowadzenia bardziej przemyślanej implementacji. Przez "bardziej przemyślanej" nie należy tu rozumieć "lepszej". Zaawansowany trik, omijający fuszerkę, zdecydowanie wymaga zmyślności (i miejsca w pamięci). Lepsza implementacja nie zawsze musi być większa od poprzedniej, często bywa inaczej: kurczy się, gdy zrobi się ją porządnie. Zwiększający się rozmiar aktualizacji może wskazywać albo na to, że wreszcie ktoś zaimplementował coś porządnie, albo na to, że liczba miejsc klejonych szarą taśmą w Windows rośnie. Nie mamy możliwości dowiedzieć się, który wariant ma miejsce. Niewątpliwie jednak niektórzy będą się domyślać.
Istnieją też powody niezależne od implementacji. Użycie innego kompilatora także przekłada się na zmiany w rozmiarach binariów. Przebudowanie Windows XP z przełącznikiem GS na potrzeby dodatku Service Pack 2 zmieniło rozmiar nawet tych plików, w których niewiele było do zmiany. Być może Visual C++ także jest aktualizowany w ramach cyklu życia Windows?
Im nowsze, tym cięższe?
Rozmiar łatek dla nowszych wersji powinien rosnąć szybciej niż dla starszych, ponieważ w ich przypadku więcej będzie plików podmienianych pierwszy raz. Sam system ma też więcej składników, więc większa jest liczba miejsc, gdzie mogłyby być dziury. Istotnie, aktualizacje dla wersji 1809, 1903 i 1909 tyją szybciej, niż u poprzedników. Ale ta różnica jest nieznaczna. Bardzo rzadko się zdarza w dodatku, żeby luka była obecna w wersji 1809, ale nie 1607 (są takie przypadki, ale w mniejszości).
Co to oznacza? Przede wszystkim potwierdza to hipotezę, że aktualizacje wysycają się bardzo szybko. Powtarzalne elementy lądują w puli na tyle prędko, że łatki na nowsze wersje Windowsów rosną dramatycznie tylko na początku. Choć więc wersja 20H2 umie więcej, niż 1507, problemy sprawia głównie ten sam podzbiór.
Powyższe wnioski trudno byłoby sformułować, gdyby dla porównania wykorzystać tylko dwie ostatnie wersje Windows. Wydanie 2004 otrzymało bowiem bardzo dużo osobliwości w pierwszych miesiącach od wysłania go w świat. Aktualizacje kumulatywne zawierają bowiem przeglądarkę Edge i nowego, elektronowego Skype'a. Nie można na ich podstawie rozważać o Windows Update, a jedynie o skali upadku platformy UWP.