O powstawaniu Windows. Jak tworzono najpopularniejszy system na świecie: Chicago
Koniec lipca 1993 to czas osobistego zwycięstwa Dave'a Cutlera, pracownika Microsoftu i utalentowanego inżyniera. Wydano wtedy system operacyjny Windows NT. Cutler, którego poprzedni pracodawca, firma Digital, nie pozwolił ukończyć prac nad prototypem systemu operacyjnego nowej generacji, miał szansę sfinalizować jego wariant w Redmond. Była to sytuacja z cyklu win-win: Microsoft otrzymał oprogramowanie niezależne od platformy i stanowiące dojrzały projekt, a Cutler, choć sceptyczny wobec OS/2 i Windows, mógł rozwinąć idee systemu VMS, uparcie niepodejmowane przez branżę.
Windows NT był doskonałym projektem i całkiem niezłą implementacją. Przybliżał komputery osobiste do świata dedykowanych stacji roboczych, a po części nawet zaawansowanych maszyn przemysłowych typu mainframe. Była to skala dojrzałości przystająca do potencjału oferowanego przez platformę PC i coś nieobecnego u konkurentów. Klasyczne komputery domowe wyginęły, a Apple miał ze swoim systemem mniej więcej takie same problemy, co Microsoft z Windowsem.
Nieważne, kto ma rację
Jednak IT to mało romantyczny biznes i nie wystarczy mieć rację, by wygrać. Windows NT był technologicznie znacznie lepszym produktem niż pozostałe systemy dla komputerów "ogólnego przeznaczenia", ale sama jego obecność na rynku nie sprawiała, że ludzie nagle spontanicznie wymienią sprzęt na zgodny i wystarczająco mocny do tego, by pracować z NT, a nie z DOS-em. Próby odchudzenia NT nie powiodły się, a Windows 3.11, mimo wielu dodatków i usprawnień, był przestarzały. Szczególnymi problemami były kooperatywna wielozadaniowość oraz 16-bitowe środowisko uruchomieniowe.
Tego, że NT nie zastąpi Windowsa od razu, można było być pewnym już pod koniec 1991 roku. Nadzieje przełożono więc na jego mitycznego następcę (Cairo), a rynek tanich komputerów osobistych miał na jakiś czas przejąć Windows 4.0, planowany na rok 1993. Niestety i to okazało się niemożliwe: w międzyczasie wydano więc Windows 3.11, a wersja 4.0 przyszła na świat po wielu opóźnieniach jako Windows 95.
Czwarte wcielenie fuszerki
Windows 4.0, zwany początkowo "Chicago", miał być czymś więcej niż 3.11, ale czymś (znacznie) mniej niż NT. Za główną zaletę przygotowywano w nim obsługę 32-bitowego środowiska programowania, nazwanego Win32 podczas prac nad NT. Fragmenty Win32 przeportowano do Windows 3.11 jako Win32s, ale ze względu na ograniczenia platformy, niedostępne były nowe mechanizmy OLE, wielozadaniowość ani wątki. Windows 4.0 miał obsługiwać szerszy podzbiór Win32, pod nazwą Win32c, a także dostarczać wielozadaniowość i 32-bitowe środowisko uruchomieniowe.
Microsoft wyobrażał sobie w 1992 roku wersję 4.0 nieco inaczej, niż to, co ujrzało światło dzienne jako finalny produkt. Przede wszystkim, jądro trybu rozszerzonego 386, umożliwiające ładowanie wielu sesji MS-DOS, było planowane jako potencjalnie oddzielna wersja MS-DOS, pracująca w trybie chronionym. Niejasne opisy z etapu projektowania wynikają zapewne z tego, że produkt po prostu jeszcze nie istniał. Nie powstała także żadna 32-bitowa wersja MS-DOS, ale menedżer maszyn wirtualnych (VMM.VXD) w Windows 95 umożliwiał uruchamianie wielu sesji DOS równolegle, a także okien wiersza poleceń z 32-bitowymi aplikacjami.
Ponieważ przeportowanie Win32 oraz 32-bitowa wielozadaniowość były uznane za osiągalne w dwa lata, Windows 4.0 nie miał jeszcze dostać nowego interfejsu, opracowywanego w laboratorium zaawansowanych systemów w ramach projektu Cairo. Kalendarz oraz natura nowych aplikacji sprawiły, że wydawanie nowego systemu bez nowego GUI stało się pozbawione sensu. Dlatego Windows 95 otrzymał Eksploratora oraz Pasek Zadań.
Gorsze, ale lżejsze
W ten sposób Microsoft otrzymał kolejną wersję klasycznego Windowsa. Opierając się na przestarzałej i niestabilnej architekturze, udało się stworzyć system zdolny do uruchamiania zbliżonej gamy oprogramowania dla NT przy jednoczesnym zachowaniu wysokiej zgodności z MS-DOS. Stos sieciowy, choć domyślnie niezaopatrzony w obsługę protokołów TCP/IP, pozwalał systemowi Windows 95 pracować jako stacja robocza w domenie i korzystać z zasobów udostępnianych z hasłem. Wszystko to przy zachowaniu niskich wymagań sprzętowych: 95 działał (choć koszmarnie) na 386SX i 8MB RAM-u, podczas gdy NT do samego uruchomienia instalatora potrzebował już 16MB.
Windows NT był "systemem przyszłości", ale w swojej ówczesnej postaci był mocno wybrakowany. Nie obsługiwał PCI, PNP i APM. Nadawał się na stacje robocze, ale jeszcze nie był oprogramowaniem ogólnego przeznaczenia. Był zatem jednocześnie systemem przyszłości, która jeszcze nie nadeszła oraz niewypałem, który na domowych komputerach wyprowadzałby z równowagi. Co ciekawe, oryginalny Windows 95 również nie należał do kompletnych. Jego pudełkowa wersja nie obsługiwała FAT32, USB, ACPI oraz Pentium II, co naprawiono dopiero w wydaniach serwisowych OSR, a te z kolei nigdy nie były sprzedawane oddzielnie.
Z punktu widzena inżyniera, Windows 95 był dowcipem i upartą próbą wskrzeszania martwej technologii. Z tym, że komputerów nie kupują tylko inżynieriowie, dzięki czemu istnieje zapotrzebowanie na systemy nędzne, acz realizujące chwilowe potrzeby. Dobrze wiedział o tym Apple, który choć śmiał się z Microsoftu, sam reanimował swój System, który nie obsługiwał SMP ani ochrony pamięci.
Aby NT mógł naprawdę udowodnić, że zawojuje przyszłość, potrzebował czegoś więcej niż tylko nadziei, że przyszłe komputery będa miały więcej pamięci. Potrzebował metody wykazania, że są rzeczy, do których NT jest niezbędny i które znajdą klientów. Tym zajmował się zespół Cairo. O systemie Cairo napisano już bardzo wiele, znacznie mniej znanym faktem jest, że w Cairo pracowano nie nad systemem, a nad technologiami. Wiele z nich istotnie udało się dokończyć. Nad czym pracował zespół Cairo? O tym za tydzień.