Kiedy "umarł" ostatni klasyczny Windows?
Zalogowani mogą więcej
Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika
Nadchodzący koniec wsparcia Windows 8.1 oznacza zakończenie obsługi ostatniego wydania Okienek nieoferowanego w trybie ciągłym. Ósemka otrzymywała wszak upgrade tylko dwukrotnie: raz do 8.1 i raz (na rok) do Windows 10. Dziesiątkę możemy z kolei aktualizować "w nieskończoność".
Nowy model bywa (nieprawidłowo) nazywany "subskrypcyjnym" i przedstawiany jako przeciwieństwo poprzedniego, potocznie (i także nieprawidłowo) nazywanego "klasycznym". Choć to ta pierwsza nazwa jest bardziej rażąca ze względu na swoją nieadekwatność, określenie "klasyczny Windows" ma dłuższą i ciekawszą historię. Dotyczy ono bowiem, w swym poprawnym znaczeniu, oprogramowania wydanego ostatni raz w 2000 roku.
Klasyczny Windows wywodzi się z 16-bitowego środowiska operacyjnego, startującego z poziomu MS-DOS. Często opisywano je jako "oparte o MS-DOS", ale nie jest to do końca poprawna charakterystyka. Windows przeładowywał tak wiele elementów DOS-a, że system ten z wersji na wersję pełnił coraz mniejszą rolę.
Nakładka? System?
Czym był klasyczny Windows? Początkowo - istotnie 16-bitową aplikacją MS-DOS. Dostarczała ona graficzne środowisko użytkownika, ułatwiony model sterowników graficznych oraz podstawowe API do rysowania i komunikacji, ujęte w trzech głównych komponentach: GDI, USER i KERNEL. Koncepcja GDI, ulegając od 1985 roku istotnym przemianom, pozostaje jednym z fundamentów dzisiejszych Windowsów.
Kolejne wersje wzbogaciły się o jądro pracujące w trybie chronionym i samodzielne zarządzanie pamięcią. W końcu, rzecz jasna, pojawiła się także obsługa 32-bitowego kodu (Win32 API). To wszystko osiągnięto na bazie niezwykle rozbudowanej aplikacji DOS-owej, odbierającej DOS-owi niemało jego własnych, systemowych zadań.
Klasyczny Windows rozmywał definicję systemu operacyjnego: teoretycznie to DOS inicjalizował WIN.COM, ale Windows sam dźwigał pamięć, sterowniki i zadania. Z perspektywy DOS-a, Windows nie był "systemem", a gigantycznym procesem: menedżerem maszyn wirtualnych (narzędziem umożliwiającym uruchamianie wielu programów DOS naraz) oraz graficznym środowiskiem operacyjnym (oferującym funkcjonalności GDI i USER).
Nie warto
Takie rozwiązanie uznano jednak za ślepą uliczkę i porzucono. Obecny Windows to żaden Windows: to system NT, zaopatrzony na wierzchu w to samo API, które oferowały klasyczne okna, zaimplementowane "na nowo" jako czysto 32-bitowy kod. Ponieważ samo to, że jakieś rozwiązanie jest gigantycznym hackiem nie jest jeszcze powodem, by je porzucać (NT jest zbieraniną hacków) - musiał być jakiś inny powód. Co nim było?
Otóż Windows po prostu nie był w stanie udźwignąć więcej. Genialne rozwiązania przedłużające żywot MS-DOS miały górną granicę rozwoju. Klasyczny Windows nie byłby w stanie obsłużyć więcej niż 4GB pamięci, wielordzeniowych procesorów, Hyper Threadingu i systemów 64-bitowych. Przez "nie byłby w stanie" rozumiemy tu konieczność napisania tak rozbudowanych sterowników VXD, że zakrawałoby to na stworzenie nowego systemu. Dość zbędne ćwiczenie, gdy inny system już istniał i było nim NT.
Starocie
Ale to nie wszystko. Dziedzictwo MS-DOS sprawiało, że Windows domyślnie stosował strony kodowe (kodowanie jednobajtowe!) zamiast Unicode. Mocno utrudniało to regionalizację, a zmiana tego stanu rzeczy wymagałaby przekompilowania całego systemu, od VMM w górę. Ze względu na zgodność z kodem 16-bitowym, mechanizmy GDI i USER nie mogły zostać przy okazji przeprojektowane tak, by nie ulegać destabilizacji wskutek wyczerpania zasobów (nie RAM-u! mowa o wolnych uchwytach wewnątrz GDI). Ciężkie programy potrafiły zawiesić system, a bardziej rozbudowane UI, np. w .NET, to już w ogóle było proszenie się o kłopoty.
A kłopoty oznaczały zazwyczaj niebieski ekran i restart: Windows miał udawane procesy, one wszystkie były tylko formami zmiany stanu VMM32.VXD. To właśnie on był "procesem". Jedynym. Cała reszta to fikołki i coś co w większości (PID, entry point…) można traktować jak proces… ale nie całkowicie. Dlatego menedżer zadań z Windows nazwano menedżerem zadań, a nie procesów. Nazwę tę przeniesiono do dzisiejszych Windowsów, choć NT operuje na prawdziwych procesach.
Sprzęt
Problem stanowiłyby nie tylko kwestie platformowe, jak HT i wiele rdzeni. Nowy sprzęt stawiał wymagania dotyczące sterowników, którym DOS i VXD nie mogłyby sprostać. Obsługę USB, IEEE 1394 i nowych klas "nowoczesnych" urządzeń dodano do Windows 95 nie poprzez rozszerzenie modelu sterownika, a poprzez… dodanie fragmentu jądra NT do systemu. Narzędzie "Mini NT Executive", dostarczane w postaci sterownika NTKERN.VXD, dodawało obsługę sterowników WDM przeznaczonych dla Windows 2000.
Oznacza to, że już w 1996 roku uznano, że jedyną drogą na rozwój klasycznego Windowsa jest dodawanie do niego fragmentów NT. System aż prosił się o znaczne rozszerzenie NTKERN (i usunięcie warstwy 16-bitowej), ale wtedy utraciłby jedną z głównych cech zarabiających pieniądze: kompatybilność - cenną nawet w ramach niestabilnego systemu.
A dziś?
Jakie wnioski możemy wyciągnąć z historii systemu, którego w pewnym momencie nie dało się rozwijać? Należałoby zapytać na przykład, czy i kiedy znajdziemy się w takiej sytuacji ponownie. Czy NT też ma swój kres, uniemożliwiający dodanie technologii przyszłości? Póki co taka się nie pojawiła. Dzisiejsze komputery, z ustrojem UEFI, dyskami półprzewodnikowymi i magistralami Thunderbolt, są zupełnie innym sprzętem niż ten stosowany w pecetach 30 lat temu. A NT dalej sobie z nim radzi.
Nie wydaje się, że przed dzisiejszym Windowsem stanie wkrótce wyzwanie, któremu nie będzie on w stanie sprostać. Prędzej z rynkowego krajobrazu znikną same pecety, niż z pecetów - Windows. Lecz i na to się nie zapowiada. Prawdopodobnie w kwestii systemów operacyjnych dotarliśmy do końca historii.
Swoją drogą, Apple przeszedł tę samą drogę. Ich obecny system będzie niósł Maki jeszcze przez wiele lat, a jego poprzednik został pogrzebany na przełomie wieków, z powodów zbliżonych do motywu uśmiercenia technologii Windows 95.
Kamil Dudek, współpracownik dobreprogramy.pl