Windows XP
Windows

Windows XP

System operacyjny jest warstwą pośrednią między sprzętem a programami użytkownika. To od jego architektury zależy sposób zarządzania pamięcią, dostęp do urządzeń, stabilność pracy i możliwość uruchamiania aplikacji napisanych wiele lat wcześniej. Na początku lat 2000 szczególne znaczenie miało przejście z linii systemów konsumenckich opartych na DOS do jednolitej platformy opartej na jądrze NT. Dla wielu użytkowników był to moment, w którym komputer przestał być urządzeniem wymagającym ciągłej rekonfiguracji i zaczął działać przewidywalnie, takim systemem był Windows XP.

Dlaczego Windows XP stał się punktem przejścia między komputerem domowym a architekturą NT stosowaną wcześniej głównie w środowiskach profesjonalnych

Premiera systemu nastąpiła 25 października 2001 roku. Formalnie był następcą dwóch osobnych linii produktów: konsumenckich systemów opartych o rodzinę 9x oraz profesjonalnych systemów opartych o Windows NT. Z technicznego punktu widzenia była to jedna z najważniejszych zmian w historii komputerów osobistych.

Najistotniejsze cechy tej zmiany:

  • jądro NT 5.1 zamiast architektury DOS/9x,
  • model ochrony pamięci,
  • wielozadaniowość z wywłaszczaniem,
  • obsługa kont użytkowników,
  • znacznie bardziej przewidywalny model sterowników,
  • lepsza odporność na awarie pojedynczych aplikacji.

W starszych systemach zawieszenie programu często prowadziło do utraty całej sesji pracy. W architekturze NT proces działał w wydzielonej przestrzeni adresowej. Oznaczało to, że błąd jednej aplikacji nie musiał zatrzymywać całego komputera.

Model ten można przedstawić w uproszczeniu.

ElementFunkcja
Tryb użytkownikaUruchamianie aplikacji i izolacja błędów
Tryb jądraZarządzanie sprzętem i pamięcią
HAL (Hardware Abstraction Layer)Ujednolicenie komunikacji ze sprzętem
SterownikiObsługa urządzeń
Menedżer procesówTworzenie i planowanie zadań

W praktyce użytkownik widział prosty efekt: komputer rzadziej wymagał restartu.

Mechanizm uruchamiania systemu i organizacja procesu startowego w Windows XP od BIOS do załadowania środowiska użytkownika

Proces startu był wieloetapowy i dobrze pokazuje sposób działania klasycznych systemów NT.

Sekwencja wyglądała następująco:

  1. BIOS wykonywał test POST.
  2. Następował odczyt MBR.
  3. Ładowany był program NTLDR.
  4. Odczytywany był plik BOOT.INI.
  5. Uruchamiano NTDETECT.COM.
  6. Ładowano jądro NTOSKRNL.EXE.
  7. Inicjalizowano sterowniki.
  8. Startował proces logowania.

Istotną cechą było użycie pliku tekstowego BOOT.INI do konfiguracji wielu systemów.

Przykład:

JęzykKod
Konfiguracja rozruchuini [boot loader]\ntimeout=5\ndefault=multi(0)disk(0)rdisk(0)partition(1)\n\n[operating systems]\nmulti(0)disk(0)rdisk(0)partition(1)\\WINDOWS=\"Microsoft Windows\" /fastdetect

Parametr /fastdetect ograniczał wykrywanie starszych urządzeń wejścia podczas rozruchu.

Dzisiaj rozwiązanie wydaje się proste, ale dawało użytkownikowi kontrolę bez konieczności używania narzędzi graficznych.

Zarządzanie pamięcią operacyjną oraz sposób działania procesów i planisty zadań w systemie Windows XP

Jednym z największych postępów było zarządzanie pamięcią.

System korzystał z pamięci wirtualnej.

Podstawowe pojęcia:

PojęcieZnaczenie
Pamięć fizycznaRzeczywista pamięć RAM
Pamięć wirtualnaPrzestrzeń adresowa procesu
StronicowaniePrzenoszenie danych między RAM i dyskiem
Pagefile.sysPlik wymiany

Typowa przestrzeń procesu 32-bitowego:

  • 2 GB dla aplikacji,
  • 2 GB dla jądra.

Opcjonalnie możliwe było użycie przełącznika /3GB.

Schemat działania:

  1. Program żąda pamięci.
  2. System przydziela adres logiczny.
  3. Dane trafiają do RAM.
  4. Gdy pamięci brakuje część danych trafia do pagefile.

Przykład alokacji pamięci.

JęzykKod
Cc\n#include <stdlib.h>\n\nint main() {\n int *tab = malloc(100 * sizeof(int));\n free(tab);\n return 0;\n}\n
C++cpp\n#include <iostream>\n\nint main() {\n int* dane = new int[100];\n delete[] dane;\n}\n
Pythonpython\ndane = [0 for _ in range(100)]\n

W praktyce wiele problemów wydajnościowych nie wynikało z małej ilości RAM, ale z nadmiernego stronicowania.

Częsty błąd użytkowników polegał na ręcznym ustawianiu bardzo dużego pliku wymiany, co nie przyspieszało systemu.

Model sterowników, warstwa sprzętowa i przyczyny dużej zgodności urządzeń w epoce Windows XP

Obsługa sprzętu była jednym z powodów sukcesu systemu.

Sterownik działał jako pośrednik pomiędzy aplikacją a urządzeniem.

Typowy przepływ:

Aplikacja → API → Sterownik → HAL → Sprzęt

Kategorie sterowników:

TypPrzykład
Sterowniki magistraliPCI
Sterowniki urządzeńkarta graficzna
Sterowniki systemowesystem plików
Filtryprogramy antywirusowe

Prosty przykład odwołania do pliku.

JęzykKod
Cc\n#include <stdio.h>\n\nint main() {\n FILE *f = fopen(\"test.txt\", \"r\");\n fclose(f);\n}\n
C++cpp\n#include <fstream>\n\nint main() {\n std::ifstream plik(\"test.txt\");\n}\n
Pythonpython\nwith open(\"test.txt\") as f:\n dane = f.read()\n

W tamtym okresie duże znaczenie miały certyfikowane sterowniki WHQL. Brak zgodności sterownika był jedną z najczęstszych przyczyn błędów typu BSOD.

System plików NTFS i mechanizmy ochrony danych, które zmieniły codzienną pracę użytkowników

NTFS był jednym z mniej widocznych, ale najbardziej praktycznych elementów.

Najważniejsze funkcje:

  • uprawnienia ACL,
  • dziennik zmian,
  • obsługa dużych wolumenów,
  • kompresja,
  • szyfrowanie EFS,
  • odzyskiwanie po awarii.

Porównanie:

CechaFAT32NTFS
UprawnieniaNieTak
Maksymalny plik4 GBznacznie większy
DziennikNieTak
SzyfrowanieNieTak

Struktura zapisu upraszczając:

ElementFunkcja
MFTindeks plików
Metadaneinformacje o pliku
Dziennikodtwarzanie po awarii

To właśnie tutaj użytkownicy zaczęli zauważać, że nagły restart nie zawsze kończy się utratą danych.

Bezpieczeństwo, aktualizacje i ograniczenia architektury z perspektywy współczesnych standardów ochrony systemów

Pierwsze wydania systemu nie były projektowane dla świata stale podłączonego do internetu.

Początkowo problemami były:

  • usługi sieciowe aktywne domyślnie,
  • słaba konfiguracja zapory,
  • praca na koncie administratora,
  • szybkie rozprzestrzenianie robaków.

Przełomem był Service Pack 2.

Wprowadzone zmiany:

MechanizmEfekt
Windows Firewallfiltrowanie połączeń
DEPograniczenie wykonywania kodu
Centrum zabezpieczeńmonitorowanie ochrony
Blokowanie dodatków IEmniejsza powierzchnia ataku

Przykład zasady ograniczenia wykonywania:

WzórZnaczenie
Kod → RAM → Wykonanie tylko w obszarach oznaczonych jako wykonywalnePodstawowa idea DEP

Dzisiaj system nie otrzymuje standardowego wsparcia bezpieczeństwa i nie powinien być używany do pracy z danymi produkcyjnymi ani usługami internetowymi.

Praktyczne obserwacje po latach użytkowania oraz typowe błędy podczas utrzymywania starszych instalacji

Najczęstsze problemy historycznych instalacji:

  1. Nadmierna liczba programów startowych.
  2. Instalowanie wielu pakietów antywirusowych jednocześnie.
  3. Defragmentacja wykonywana zbyt często.
  4. Brak aktualizacji sterowników.
  5. Instalacja niepodpisanych komponentów.

Typowy zestaw diagnostyczny wyglądał kiedyś bardzo prosto:

NarzędzieZastosowanie
Task Managerprocesy
Event Viewerlogi
msconfigstart systemu
chkdskkontrola dysku
dxdiagdiagnostyka grafiki

Przykład użycia narzędzia systemowego:

Język / polecenieKod
Konsolacmd\nchkdsk c: /f\n

Dla starszych komputerów często większy efekt dawało usunięcie zbędnych programów niż dokładanie pamięci.

FAQ

Czy system był rzeczywiście szybszy od nowszych wersji?
Na słabszym sprzęcie często sprawiał takie wrażenie, ponieważ miał mniejsze wymagania i mniej usług działających w tle.

Dlaczego wiele urządzeń działało przez bardzo długi czas bez zmiany sterowników?
Duża część producentów utrzymywała zgodność binarną i długo rozwijała sterowniki dla tej samej architektury.

Czy można używać go dziś offline?
Technicznie tak, ale najlepiej tylko do celów archiwalnych, testowych lub uruchamiania starszego oprogramowania.

Czy 64-bitowa edycja była popularna?
Nie. Dominowały instalacje 32-bitowe ze względu na zgodność aplikacji i sterowników.

Dlaczego system utrzymał się tak długo?
Połączenie stabilności, niskich wymagań sprzętowych i ogromnej zgodności aplikacji spowodowało, że wiele firm utrzymywało go znacznie dłużej niż planowano.

Czy NTFS dawał odczuwalną przewagę zwykłemu użytkownikowi?
Tak. Szczególnie przy awariach zasilania i pracy na dużych plikach.

Źródło Foto: Magnific

Dodaj komentarz