O powstawaniu Windows. Jak tworzono najpopularniejszy system na świecie: Dave Cutler i Digital
System Windows 3.0 obchodził kilka dni temu trzydzieste urodziny. Powstał jako poboczny projekt, mający na celu uratowanie Windows przed zagładą wskutek zastąpienia lepszymi rozwiązaniami. Oryginalne założenia Okien były bowiem mocno zrośnięte z ograniczeniami platformy PC pierwszej połowy lat osiemdziesiątych. W międzyczasie Intel wydał znacznie ulepszony procesor 286. Dlatego wraz z IBM, Microsoft rozpoczął prace nad OS/2: unowocześnieniem platformy MS-DOS tak, by umiała korzystać z dobrodziejstw 286. Wtedy jednak Intel wydał procesor 386…
Był to znacznie lepszy procesor. Układ na tyle dobry, że można go uznać za pierwszy krok na drodze do przekształcenia platformy PC w coś, co potrafi zagrozić mainframe'om i serwerom. Wtedy bowiem te "naprawdę poważne" zadania wymagały dedykowanych stacji roboczych i ciężkich komputerów z Uniksem. Pecetowi było bliżej to ośmiobitowych komputerów domowych, niż do takich gigantów. Przynajmniej na początku.
Tym razem zróbmy to dobrze
Aby nie odstawiać roboty głupiego i nie przepisywać systemu za każdym razem, gdy zostanie wydany nowy procesor, zadecydowano, że OS/2 będzie dalej celował w 16-bitowy 286, ale jednocześnie rozpocznie się prace nad naprawdę nowoczesnym rozwiązaniem. Nie tylko korzystającym z 386, który wreszcie był poważnym procesorem, ale i napisanym w sposób przenośny.
Postawiono sobie ambitny cel: zamiast zakładać, że port systemu na inny procesor będzie wymagał "drobnych zmian", zadecydowano że nowy system od początku będzie pisany dla układów Alpha i MIPS, a czystość procesu projektowego miałaby sprawić, że zadziała on na 386 "za darmo". System miał być bowiem napisany w C (jak Unix) oraz nowomodny wtedy C++.
Czy Microsoft był w stanie stworzyć taki system? Nie, a przynajmniej nie od razu. Dlatego zadecydowano, że OS/2 będzie pisany dalej, jego kolejna wersja (2.0) będzie 32-bitowa, ale to dopiero "ten nowy" system (3.0) zapewni odporność na przyszłość. Prace nad wersją 2.0 nie poszłyby na zmarnowanie, ponieważ 3.0 miałoby być tak nowoczesne, że wystarczyłoby przeportować samo API. W ten sam sposób zapewniono by zgodność z Windows: dorzucając "osobowość" Okien do owej nowoczesnej, trzeciej wersji OS/2.
Future-proofing
Innymi słowy, Microsoft rozpoczął pracę nad najnowocześniejszym systemem operacyjnym w historii, w dodatku z zachowaniem przenośności. UNIX, choć napisany w C, często ulegał reimplementacjom na tyle fundamentalnym, że niemalże pisano go od nowa. Dlatego UNIX miał się schować przy tym, co miałaby zaoferować trzecia wersja OS/2. Ze względu na to, jak przełomowym miałaby być podejściem, nazwano ją NT: nową technologią.
W Redmond krążyły ogólne pomysły na temat tego, jak zabezpieczyć OS/2 na przyszłość, ale mimo mnogości niezaprzeczalnych talentów, nie było tam kapitału intelektualnego by podjąć się zadania stworzenia Ostatniego Systemu W Dziejach. Zmieniło się to dopiero wtedy, gdy dokonano transferu osób zupełnie niepasujących do Microsoftu: zespołu inżynierów firmy Digital, pod wodzą niezwykle uzdolnionego, skutecznego pracoholika. Był nim Dave Cutler.
Inżynierowie z porządniejszego świata
Na temat zespołu Cutlera krąży wiele opowieści. Według kilku z nich, ich praca wyglądała na coś tak bardzo zaawansowanego, uczonego i odmiennego od realiów Microsoftu, że tworzyli jaskrawy kontrast względem reszty firmy. Słuchać też było głosy, że Cutler i spółka niekoniecznie szanują osiągnięcia i wysiłki pozostałych zespołów. Podczas gdy inni inżynierowie polerowali Worda i Excela lub próbowali przekonać świat, że OS/2 jednak ma sens, oni na specjalnych warunkach budowali przyszłość IT.
Cutler bardzo prędko wyraził głęboką dezaprobatę względem API OS/2. System NT był zbyt poukładany i elegancki, by jego architektowi przypadła do gustu reanimacja DOS-a zaprojektowana przez komitet. Dlatego pozytywnie przyjął on decyzję będącą efektem przypadkowego sukcesu Windows 3.0: dać sobie spokój z OS/2 i jako główną osobowość ustawić Windows API.
Budowana w zaciszu od 1988 roku przyszłość zaczynała wyglądać coraz wyraźniej: 32-bitowy, przenośny system operacyjny z płaskim adresowaniem i ochroną pamięci. Wskutek zabawnych splotów okoliczności, pod jego kontrolą miało pracować API środowiska niedawno spisywanego na straty. Sukces Windows 3.0 oraz przeorientowanie NT OS/2 na WinAPI sprawiły, że niegdyś marne rozszerzenie MS-DOS okazywało się być sposobem na podbicie świata.
Windows: innej drogi nie ma
Dzięki wynalazkom takim, jak VMM, VXD, NE/PE oraz PKERNEL, Windows 3.0 osiągnął więcej, niż OS/2. Posadowienie WinAPI na systemie NT, tworząc Windows NT, zapewniło w dodatku 32-bitowość, obsługę Unicode, stabilność i bezpieczeństwo. Wiele wskazywało na to, że gdy Windows NT zostanie ukończony, Microsoft już nigdy nie będzie potrzebował nowego systemu operacyjnego.
No właśnie: ukończony. Microsoft oczywiście chciał wydać NT, a nie pracować nad nim tysiąc lat, ale maszyną do zarabiania pieniędzy i tak był Windows 3.x. Dlatego projekt NT obrastał w funkcje. Dorzucono do niego zaawansowany model zabezpieczeń. Model ten miał pracować sieciowo i rozszerzać dotychczasowy stos sieciowy LAN Managera z OS/2. Taki model wymagał oczywiście nowego systemu plików. A skoro system miał być 32-bitowy, to wymagał także nowego WinAPI, nazwanego Win32.
Te wszystkie dodatki sprawiały, że początkowa data wydania systemu, rok 1991, była kompletnie nieosiągalna. Listopadowe demo z owego roku, było mocno niekompletne i niestabilne, a mechanizm uwierzytelniania był w ogóle wyłączony. Nie działał także system plików NTFS. NT wyglądał wtedy na eksperyment naukowy, który być może kiedyś zaowocuje jakimś dziwadłem dla serwerów. Póki co pieniądze trzeba zarabiać inaczej.
Zanim Dave Cutler otrzyma swój dzień chwały (27 lipca 1993), Microsoft wyda jeszcze kilka usprawionych wersji Windows 3.0. O tym, co wprowadzały, oraz jak na ich tle wyróżniał się Windows NT, w następnej części.