Odpowiedz

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

 
Portator
Redaktor

Liczba postów: 10.980
Post: #1
Information 

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


Osoby, które „przesiadły” się z Windows XP na Windows 7 i późniejsze wersje „okienek”, na pewno zauważyły znacząco wyższą stabilność pracy tych systemów. Tak niegdyś częste niebieskie ekrany śmierci stały się zjawiskiem sporadycznym. Co prawda złośliwi mogą powiedzieć, że w Windows 8 niebieski ekran śmierci został zastąpiony niebieskim ekranem śmieci (nawiązując do bałaganu, jaki szybko zaczyna panować na ekranie startowym interfejsu Modern UI), ale nie zmienia to faktu, że Windows stało się naprawdę stabilnym systemem, w desktopowej pracy stabilniejszym nawet od Linuksa. Jak udało się tak odmienić Microsoftowi wizerunek swoich systemów operacyjnych?

Kilka dni temu o pracach związanych z błędami wywołującymi niebieskie ekrany śmierci (BSOD) opowiedzieli badacze z Microsoft Research Lab w Cambridge. Już 10 lat temu wiadome było, że zdecydowana większość (nawet 89%) tych kończących pracę systemu awarii w Windows z jądrem NT wywoływana jest przez sterowniki firm trzecich. Odsetek BSOD-ów generowanych przez inne komponenty systemu był bardzo niski: przykładowo dla jądra, stosu sieciowego czy rejestru wynosił po 2%, a dla systemu plików zaledwie 0,5%.
O stabilności Windows, czyli jak to Microsoft z Niebieskim Ekranem Śmierci walczył
Rozwiązanie problemu wynikającego z niskiej jakości kodu, nad którym nie tylko nie sprawuje się żadnej kontroli, 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 w ekosystemie Windows rosła wykładniczo, a wiele z nich wchodziło w złożone interakcje z innymi sterownikami. Jak stwierdził tymczasem Byron Cook, jeden z badaczy Microsoft Research i menedżer grupy Programming Principles and Tools, wszystkie te elementy muszą działać w zgodzie z regułami systemu, w przeciwnym wypadku całość ulegnie awarii.

Co więc robić? Microsoft poradził sobie z tym dość pomysłowo. Całą operację rozpoczęto poprzez zbieranie


wysyłanych przez użytkowników XP raportów o błędach związanych ze sterownikami i ich kategoryzowanie wg producenta i możliwej przyczyny. Wykryto w ten sposób najbardziej problematyczne sterowniki, jak również najbardziej typowe scenariusze, w których wywoływały one niebieski ekran śmierci. Pierwszym było nieprawidłowe wywoływanie przez sterownik funkcji API związanych z komunikacją z jądrem systemu. Drugim, niewłaściwe alokowanie pamięci dla struktur danych wykorzystywanych przez sterownik, prowadzące do uszkodzenia pamięci. Trzecim zawieszenie systemu przez nieskończoną pętlę w kodzie sterownika.

Cook wyjaśnił, że zamiast testować wszystkie możliwe wypadki, liczbę wywołujących błędy sterowników udało się ograniczyć dzięki modelowaniu ich jako systemów formalnych, a następnie automatycznemu dowodzeniu ich poprawności, korzystając z metod matematyki i logiki. W ten sposób powstały trzy narzędzia do automatyzacji procesu wykrywania błędów. Pierwsze z nich, Slam, testowało, czy dany fragment oprogramowania poprawnie współ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 poprawnie zainicjalizowana.

Trzecie z narzędzi było jeszcze ciekawsze – rozwiązywało w ograniczonym zakresie klasyczny problem stopu Turinga (w którym chodzi o zbudowanie algorytmu, który byłby w stanie ocenić, czy dowolny algorytm zakończy swoją pracę dla zadanych na wejściu wartości). Jak wiadomo, problem ten jest ogólnie nierozstrzygalny, jednak szczególna natura sterowników sprawia, że możliwe jest przetestowanie ich pod kątem kończenia pracy. Sterowniki bowiem zwykle są małe, nie przekraczają 30 tys. linii kodu, nie mają też zbyt wielu zagnieżdżonych pętli. Stworzony przez badaczy Microsoftu Terminator pozwalał na analizowanie sterowników, których kod nie przekraczał 35 tys. linii, sprawdzając, czy zakończą one swoją pracę dla wszystkich możliwych danych wejściowych.

Efekty wykorzystania tych narzędzi przekroczyły oczekiwania. Nie tylko znaleziono wiele błędów w sterownikach firm trzecich, ale też i w sterownikach będących częścią Windows Driver Development Kit, które często były kopiowane przez producentów (wraz z ich usterkami) jako podkładki do utworzenia sterowników dla własnych urządzeń. Automatyczne testy pozwoliły na wykrycie takich nawet błędów, jak zawieszanie Windows XP przez odłączenie myszki w trakcie jej przesuwania (gdy system zapętlał się w kolejce żądań I/O). Microsoft zdecydował się więc udostępnić je wszystkim producentom sprzętu, w nadziei, że będą w stanie sami odnajdywać błędy w sterownikach.

Według Cooka stabilność Windows 7 i 8 jest właśnie zasługą tych prac nad sterownikami. W kolejnych latach udało się wyjaśnić, jakie reguły przy ich pisaniu powinny być przestrzegane, ale też jakie właściwości należy analizować w oprogramowaniu przed jego wydaniem. Doszliśmy do etapu, w którym niebieski ekran śmierci w ogóle zniknął z Windows 8 – zamiast niego mamy raczej niebieski ekran żalu, pozbawiony niezrozumiałych dla większości użytkowników informacji, zastąpionych przez 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.

Za: dobreprogramy.pl

[Obrazek: 2089620800_1406976151.png]
Windows ❼ Forum

01.10.2013 14:34

Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
izaw
User systemu
Liczba postów: 425
Post: #2

RE: O stabilności Windows, czyli jak to Microsoft z Niebieskim Ekranem Śmierci...


Prawda, tylko że ten problem dotyczy również XP. Poprawa sterowników polepszyła też ten system.

Drugą sprawą jest lepsza jakość sprzętu.

"Nie ma programów bezpiecznie działających, są co najwyżej niedostatecznie przetestowane"
Prawo Murph'ego

01.10.2013 18:12

Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
thermalfake
Ostatni Mohikanin

Liczba postów: 13.580
Post: #3

RE: O stabilności Windows


Nic się nie zmieniło pod względem procentowym tego co wywołuje bsody. Choćby po ilości jakie przewalam przez win debugger jeśli ktoś z forum prosi mnie o pomoc.

[Obrazek: 2089620800_1406976151.png]

W zamian za pomoc oczekuję poprawnej pisowni. Stop niechlujstwu.
Jak mądrze zadawać pytania? - przejrzyj poradnik na forum.
Nie udzielam porad via PW.

10.10.2013 20:58

Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz

Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
News Microsoft mało dba o bezpieczeństwo Windows 7, cały wysiłek poszedł w Windows 8 Portator 0 1.339 11.06.2014 05:18
Ostatni post: Portator
News Microsoft Windows XP: "niezależny" raport zaleca natychmiastową migrację do Windows 7 Portator 0 1.885 29.05.2012 06:32
Ostatni post: Portator
News Nareszcie! Nowy komputer z Windows bez crapu, czyli MS Signature Portator 0 1.933 18.05.2012 15:56
Ostatni post: Portator
News Sensor, czyli GPS w Windows 7 HrabiaHodon 0 3.197 22.11.2010 15:01
Ostatni post: HrabiaHodon
News Czarny ekran śmierci przez łatki Microsoftu bend 8 10.723 02.12.2009 17:45
Ostatni post: bend
News Cząstka Windows 7 w Windows Vista, czyli Platform Update Admin 0 2.698 29.10.2009 13:18
Ostatni post: Admin
« Starszy wątek | Nowszy wątek »

Temat został oceniony na 0 w skali 1-5 gwiazdek.
Zebrano 1 głosów.