O stabilności Windows, czyli jak to Microsoft z Niebieskim Ekranem Śmierci walczył

O stabilności Windows, czyli jak to Microsoft z Niebieskim Ekranem Śmierci walczył01.10.2013 14:39

Osoby, które „przesiadły” się z Windows XP na Windows7 i późniejsze wersje „okienek”, na pewno zauważyłyznacząco wyższą stabilność pracy tych systemów. Tak niegdyś częsteniebieskieekrany śmierci stały się zjawiskiem sporadycznym. Co prawdazłośliwi mogą powiedzieć, że w Windows 8 niebieski ekran śmiercizostał zastąpiony niebieskim ekranem śmieci (nawiązując do bałaganu,jaki szybko zaczyna panować na ekranie startowym interfejsu ModernUI), ale nie zmienia to faktu, że Windows stało się naprawdęstabilnym systemem, w desktopowej pracy stabilniejszym nawet odLinuksa. Jak udało się tak odmienić Microsoftowi wizerunek swoichsystemów operacyjnych?Kilka dni temu o pracachzwiązanych z błędami wywołującymi niebieskie ekrany śmierci (BSOD)opowiedzieli badacze z Microsoft Research Lab w Cambridge. Już 10 lattemu wiadomebyło, że zdecydowana większość (nawet 89%) tych kończących pracęsystemu awarii w Windows z jądrem NT wywoływana jest przez sterownikifirm trzecich. Odsetek BSOD-ów generowanych przez inne komponentysystemu był bardzo niski: przykładowo dla jądra, stosu sieciowego czyrejestru wynosił po 2%, a dla systemu plików zaledwie 0,5%. [img=bsod8]Rozwiązanie problemu wynikającegoz niskiej jakości kodu, nad którym nie tylko nie sprawuje się żadnejkontroli, ale też często nie ma się do niego dostępu, nie może byćłatwe. Sprawy nie ułatwiało też to, że liczba sterowników wekosystemie Windows rosła wykładniczo, a wiele z nich wchodziło wzłożone interakcje z innymi sterownikami. Jak stwierdził tymczasemByron Cook, jeden z badaczy Microsoft Research i menedżer grupyProgramming Principles and Tools, wszystkie te elementy muszą działaćw zgodzie z regułami systemu, w przeciwnym wypadku całość ulegnieawarii. Co więc robić? Microsoft poradziłsobie z tym dość pomysłowo. Całą operację rozpoczęto poprzezzbieranie wysyłanych przez użytkowników XP raportów o błędachzwiązanych ze sterownikami i ich kategoryzowanie wg producenta imożliwej przyczyny. Wykryto w ten sposób najbardziej problematycznesterowniki, jak również najbardziej typowe scenariusze, w którychwywoływały one niebieski ekran śmierci. Pierwszym było nieprawidłowewywoływanie przez sterownik funkcji API związanych z komunikacją zjądrem systemu. Drugim, niewłaściwe alokowanie pamięci dla strukturdanych wykorzystywanych przez sterownik, prowadzące do uszkodzeniapamięci. Trzecim zawieszenie systemu przez nieskończoną pętlę wkodzie sterownika.Cook wyjaśnił, że zamiasttestować wszystkie możliwe wypadki, liczbę wywołujących błędysterowników udało się ograniczyć dzięki modelowaniu ich jako systemówformalnych, a następnie automatycznemu dowodzeniu ich poprawności,korzystając z metod matematyki i logiki. W ten sposób powstały trzynarzędzia do automatyzacji procesu wykrywania błędów. Pierwsze znich, Slam, testowało, czy dany fragment oprogramowania poprawniewspółpracuje z wywoływanymi interfejsami systemowymi, drugie, Slayer,analizowało struktury danych powiązanie ze sterownikiem i sprawdzało,czy wykorzystywana przez sterownik pamięć została poprawniezainicjalizowana. Trzecie z narzędzi było jeszczeciekawsze – rozwiązywało w ograniczonym zakresie klasycznyproblemstopu Turinga (w którym chodzi o zbudowanie algorytmu, którybyłby w stanie ocenić, czy dowolny algorytm zakończy swoją pracę dlazadanych na wejściu wartości). Jak wiadomo, problem ten jest ogólnienierozstrzygalny, jednak szczególna natura sterowników sprawia, żemożliwe jest przetestowanie ich pod kątem kończenia pracy. Sterownikibowiem zwykle są małe, nie przekraczają 30 tys. linii kodu, nie mająteż zbyt wielu zagnieżdżonych pętli. Stworzony przez badaczyMicrosoftu Terminator pozwalał na analizowanie sterowników, którychkod nie przekraczał 35 tys. linii, sprawdzając, czy zakończą oneswoją pracę dla wszystkich możliwych danych wejściowych.Efekty wykorzystania tychnarzędzi przekroczyły oczekiwania. Nie tylko znaleziono wiele błędóww sterownikach firm trzecich, ale też i w sterownikach będącychczęścią Windows Driver Development Kit, które często były kopiowaneprzez producentów (wraz z ich usterkami) jako podkładki do utworzeniasterowników dla własnych urządzeń. Automatyczne testy pozwoliły nawykrycie takich nawet błędów, jak zawieszanie Windows XP przezodłączenie myszki w trakcie jej przesuwania (gdy system zapętlał sięw kolejce żądań I/O). Microsoft zdecydował się więc udostępnić jewszystkim producentom sprzętu, w nadziei, że będą w stanie samiodnajdywać błędy w sterownikach.Według Cooka stabilność Windows 7i 8 jest właśnie zasługą tych prac nad sterownikami. W kolejnychlatach udało się wyjaśnić, jakie reguły przy ich pisaniu powinny byćprzestrzegane, ale też jakie właściwości należy analizować woprogramowaniu przed jego wydaniem. Doszliśmy do etapu, w którymniebieski ekran śmierci w ogóle zniknął z Windows 8 – zamiastniego mamy raczej niebieski ekran żalu, pozbawionyniezrozumiałych dla większości użytkowników informacji, zastąpionychprzez smutny komunikat o potrzebie restartu komputera w wyniku błędu.Na pewno jednak widuje się go dziś znacznie rzadziej: jeśli już go spotykamy, to najprawdopodobniej problem dotyczy sprzętu, a nie oprogramowania.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.