O powstawaniu Windows. Jak tworzono najpopularniejszy system na świecie: Cairo
Microsoft, mimo deficytu technicznego, opracował metodę na zarabianie pieniędzy z wykorzystaniem Windows. Przyjazne środowisko o niskich wymaganiach sprzętowych, mimo braku stabilności i ślepej uliczki rozwoju, stało się hitem. Ciężar następcy, w postaci systemu NT okazał się zbyt wysoki, a zgodność sprzętowa zbyt słaba, by nowoczesny system operacyjny trafił do mainstreamu. Rezultatem było powstanie Windows 95, definiującego w kolektywnej wyobraźni kształt pulpitu komputera osobistego.
Mniej znanym faktem jest to, że pulpit Windows 95: pasek zadań, przycisk startowy i eksplorator, nie pochodzą z zespołu "przyjaznego systemu domowego". Znalazły się w systemie tylko dlatego, że badania użyteczności wykazały, że interfejs Windows 3.1 jest nieużywalny do wielozadaniowości. Koncepcję paska zadań opracował zespół Cairo. Jeżeli NT miało zdobyć świat, Cairo miał urządzić go według nowego porządku. Choć Windows NT 3.1 nie okazał się szałowym produktem, pracowano nad jego zaawansowaną wersją równolegle z Windows 95.
Jeszcze lepszy NTPoczątkowo, Cairo miał zostać wydany jako Windows NT 4.0, ale większość jego składników nie zdążyła ze swoją gotowością do tej wersji. Cairo rozwijano razem z Windows NT: był to zbiór technologii działających "nad" podstawowym systemem. Dlatego pierwsze wersje Cairo istniały jeszcze zanim Windows NT 3.1 trafił na rynek i stanowiły (tajną) nakładkę na NT. Programiści NT pracowali w metaforycznym bunkrze, ale zespół Cairo pracował w bunkrze znajdujacym się pod bunkrem NT. Zespół ten nosił miano Działu ds. Zaawansowanych Systemów i zajmował się prawdopodobnie najbardziej algorytmicznie skomplikowanym produktem w Microsofcie, wyprzedając nawet SQL Server.
Nad czym dokładnie pracowano w Zaawansowanych Systemach? Ogólnie mówiąc, nad obiektową warstwą programistyczną dla danych. Microsoft opracował strukturę podstawowych komponentów budulcowych w dokumentach, zwaną OLE. Zalety owego rozwiązania uznano za wystarczająco interesujące, by rozszerzyć je na programowalny model składników całego systemu, a nie tylko dokumentów. W ten sposób powstało OLE 2.0 i architektura COM, bardzo ważna cecha Windows NT. OLE 1.0 stworzono na potrzeby Windows 3.0 i pakietu Office, OLE 2.0 i COM miało celować szerzej.
Zaawansowane Systemy pracowały nad tym, by system NT korzystał z COM i wyprowadzał przez niego swoje funkcje. Poza tym, opracowywano środowisko pracy z dokumentami i oprogramowaniem, pozwalające operować na danych, a nie na plikach. Wszystkie dokumenty powinny być w takim modelu obiektami OLE (stąd kryptonim "CairOLE"), a przynajmniej zawierać obiektowe cechy. Dokumenty te byłyby indeksowane do centralnej bazy danych. Nie byłoby różnicy między wołaniem elementu OCX i jakiejś "metody" dokumentu.
Obiektowy system plików
Aby komputery z 1993 roku nie ugięły się pod ciężarem indeksowania, potrzebne było wspomaganie ze strony systemu plików. Na tę potrzebę stworzono system OFS, przeznaczony do łatwego przechowywania danych OLE/COM wraz z plikami i umożliwiający tworzenie wirtualnych folderów/widoków, gdzie akt wyszukiwania byłby jednym ze sposobów wyświetlania dokumentów (koncepcja zrealizowana potem w WinFS). Cairo implementowało bazę danych, OLE, OFS i indekser jako sterowniki i komponenty opcjonalne systemu Windows NT. W czasie wielu lat rozwoju, zbudowano szereg wersji NT będących w praktyce kompilacjami Cairo: wyłączając składniki opcjonalne otrzymywało się "zwykłe" NT.
Pracownicy Zaawansowanych Systemów wiedzieli, z jak ambitnym zadaniem się mierzą. Dlatego też uznawali się za czarnoksiężników, strzegących tajemnej wiedzy i władających magicznymi narzędziami, niezrozumiałymi dla reszty świata. Gdzie są efekty ich pracy, skoro Cairo nigdy nie został wydany (Windows NT 4.0 nosi nazwę kodową Cairo, ale nie zawiera większości składników opracowywanych dla projektu)? Cóż, wszędzie.
Vaporware
Skoro nawet Chicago okazał się nadmiernym wyzwaniem, kalendarz wydawniczy Cairo także musiał się okazać nieubłagany. Nawet dla najzdolniejszych talentów w Redmond. Dlatego Cairo nie został wydany jako oddzielny system operacyjny, a jego komponenty zostały rozdysponowane po wielu pomniejszych zespołach. OLE, RPC i Win32 przestały być domeną "zaawansowanych systemów" i stopniowo mogła nad nimi zacząć pracować reszta firmy. A było tego sporo.
Władzę nad projektem NT, w tym Cairo, po wydaniu wersji 3.5 przejął Jim Allchin. Człowiek całkowicie pragmatyczny, podporządkowujący rozwój oprogramowania wyłącznie względom biznesowym. To za jego kadencji zadecydowano o zintegrowaniu podsystemu graficznego z jądrem i rozbiciu Cairo na podzespoły robocze. Zabawnym szczegółem jest to, że zarówno Cairo jak i Longhorn były rozwijane pod opieką Allchina i oba te projekty nie uległy finalizacji w swym zamierzonym kształcie.
Wśród super-ambitnych inicjatyw Cairo, według Dowodu 5542 w procesie Comes kontra Microsoft Corporation, w tajnym dokumencie z Redmond wymieniono następujące elementy:
- Zadaniowy interfejs użytkownika (dostarczony w Windows NT 4.0)
- Plug and Play (działający wyłącznie dla kart Sound Blaster, w pełnej formie dostarczony dopiero w Windows 2000)
- Zgodność z MS-DOS 6.0 (niedostarczona nigdy)
- APM i ACPI (również czekało dopiero do Windows 2000)
- Obsługa pióra (wróciła dopiero w 2004 roku)
- Antywirus. Nowa wersja MSAV z Windows 3.1, anulowana, na swoją kolej czekała do 2012 roku!
- ODBC i OLE2 (gotowe później, dostarczane przez pakiet Office i Internet Explorer 3)
- Usługa katalogowa X.500(!) (opracowana siedem lat później z ogromnymi problemami, dziś znana jako niezastąpione Active Directory)
- DFS i replikacja obiektów (podstawowa w NT 4.0, pełna w Windows 2000)
OFS: konkrety
Całkowicie oddzielnym i olbrzymim zarazem tematem był obiektowy system plików OFS. To wzorcowy przykład feature creep, niemożliwego do zaimplementowania super-projektu z tysiącami funkcji, tworzonego z zamiarem jednorazowego dostarczenia jako monolit. Nigdy nie udaje się dostarczyć żadnego projektu tworzonego z wykorzystaniem takiego paradygmatu. Z czego składał się OFS?
- Instalowalny system plików o wydajności wyższej, niż FAT (niegdy nieukończony)
- Usługa indeksująca cechy OLE i zawartość plików, z możliwością tworzenia skomplikowanych kwerend: CIDAEMON (zaimplementowana częściowo jako Usługa Indeksowania(https://www.techrepublic.com/blog/windows-and-office/configure-windows-xps-indexing-service-the-right-way/), nieco pełniej jako Windows Search)
- Mechanizm zapisu metadanych OLE w systemie plików (porzucony jako zbyt skomplikowany, wykorzystano bazę danych indeksu i zwykły system plików NTFS)
- Funkcje partycjonowania w locie, woluminów logicznych, wieloterabajtowych partycji, odporności na uszkodzenia (wszystkie dostarczone w zwykłym NTFS na przestrzeni lat)
- Celowy brak zgodności z POSIX i brak obsługi w najtańszych wersjach (to odbiłoby się czkawką)
- Tworzenie widoków dynamicznych, widoków-jako-folder i metaplików (częściowo gotowe jako Biblioteki i Windows Search, dziś wyparte przez chmurowe indeksery)
Można dziś lamentować, że Cairo nie zostało wydane, ale gdyby rewolucyjny OFS naprawdę udało się ukończyć, o wiele trudniej byłoby dostosować system do znacznie mniej sztywnych niż OLE, różnorakich danych internetowych. Widać to dziś, gdy każde narzędzie ma swoją wyszukiwarkę i wiele z nich nie wpina się do Windows Search, nie wspominając o tym, jak wiele rzeczy robimy dziś w chmurze. OFS mógłby więc dość prędko i mocno stracić na znaczeniu.
Niemniej, konieczność czekania na Windows 2000 aż pięć lat i jego niekompletność w kwestii wersji domowej to dowód na to, że nie tylko OFS był składnikiem Cairo, którego nie dało się łatwo dostarczyć. Niech służy to za przypomnienie, jak ważnym produktem był Windows 2000, obchodzący w lutym swoje dwudzieste urodziny. O pracach nad nim już wkrótce.