Koszmar Administratora: absurdalny Windows 95

Serwisowanie dzisiejszych systemów operacyjnych jest banalne. Pełne reinstalacje potrafią trwać 15 minut, a dostępność sterowników łączności w obrazach instalacyjnych i takie wynalazki, jak Windows Update w zasadzie likwidują potrzebę szperania po stronach producentów. Dziś wystarcza nam pendrive i godzina cierpliwości.

W temacie serwisowania systemów trudno wyznaczyć przełom, to dość nudna dziedzina, biegnąca raczej spokojnym, ewolucyjnym tokiem. Można jednak pokusić się o zidentyfikowanie pewnych fundamentalnych osiągnięć, bez których dotarcie do stanu obecnego byłoby niemożliwe. Pierwszym z nich jest możliwość integrowania sterowników ze źródłem instalacyjnym. Drugim, uznawanym powszechnie za najważniejsze – instalacja oparta na prefabrykatach (obrazy WIM). Ostatnie jest moje ulubione, bo mówi się o nim najrzadziej: globalizacja binariów w oparciu o Unicode.

Chodzi tutaj o uniezależnienie plików wykonywalnych od łańcuchów tekstowych: dzięki temu do wszystkich wersji językowych pasowała ta sama aktualizacja. Użycie Unicode zlikwidowało przy okazji problemy z używaniem stron kodowych. Wcześniej bowiem nie było tak kolorowo: konieczne było tworzenie oddzielnych aktualizacji dla każdego wariantu językowego. Z biegiem lat, wiele wersji nieanglojęzycznych zaginęło, zapewne nieodwracalnie. W przypadku plików, które przepadły „na zawsze”, a takich jest coraz więcej, jedyną opcją pozostaje użyć wariantów-odpowiedników z USA (lub Chin). Może to prowadzić do zabawnych mieszańców językowych, pechowe połączenia potrafią skutkować wręcz niekompatybilnością i awariami. Tym gorzej sprawa ma się z narzędziami „patchującymi” stare pliki binarne, ponieważ oczekują one stosownych elementów pod adresami o sztywno określonych offsetach. Alternatywne warianty językowe potrafią mocno poprzestawiać strukturę takiego pliku, przez co patchery mogą nie działać, lub uszkadzać pliki. Efektem może być na przykład niemożność nałożenia łatki na problemy Windows 95 z procesorami o szybkich zegarach. A to tylko pierwszy z brzegu przypadek. Dziś kwestia niepasujących łatek jest melodią przeszłości, a najpopularniejsze oprogramowanie jest uaktualniane za pomocą dużych, comiesięcznych pakietów serwisowych, zawierających wszystkie wydane do momentu premiery paczki. Dzięki temu zamiast polować na tuziny pasujących łatek, czekamy aż automatycznie ściągnie się jedna, najnowsza. To zdecydowanie postęp.

Łatwo zapomnieć, że kiedyś tak nie było. Windows 95 jest doskonałym przykładem systemu, w którym każdy wyżej wymieniony element grał istotną rolę i jego „poprawna”, pełna funkcjonalnie instalacja jest zatrważająco skomplikowana. Niemal wszystkie zawiłości instalacji zniknęły do czasu powstania jego ostatniej wersji (Windows Me), lecz i ona skazywała na przeprawę z instalacją, jedynie na nieco mniejszą, niż wcześniej. Tymczasem z wydaniem „Chicago” problemy zaczynają się jeszcze zanim rozpoczniemy instalację i polegają na wybraniu odpowiedniej wersji.

Słynne zdjęcie uśmiechniętych klientów, kupujących po kilka pudełek z Windows 95, które jest do znudzenia przytaczane podczas opowiadania historii owego systemu, nie portretuje tego samego systemu, który zna większość jego użytkowników. Pudełkowe 95, w postaci 28 dyskietek lub dwóch dyskietek i jednego dysku CD-ROM, jest nie tylko pierwszą, oryginalną wersją systemu. Jest przede wszystkim wydaniem przestarzałym, do którego pasuje jedynie podzbiór aktualizacji. Zdumiewającym jest, jak wielu rzeczy nie obsługiwał. Zwłaszcza w świetle faktu niemożności dodania ich obsługi – a przecież udana kampania reklamowa zapędziła do sklepów dziesiątki tysięcy ludzi. Owi szczęśliwcy, z powodów dalej mi nieznanych, wylądowali z wersją, która nigdy nie mogła zostać wzbogacona o obsługę DMA, USB, AGP i nawet takiej oczywistości, jak FAT32!

Aby uzyskać dostęp do wyżej wymienionych funkcji, w postaci wbudowanych sterowników lub dostępnych łatek, konieczne było posiadanie wersji „B” systemu Windows 95, czyli systemu OSR-2. Oznaczenie OSR oznacza zintegrowanie z systemem dodatku Service Pack. Wersja OSR-1 to nic innego, jak Windows 95 Service Pack 1. Problem polega na tym, że… Microsoft nigdy nie udostępnił dodatku Service Pack 2. Można było go zdobyć jedynie w postaci zintegrowanego wydania OSR-2. A to było dostępne tylko w komplecie z zakupem nowego komputera. Zatem ktokolwiek kupił wersję oryginalną (950) lub „A” (OSR-1), był raczej zmuszony czekać do premiery Windows 98. Który ponowił ową sztuczkę, wraz z Wydaniem Drugim. 

Wersją instalowaną na nowych „multimedialnych” pecetach z formacie ATX był najczęściej wariant OSR-2 z obsługą magistrali USB, czyli wersja OSR 2.1. Obsługiwała wszystkie będące wtedy na czasie technologie, wykazując lekką niestabilność na Pentium II. W Polsce takie płyty dystrybuował Optimus. Ale my wiemy już, że nie możemy użyć wersji polskiej, bo nie znajdziemy wszystkich łatek. Dlatego powinniśmy użyć wersji angielskiej. Ale jakiej? Pewnie tej „OSR-2”, a najlepiej OSR 2.1. Tylko, że to nie jest najnowsza wersja! Ostatnią wersją w kanale dystrybucji OEM jest mityczna wersja OSR 2.5, niedostępna w Polsce. Różni się numer produktu: najpopularniejsza w Polsce i multimedialna wersja Windows 95 to produkt numer 0197, a ostatnim sprzedawanym wariantem był produkt 1297. Zatem potrzebujemy wersji 2.5. Lecz ona również występowała w kilku wersjach. Ostatecznie ostatnią będzie produkt 1297 płyta X03-56265. Zawiera ona Windows 95 OSR-2, dodatki USB wraz z aktualizacją USBUPD2, sterowniki wraz z łatkami oraz dodatek Plus!, wymagający oddzielnego klucza. Czyżby to właśnie był święty Graal instalatorów dawnego Windows 95? Przekonajmy się!

Niestety, nie. Ostatnia wersja Windows 95, podpisana 1 grudnia 1997, nie zawiera obsługi polskich układów klawiatury! Co teraz począć? Podkreślam po raz kolejny, że nie możemy użyć polskiej wersji, bo jej nie załatamy. Istnieją dwa rozwiązania tego problemu, oba są rzadkie i nie należą do powszechnej wiedzy, nawet w środowisku abandonware. Pierwsze, łatwiejsze, to użyć programu „LANG.EXE” rozprowadzanego czasami pod nazwą „mullango.exe”. Ten jednomegabajtowy plik wzbogaca zainstalowaną wersję Windows 95 o obsługę dodatkowych układów klawiatury:

Windows 95 Multilanguage Support 

Use this utility to write documents in Bulgarian, 
Belorussian, Czech, Hungarian, Greek, Polish, 
Russian, and Slovenian.

Nic nadzwyczajnego, ale i brakujących bitów jest niewiele, więc wystarczy prosta paczka z plikami TTF, KBD, NLS i jednym INFem, żeby dostarczyć oczekiwaną funkcjonalność. Osoby cierpliwe odkryją jednak, że pliki dostarczane przez LANG.EXE jednak są dołączone do wersji OSR 2.5, tylko są możliwe do zainstalowania dopiero po wstępnej instalacji systemu. Po prostu instalator nie potrafi o nie „zapytać”, podczas gdy aplet „Dodaj/Usuń programy” na pulpicie już zawiera stosowne pozycje dla „Central European Languages”. Drugie rozwiązanie jest ciekawsze, ale prawie niewykonalne. Powstała bowiem wersja (niektórzy mówią nawet, że więcej, niż jedna!) o nazwie Windows 95 Pan-European Edition. Istnieje płyta o oznaczeniu 000-36981, ale moje źródło instalacyjne ma wyższy numerek i datę tłoczenia lipiec 1997. Płyta z OSR-2 ma oznaczenie 000-59949. Dlaczego wraz z wersją OSR-2 nie zdecydowano się po prostu połączyć wszystkich wersji językowych? Nie mam bladego pojęcia.

Wersja Pan-European Edition to Windows 95 OSR 2.1 (na płycie znajdują się sterowniki USB, ale bez aktualizacji) ze zintegrowanym narzędziem LANG.EXE, pozwalającym na uzyskanie polskiego układu klawiatury. Coś się znowu nie zgadza. Która wersja jest nowsza? Wydanie europejskie ma świeższą datę, niż angielska „ostatnia” wersja C – ale wobec tego dlaczego zawiera dodatki USB z wersji 2.1, a nie 2.5? Przecież to kalendarzowo bez sensu. Spójrzmy zatem na zawartość zbiorów CAB, zawierających oryginalne pliki instalacyjne. Efekt będzie osobliwy:

  • wersja europejska, złożona w lipcu 1997, zawiera 26 obrazów dyskietek z dnia 1996-12-06
  • wersja OSR 2.5 Plus, złożona grudniu 1997, zawiera 28 obrazów dyskietek z dnia 1996-08-24

Najwyraźniej późniejsza wersja zawiera starsze pliki, co jest bez sensu. Na jakiej podstawie zadecydować, która jest autentycznie najnowsza? Czy lepiej wybrać wydanie OSR 2.5 z paczką LANG.EXE, czy może warto spróbować z owym mitycznym Pan European edition? Chyba warto by sprawdzić, czym tak naprawdę różnią się owe wydania.

Po rozpakowaniu obu źródeł i usunięciu części wspólnej, pozostaje kilkaset plików. Naturalnie, należy odsunąć pliki amerykańskich dostawców ISP dla Internet Explorera 4 oraz czcionki i tablice kodowe. Te różnice są naturalne i również możemy je usunąć. Pozostaną wtedy rzeczy niezrozumiałe i/lub niewytłumaczalne. Pozwolę sobie na demonstrację:

Najpierw są pliki, które różnią się kilkoma bajtami, często nieznaczącymi. Ale rozmiar pliku pozostaje ten sam, a wraz z nim – numer wersji. Zachodzi podejrzenie, że stosowany w Microsofcie kompilator zachowuje się w sposób niedeterministyczny, produkując odmienne pliki po każdym uruchomieniu. Nie jest to takie nieprawdopodobne: struktura plików wykonywalnych PE wymusza ścisły rozmiar segmentów binarnych, przez co w sytuacji, gdy - w uproszczeniu - kodu jest „za mało”, kompilator dobije do pełnych wartości wypełniając miejsce ściółką („padding”). Źródłem owej ściółki mogą być zabawne rzeczy. Czasem są to zera. Czasem jest to podzbiór łańcucha tekstowego "mtswslnkmcjklsdlsbdmMICROSOFT", co jest krańcowo absurdalne i dziwne, ale prawdziwe. W jeszcze innych sytuacjach, jest to zrzut nieużywanych, ale zaalokowanych obszarów pamięci. Dowolność jest dość duża. Patrząc po niektórych plikach wydaje się, że właśnie taki jest powód różnic między wieloma binariami obu wersji Windows 95. Odważę się stwierdzić, że są to w zasadzie te same pliki i nie ma żadnej różnicy, którą wersję weźmiemy. Ale to niejedyne różnice.

Później mamy pliki w jawnie odmiennych wersjach, jak w przypadku komponentów skrzynki odbiorczej, czyli programu Microsoft Exchange (Windows Messaging). Wersja OSR 2.5 zawiera odrobinkę aktualniejszą wersją Exchange Clienta, mimo że Internet Explorer i tak ją zastępuje. Tymczasem wersja europejska, mimo, że korzysta z nowszych źródeł, jakimś cudem wylądowała ze starszym programem Exchange. Exchange jest trudny do zaktualizowania, mało funkcjonalny, ale uroczy, więc należy brać to pod uwagę podczas podejmowania decyzji. Docelowo, Exchange jest wymienialny na Outlooka (którego bądź) i całkiem możliwe, że nastąpi to niepostrzeżenie.

Wreszcie pozostają pliki, których odmienność jest zupełnie niewytłumaczalna. Mimo tego samego numeru wersji, są wewnętrznie mocno odmienne. Dotyczy to istotnych plików, jak GDI.EXE i KRNL386.EXE, a więc elementów trudnych do przeoczenia. W przypadku większości plików, zostaną zastąpione swoimi zaktualizowanymi odpowiednikami z Windows Update. Pozostałe podmieni Suplement USB. Mimo istnienia oddzielnej strony z materiałami do pobrania dla wersji amerykańskiej i pan-europejskiej, typowe aktualizacje pasują do obu wersji, więc niezależnie od tego, którą wybierzemy, uda się je zaktualizować łatkami na krytyczne błędy. Wyjątkiem będzie dodatek Plus dla wersji paneuropejskiej. W tym przypadku trzeba odznaczyć instalowanie dodatku Desktop Themes, ponieważ wybranie tematu graficznego bez obsługi polskich znaków potrafi trwale uszkodzić ich wyświetlanie… 

Wszystkie powyższe problemy poddajemy dyskusji jeszcze przed rozpoczęciem instalacji! Jakże łatwiejsza byłaby instalacja Windows 98: wybrać wersję dowolnym języku, a następnie zaktualizować nieoficjalnym dodatkiem Service Pack. Oczywiście, należy wybrać Wydanie Drugie, a żeby przyspieszyć kilka kwestii, najlepiej odłożyć uprzedzenia na bok i zainstalować Millennium Edition. Tymczasem nasz instalator, nieważne, którą wersję w końcu wybraliśmy, nie ma nawet płyty CD, z której da się uruchomić komputer! Potrzebujemy w tym celu dyskietki startowej. Na szczęście dyskietka startowa to tak naprawdę MS-DOS z dołożonym specjalnym menu, więc bez problemu spisze się dowolna dyskietka startowa, może być polska, z Windows 98. Spróbujmy wreszcie rozpocząć instalację. W tym celu potrzebujemy wspomnianej dyskietki, CD instalacyjnego i wszystkich sterowników. Aby uniknąć kłopotów z niedostępnym medium i niekończącego się strumienia pytań o dyskietkę, skutkującego instalacją systemu bez sieci i rozdzielczości VGA+, sugeruję skopiować zawartość całej płyty CD do katalogu \SOURCE uprzednio sformatowanego dyskietką dysku twardego (lub karty CF). Podobnie wszystkie sterowniki, najlepiej w jak najbardziej rozpakowanej postaci (widoczne pliki INF), do katalogu \DRIVERS. Katalog \UPDATES będziemy wypełniać na bieżąco – przed podaniem gotowca, chcę wytłumaczyć, dlaczego tak, a nie inaczej.

Instalację rozpoczynamy z katalogu \SOURCE\Win95 programem SETUP.EXE. Podczas konfiguracji sieci, w miarę możliwości, podajemy sterownik do naszej karty sieciowej, rozpakowany w katalogu \DRIVERS. Warto pamiętać, że „zawsze działająca” karta sieciowa oparta o układ RTL8139 nie ma sterowników wbudowanych w Windows 95 i nie zostanie ona wykryta podczas instalacji.

Następnie, na etapie konfiguracji sprzętu, należy wskazać rozpakowany sterownik karty graficznej i (jeżeli mamy szczęście posiadać coś takiego) plik definicji monitora. Dzięki wstępnemu wskazaniu podstawowych sterowników, pierwszy pulpit będzie o wiele bardziej znośny. Wadą tego rozwiązania jest arsenał pytań zadawanych przez instalator, który nie potrafi zapamiętać podanych ścieżek i będzie wymuszał wielokrotne wędrowanie między katalogami, celem podania mu odpowiedniego pliku. Co gorsza, ewentualny restart doprowadzi do utraty kontaktu z CD-ROM, ponieważ nie zainstalowano do niego jeszcze sterownika! Aby uniknąć konieczności dwukrotnego instalowania sterowników, lepiej zawczasu skopiować wszystko na dysk. Stąd poprzednia porada.

Gdy instalacja systemu dobrnie do końca, a my dostaniemy system z poprawnym ekranem i działającą siecią, czas na uzupełnienia i aktualizacje. Najlepiej zacząć od tych dostępnych jeszcze „na płycie”.

Na płycie znajdziemy kilka zabawek, jak menedżer haseł PWL, edytor reguł POL, klient usługi SNMP i monitor sieci. Są rozprowadzane jako pliki INF, które należy podać w menu „Mam dysk” odpowiednio albo we Właściwościach sieci, albo w aplecie Dodaj/Usuń programy. Jeżeli nie potrzebujemy tych narzędzi, możemy przejść dalej – do odblokowania odpowiednich ustawień regionalnych. Panel Dodaj/Usuń Programy powinien już pozwolić na zainstalowanie polskich ustawień regionalnych (w tym układów klawiatury). Wykonanie owej czynności w wariancie Pan-European Edition skutkuje otrzymaniem polskiego układu klawiatury pozwalającego na wpisywanie poprawnie wyświetlanych, polskich znaków. Co się dzieje w „zwykłym” wariancie C? Otóż… 

Co jest tego powodem? Są miliony hipotez i same ślepe uliczki. Jestem głęboko przekonany, że ktoś zna odpowiedź na to pytanie i jest ona rozczarowująco prosta. Ale póki co próbowałem ją odnaleźć samodzielnie. Najpierw sądziłem, że to braki w czcionkach. Ale skopiowanie czcionek nie pomogło. Potem obstawiłem na źle ustawioną stronę kodową. Ale zmiana ustawień w CHCP, CONFIG.SYS, AUTOEXEC.BAT, SYSTEM.INI oraz w Rejestrze również nie pomogły. Problem nie występuje w wersji Pan-European i w żadnym systemie nowszym od wydania 95. W dodatku zeznania świadków w internecie wskazują, że problem rozwiązano. Niektórzy mówią, że wystarczy odblokować funkcje regionalne (Usenet). Inni – że potrzebne są dodatkowe fonty (AGH). Rosyjskie strony pisane łamaną angielszczyzną informują, że problem istnieje w GDI.EXE. Istotnie, ten plik różni się między wydaniami Windows 95 (badanie wyżej), a wątek na forum MSFN wskazuje, że istotnie istnieje różnica między GDI w obu wersjach, przez co aktualizacje wydawano osobno. Z tym, że ja zaktualizowałem plik GDI w obu wydaniach do tej samej, najnowszej wersji, a różnice dalej występowały! Powód musi być więc inny. Jaki? Nie wiem. Ale jestem pewien, że ktoś z was wie! Tymczasem pozostaje nam pogodzić się, że wersja paneuropejska wygrywa z wydaniem OSR 2.5. Ten wybór będzie wymagał pewnej korekty chronologicznej.

Następna rzecz, która znajduje się na płycie jest już rozprowadzana w postaci samorozpakowującej się paczki aktualizacji EXE. Mimo, że zajmuje tylko kilkaset kilobajtów, jest wyjątkowa, bowiem aktualizuje jądro systemu, będąc tym samym czymś więcej, niż Service Pack. Mowa o Suplemencie USB, który promuje wersję systemu do wydania OSR 2.1. Zainstalowanie tej aktualizacji, poza (naturalnie) dodaniem obsługi magistrali USB, istotnie podbija wersję systemu z 4.00 do 4.03. Oznacza to, że od tego momentu część aktualizacji nie będzie pasować, wymagając alternatywnych pakietów.

Paczka USB nie została zintegrowana z systemem OSR2 z wielu powodów. Po pierwsze – była gotowa odrobinkę później, niż sam system. Po drugie, była niestabilna: wywoływała problemy na maszynach bez szyny USB. Wywoływała też problemy na maszynach, które ową szynę miały – stąd też polska wersja obok Suplementu USB serwuje również aktualizację. Wariant OSR 2.5 ma tych aktualizacji całkiem sporo. Należy je traktować jako element instalacji i zainstalować je ręcznie. Dopiero wtedy możemy zacząć myśleć o jakichś kumulatywnych paczkach z aktualizacjami.

A takowe oczywiście istnieją. Forum MSFN wydało na świat nieoficjalny Service Pack dla systemu OSR2 (z wariantami aktualizacji dla systemów zawierających suplement USB i tych bez niego). Kolekcjonowanie aktualizacji dla Windows 95 pozwala mi jednak stwierdzić, że nie jest to twór ukończony. Autor zadeklarował porzucenie dalszego rozwoju projektu, więc walczę z pokusą kontynuowania prac, które niewątpliwie dalej są potrzebne (szczegóły nie są tu istotne). Cieszmy się, że taka paczka istnieje i czym prędzej ją zainstalujmy!

Poza łataniem „wolnostojących” plików, nieoficjalny Service Pack uruchamia też kilka cichych instalatorów dla takich elementów, jak DCOM, MDAC i Windows Sockets 2.0. Taka duża paczka znacząco skraca czas potrzebny na pełne załatanie systemu i po jej zaaplikowaniu zostają nam już tylko „niedobitki”. Należą do nich: środowisko podczerwieni, Dial-Up Networking 1.4 i aktualizacja obsługi poczty internetowej dla Exchange. Każda z nich jest na swój sposób śmiechowa.

Podczerwień jest zabawna sama z siebie – po prostu pomysł na komunikację z użyciem światła podczerwonego jest pocieszny i fajtłapowaty. Ale na tym żarty się nie kończą: paczka na kilometr krzyczy, że zespół odpowiedzialny za IR po prostu nie zdążył i teraz dostarcza swoje biblioteki w jakiś skomplikowany, nie do końca zintegrowany z systemem sposób: instalacja dodatku podczerwieni wymaga ręcznego dodania portu IR z użyciem Menedżera Urządzeń. Proces jest dość prosty i na pewno nie szokował w czasach, gdy Plug and Play było nieprzetestowaną nowością, ale jednak akt manualnego zestawiania portu, który i tak przecież został już wykryty zakrawa na lekką kpinę.

Dial-Up Networking 1.4 jest pokraką z zupełnie innych powodów. Dotyczy zapomnianej funkcji, jaką było uzyskiwanie dostępu do Internetu za pomocą wdzwaniania się do linii telefonicznej (łączność analogowa). Jego zaktualizowanie wymaga podniesienia wersji tak wielu elementów, że pod koniec lądujemy z niemal całkowicie nowym stosem sieciowym. Mowa tu o narzędziu Winsock 2.0 – kolejnym komponencie ewidentnie nieukończonym o czasie, przez był rozprowadzany w postaci idiotycznej, niemożliwej do zautomatyzowania paczki. Trudno powiedzieć, czy Dial-Up Networking wprowadza do systemu Winsock 2.0. Fakt, że jakimś cudem nie jest to oczywiste powinno być wystarczającym wytłumaczeniem, co oznacza „idiotyczna paczka”: poza skopiowaniem na żywca plików konieczne jest nałożenie odpowiedniej konfiguracji w Rejestrze. DUN 1.4 robi to… ale tylko trochę. Ech. Co za ludzie.

Aktualizacja poczty internetowej to najbardziej kosmiczna zabawka z owej trójki. Jak by to wytłumaczyć… Czy wszyscy kojarzą ikonkę „Poczta Otrzymana (Inbox)” na pulpicie Windows 95? Nie prowadziła ona do programu Outlook Express. Ten program jeszcze wtedy nie istniał (a potem przez chwilę nazywał się nieco inaczej). Ikonka Inbox otwierała nieco inną aplikację, a był nią program Microsoft Exchange Client, którego nazwę rok później zmieniono na Windows Messaging. Tenże klient Exchange powstał w zabawnym momencie, gdy nie było jeszcze do końca wiadomo, czy Internet zwycięży jako główna, ogólnoświatowa sieć rozległa. Mądre głowy zastanawiały się, czy może większe przebicie będzie miał AOL? Albo Compuserve? Niepewność w kwestii protokołów prowadziła do sytuacji, w której również format poczty elektronicznej nie był sprawą w pełni rozstrzygniętą. Poczta e-mail, jaką znamy dziś ze swoich skrzynek POP i IMAP, była wtedy tylko jedną z kilku dostępnych opcji, wśród których znajdowały się również węzły pocztowe Microsoft Mail dla sieci lokalnych oraz protokół Microsoft Fax. Dlatego klient Exchange stosował chytry wybieg: wprowadzał interfejs MAPI, czyli uogólniony model „sterownika” dla poczty. MAPI określa, że jest sobie coś takiego, jak poczta elektroniczna, a poczta ze swojej natury ma takie rzeczy, jak nadawca i odbiorca, temat i jakąś treść. A to, co dzieje się pod spodem, to już inna sprawa: obsługa odpowiedniego protokołu warstwy sieci, aplikacji i prezentacji to już wybór, którego ma dokonać „sterownik do poczty”, wyrażony w MAPI. Pakiet aktualizacji poczty internetowej dostarcza właśnie taki sterownik dla poczty e-mail. Dzięki temu, ikona uniwersalnej skrzynki odbiorczej na pulpicie Windows 95 może służyć do pobierania poczty przez serwery POP3 (bez szyfrowania). Przetestowałem to na polskim dostawcy o2.pl i mogę potwierdzić, że działa :) Sam program nie jest jednak szczególnie wygodny, ale dodaje bardzo dużo hipster-punktów. A jeżeli nie robi się czegoś dla zabawy, to po co w ogóle zaczynać to robić?

Klient Exchange miał dość schizofreniczną historię: ponieważ aplikacje sieciowe zaczął rozwijać zespół Internet Explorera, stworzyli oni własny program Internet Mail and News (Outlook Express), który nie używał korporacyjnego i „niezdecydowanego” MAPI. Klient Exchange został następnie dołączony do Windows NT. Nie obsługiwał jednak… serwerów Exchange. Był jednak wzbogacony o tę „aktualizację dla obsługi poczty internetowej”, dzięki czemu był systemowym klientem e-mail. Dla niepoznaki nazwano go Windows Messaging. Zespół IE po prostu nie zdążył na premierę NT 4.0. Fun times.

Bezpośrednim następcą klienta Microsoft Exchange jest Microsoft Outlook z pakietu Office. Łączy on w sobie programy Exchange Client i Schedule+.

A skoro już mówimy o projekcie Internet Explorer, właśnie przyszła pora na instalację wersji 5.5 SP2. Wbrew powszechnej (w pewnych kręgach) opinii, że aby otrzymać wszystkie komponenty IE w Windows 95 należy najpierw zainstalować wersję 4.0, przejdziemy od razu do instalacji ostatniej wersji. Musi to być jednak naprawdę pełna wersja IE. Zdecydowana większość dystrybucji IE w sieci nie zawiera wszystkich wydanych plików CAB, przez co nie da się „złożyć” pełnego Internet Explorera. Ponadto, domyślny plik odpowiedzi nie wyświetla pewnych komponentów nawet, gdy są dostępne. Do wielkich nieobecnych należą przede wszystkim:

  • Comic Chat
  • FrontPage Express
  • Wallet
  • Aktualizacja Pulpitu Windows
  • MSN Messenger
  • Windows Media Player

Odpowiednie dostosowanie źródła instalacyjnego pozwala zainstalować w systemie wszystkie powyższe komponenty. Jedyna rzecz, której zabraknie, to kodeki Real Audio. Ale można je dorzucić ręcznie!

Gdy IE zostanie zainstalowany, pozostaną już tylko niedobitki, jak MDAC i DirectX 8. Programy typu Microsoft Management Console albo TweakUI nie są ściśle aktualizacjami, jedynie paczkami całkowicie opcjonalnych uzupełnień.

Zatem podsumowując, procedura aktualizacji Windows 95 wygląda następująco:

  • Wybrać wersję pan-europejską OSR-2
  • Doinstalować język polski w Panelu Sterowania
  • Wypromować system do wersji OSR 2.1 (Suplement USB)
  • Doinstalować obsługę podczerwieni
  • Zaktualizować dostępne sterowniki poczty elektronicznej
  • Uruchomić instalację nieoficjalnego kumulatywnego Service Packa dla Windows 95
  • Zainstalować dodatek Dial-Up Networking 1.4
  • Uruchomić instalację dostosowanej kopii Internet Explorera 5.5 SP2
  • Doinstalować brakujące pozostałości: MDAC 2.7, DirectX 8.0a…

Wszystkie powyższe paczki zebrałem i umieściłem w „Windows 95 Update ISO”, które umieszczę w dziale pobierania stare.pro. Patrząc jednak na strukturę paczek z aktualizacjami mogę już teraz powiedzieć, że da się zmniejszyć powyższą liczbę kroków i instalować ( po „wypromowaniu” systemu do obsługi USB) jedynie trzy paczki:

  • Zintegrowany superpakiet aktualizacji
  • Internet Explorer
  • Skrypt cicho instalujący wszystkie pozostałości za jednym zamachem

W chwilach bezsenności na pewno będę za tym dłubał :) Być może uda się zdążyć przed 25 urodzinami systemu Windows 95.

Jakie wnioski płyną z owej „zabawy”? Przede wszystkim: jeżeli chcesz instalować Windows 9x, wybierz 98, a najlepiej Me. Nie chodzi tylko o to, że działa na nich więcej softu, nie wspominając o cudzie znanym pod nazwą „KernelEx”. Chodzi też o to, że Windows 95 w momencie premiery był morderczo niedokończony, a konieczność poważnego załatania go obnażyła rażące braki organizacyjne w Microsofcie. Kiedyś twierdziłem, że „inżynieria oprogramowania” to nie jest prawdziwa nauka, tyko najwyżej zbiór kilku obserwacji i wniosków ze zdrowego rozsądku. Podobnie, jak marketing. Dziś wiem, że to zdecydowanie prawdziwa nauka i prawdziwa inżynieria. Gdy zawodzi – powstają takie koszmary wdrożeniowca, jak Windows 95.

Wracam do pracy, usuwać kafelek z pogodą i Candy Crush Soda Sagę z firmowych obrazów instalacyjnych Windows 10. Ależ wspaniałego dokonaliśmy postępu przez te lata! ;)