Wraz z nieuniknionym przejściem systemu Windows XP z mainstreamu do niszy, a następnie Krainy Retro, w Internecie zaroiło się od poradników dotyczących używania XP na „nowszym sprzęcie”. Powtarzając się niemiłosiernie, dotyczą one zazwyczaj niniejszych kwestii:

  • Sterowniki Bluetooth, Wi-Fi i audio (UUA)
  • Uruchomieniowe sterowniki obsługi SATA
  • Pokonanie limitu 3GB (PAE)
  • Ostatnie wersje programów dla XP (spoiler: Firefox i Thunderbird 52.9)
  • Obsługa SSL i TLS

Tematyka instalacji Windows XP na komputerach z procesorem Haswell i nowszych jest już ograna do bólu. Wiadomo też, na ile da się ten stary system zaktualizować do poziomu umożliwiającego egzystencję w dzisiejszym Internecie (naturalnie, z uwzględnieniem nie uniknionych słabości dot. bezpieczeństwa).
Rzadziej myśli się w drugą stronę: na ile możliwe jest ożywienie XP na starym sprzęcie tak, by był używalny. W większości przypadków stosuje się podejście ekstremalne, czyli próbę uruchomienia systemu na małej ilości pamięci, słabym procesorze i tak dalej. Nie są to racjonalne scenariusze i nie odtwarzają one nawet potencjalnie zachodzących gdzieś, rzadkich sytuacji. Nikt nie próbował z jakiegoś logicznego powodu uruchamiać Windows XP na Pentium 75 MHz.
O wiele bardziej racjonalnym scenariuszem jest uruchamiać najmocniej zaktualizowany Windows XP na starszych urządzeniach z naklejką „Designed for Windows XP”. Pierwsze komputery z XP pojawiły się w październiku 2001 i w przeważającej większości były to urządzenia z procesorem Pentium 4. Teoretycznie, Pentium III Tualatin był sprzedawany do początku 2002 roku i chronologia wskazywałaby, że istniały zestawy z P3 „Designed for Windows XP”, bardzo trudno jednak znaleźć na to dowody. Z lekką tylko dozą nieścisłości można powiedzieć, że XP zadebiutował na Pentium 4.
Był jednak pewien procesor sprzedawany w oparciu o technologię Pentium III i nie był to Tualatin (no, przynajmniej nie ten na Socket 370). Mowa o Pentium M, energooszczędnym układzie stosowanym w urządzeniach przenośnych. ThinkPady z lat 2001-2003 były oparte właśnie o Pentium M. Taki procesor jest tylko trochę słabszy od P4, ale za to pracuje ciszej i chłodniej. Komputery z nim zdecydowanie były „Designed for Windows XP” i dumnie nosiły taką etykietę.
No więc skoro Pentium M nie jest przypadkiem „ekstremalnym”, jak Pentium 75, gdzie trzeba by było mocno rzezać system celem minimalizacji, ani „ultranowoczesnym”, gdzie trzeba wstrzykiwać shakowane sterowniki celem wykrycia dysków (Haswell), to w czym problem? XP powinien po prostu działać i tyle.
Otóż nie. Być może łatwo zapomnieć o tym fakcie, ale Pentium M, w przeciwieństwie do Pentium 4, nie obsługiwał zestawu instrukcji SSE2. Z biegiem lat, stały się one istotne w szeregu oprogramowania. To, że jakiś program działa na Windows XP nie oznacza od razu, że działa na procesorze bez SSE2. Dlatego o ile odświeżenie i pełna aktualizacja XP sprzedawanego razem z komputerem na Core 2 Duo będzie względnie prosta (acz jest to marnowanie procesora), to zrobienie tego samego na sprzęcie typu ThinkPad T23, także sprzedawanym z Windows XP, okaże się frustrującym przedsięwzięciem. Co więcej, wielu archiwistów decyduje się zachowywać „ostatnie wersje” programów dla XP, a nie „ostatnie wersje bez SSE2”, dzięki czemu wkrótce ich upolowanie może się okazać skomplikowane.

Windows Update

W okolicach maja 2018 zaczął się spory problem z nowymi wersjami bibliotek oferowanych wewnątrz aktualizacji z Windows Update. Ewidentnie podniesiono wersje kompilatorów budujących fiksy, bowiem wszystkie wersje obsługiwanych systemów zaczęły wymagać SSE2. Było to aferą tylko w przypadku Windows 7: przestał on wtedy działać na fizycznych procesorach Pentium III i Pentium M, czyli piętnastoletnich już wtedy układach. Stanowiło to zaprzeczenie wymagań minimalnych i początkowo było opisane komentarzem o pracach nad poprawioną wersją, w efekcie jednak nigdy nie wydano łatek niepotrzebujących SSE2, śląc w świat przekaz o pośrednim brzmieniu „kup se pan lepszy komputer, zresztą i tak nic nam nie zrobicie”.
Starsze systemy również odczuły nagłe przejście na SSE2, ale powody licencyjne czyniły je niewidzialnym. Windows Vista utracił wsparcie w 2017 roku, ale pasowały do niego aktualizacje do Windows Server 2008. Ten z kolei niemal nigdzie nie jest uruchamiany na Pentium III ponieważ niezbyt wydajnie wtedy „serwuje”, a marudzenie, że na Viście nie działają aktualizacje i tak nieprzeznaczone dla niej dawało dość mało możliwości roszczenia sobie praw do sprawnych.
Windows XP utracił wsparcie w 2014 roku, ale pasują do niego aktualizacje do POSReady 2009, który miał je do maja 2019. POSReady był systemem sprzedawanym wraz ze sprzętem lub możliwym do zakupu w procesie certyfikacji OEM urządzenia. Nigdy nie sprzedano (i zapewne nie licencjonowano) sprzętu z POSReady, który używałby procesora bez SSE2.
Dlatego jeżeli wskutek gimnastyki licencyjnej lub łamiącej EULA metody odblokowania aktualizacji chcemy zaktualizować XP do poziomu z 2019 roku, należy uważać na kilka (acz nie wszystkie) późniejszych aktualizacji. Ich nałożenie nie skończy się spektakularnym BSOD-em, jak w przypadku Windows 7, przestaną jednak działać pewne ważne rzeczy, jak aplikacje mocno używające GDI+/COM+, Instalator Windows i baza danych Jet. Potencjalnie problemów jest więcej, ponieważ jednym z aktualizowanych programów, które nagle zaczynają potrzebować SSE2, jest ntkrnlmp.exe.
Mowa o następujących aktualizacjach:

  • KB4343674
  • KB4458000
  • KB4473077
  • KB4486463 (ntkrnlmp.exe)
  • KB4489973 (msado15.dll)
  • KB4489977
  • KB4490385
  • KB4493793
  • KB4493794
  • KB4493795
  • KB4493796
  • KB4493797
  • KB4494528
  • KB4495022
  • KB3139398
  • KB4487085
  • KB4462987
  • KB4490228
  • KB4495022 (gdiplus.dll)
  • KB4463361 (gdi32.dll)
  • KB4481275 (msrd3x40.dll)
  • KB4486464 (msi.dll)
  • KB4487385 (msjet40.dll)
  • KB4487396 (msrd2x40.dll)
  • KB4340937 (msi.dll)

Niezbędne oprogramowanie

W kwestii programów, a nie samego systemu, zacznijmy dla odmiany od dobrych wieści. Niniejszy zestaw klasyków będzie działać w najnowszej wersji:

  • Gadu-Gadu w wersji 12.4 (choć pożera dużo RAM-u)
  • IrfanView 4.54
  • 7-Zip 19.00
  • Winamp 5.8 (choć jest to już program nierozwijany od lat)

Powyższe programy można uznać za fragment „kanonu” oprogramowania z poprzednich dekad, rozpowszechnianego na różnego rodzaju kompilacjach i niezbędnikach. Dziś już spora doza takich programów wymarła (jak komunikatory, menedżery pobierania, dialery i kalendarzyki), ale niektóre wciąż istnieją, bowiem Windows nigdy nie dorobi się archiwizatorów i przeglądarek obrazów, które jednocześnie obsługują wiele formatów i nie są obrzydliwie ciężkie lub nieergonomiczne.

Multimedia

Później zaczynają się większe schody. Nieco bardziej zaawansowane narzędzia użytkowe, czyli kodeki, odtwarzacze, edytory tekstu i terminale wykazują różne formy niedziałania z Windows XP, niekoniecznie związane akurat z SSE2. Zestaw umożliwiający „odtwarzanie wszystkiego” jest łatwy:

  • VLC Player
  • ffmpeg

Oczywiście, niniejszy dalszy ciąg kanonu jest/był instalowany o wiele rzadziej, niż pierwsza część. Można zaryzykować, że w dobie Spotify i Netfliksa, odtwarzacze plikowe są stosowane głównie w celu obsługi nieoficjalnych napisów do kradzionych seriali. Warstwę kodeków dostarczają z kolei przeglądarki internetowe, obudowując aplikacje odtwarzaczy swoimi wrapperami PWA. Takie cuda, przeładowane JavaScriptem, są nam niedostępne na Pentium M z powodu zbyt wysokiego zapotrzebowania na moc. Musimy się więc posiłkować starszymi wersjami programów „lokalnych”.
Najnowsza wersja VLC uruchamia się na XP i bez SSE2 ale nie potrafi zainicjalizować kodeków wideo. Możliwe jest odtwarzanie muzyki, również ze strumienia, ale zarządzanie programem przebiega w całości tekstowo. Konieczny jest zatem istotny downgrade VLC do serii 2.x. A i wtedy można się natknąć na formaty używające kodeków zbudowanych z wykorzystaniem SSE2.
Zestaw ffmpeg istnieje w wielu nieoficjalnych i niezwiązanych ze sobą nawzajem wersjach. Wytyczenie zestawu wersji w pełni zgodnych z brakiem SSE2 wymaga oddzielnych poszukiwań i chwilowo znajduje się poza zakresem niniejszego tekstu. Aczkolwiek, istnienie programów typu vPlayer pozwala pamiętać, że w latach 2000-2003 istniały już filmy odtwarzane z akceptowalną jakością na komputerach PC (i odtwarzaczach DVD), a więc Pentium III/M nie mogą zostać jednoznacznie uznane za „zbyt stare” dla multimediów. Oczywiście umrą przy Full HD i zatną się na YouTube z WEBM, ale 480p z DVD i filmy DivX nie będą dla nich formatami nie do przebycia.

Zaawansowane narzędzia

  • PuTTY
  • Notepad++
  • FileZilla

Tutaj odsyłam do strony xp.stare.pro. Niewiele mądrego mogę o nich powiedzieć i nie czai się za nimi żadna historia. Przejdźmy więc dalej.

Office

Do kompletu z Windows XP najlepiej stosować Office XP. Pakiet ten, podobnie jak 2003, może być wzbogacony o filtry obsługujące formaty „DOCX”, ale w tym celu lepiej zastosować pakiet, który obsługuje ten format natywnie. Najnowszą wersją Office, którą jest w stanie udźwignąć Windows XP, jest Office 2010. Niestety, jego zaktualizowanie do najwyższego obsługiwanego poziomu kończy się awarią związaną z GDI+ na procesorach bez SSE2, więc prawdopodobnie lepszym, lżejszym acz starszym wyborem będzie Office 2007. Czasowa dylatacja między 2010 i 2007 oznacza szereg niezałatanych podatności w zabezpieczeniach. Aby znacząco zmniejszyć ryzyko korzystania z pakietu Office na Windows XP, należy wykonać następujące kroki:

  • Wyłączyć obsługę makr na tyle, żeby konieczne było mocne staranie celem ich uruchomienia
  • Wyłączyć rozszerzenia powłoki rysujące miniatury dokumentów w Eksploratorze
  • Nie instalować komponentu Edytor Równań i korzystać tylko z nowego UI równań

Przeglądarki internetowe i pakiety internetowe

Konieczność „klasycznego” podejścia do oprogramowania jest szczególnie męcząca w kwestii przeglądarek internetowych. Niegdyś ta kategoria wysoce specjalizowanego oprogramowania stanowiła zbiór oddzielnych, samozawartych aplikacji uruchamianych w razie potrzeby. Dziś są one nieodzownym rozszerzeniem systemu operacyjnego, dostarczając menedżery haseł, narzędzia migracji ustawień, profile tożsamości i infrastrukturę instalacji dedykowanych aplikacji (PWA). Dzisiejsze wersje Chrome oferują w zasadzie wszystko to, co dodano do systemu Windows 8 celem uczynienia go „mobilnym”. Tak wielką skalę funkcji dostarczają dziś przeglądarki.
Wszystko to wymaga, rzecz jasna, mocnych procesorów, rozbudowanych zestawów instrukcji (konsumenci TLS potrafią używać np. AVX), najnowszych systemów, obsługi strumieni ADS i góry pamięci operacyjnej. Wybór przeglądarki działającej bez SSE2 i jednocześnie na tyle sprawnej, że poradzi sobie (jako tako) z nowoczesnym internetem, poprawnie wyświetli nowe strony i nie zatnie na złożonym obliczeniowo kodzie JS, jest mocno ograniczony.
Stosowanie nieaktualnego Chrome’a kończy się niemalże strumieniem inwektyw ze strony witryn internetowych, a także samego programu. Niemożliwe jest także stosowanie rozszerzeń i funkcji synchronizacji. Chrome potrzebuje SSE2 od bardzo dawna. Wykluczając niszowe przeglądarki, z którymi bagaż trudności połączony z brakiem SSE2 może się okazać zbyt przytłaczający, pozostają nam produkty Mozilli:

  • Firefox ESR 45.9
  • Thunderbird 45.8

Niniejsze wersje poradzą sobie z dzisiejszym Internetem. Oczywiście znajdą się strony odmawiające współpracy z tak starymi programami, ale obsługa szyfrów TLS oraz całkiem przyzwoity wynik w teście HTML5 pozwalają na znacznie więcej, niż poczciwy Internet Explorer 8 ze swoim szaleńczo niewydajnym silnikiem JS.
Thunderbird 45 będzie mieć trudności z uwierzytelnieniem OAuth2 dla Outlooka i GMaila, co zmusza do wykorzystania tzw. „haseł do aplikacji”. Ale połączenie z serwerami pocztowymi w szyfrowany sposób wciąż działa poprawnie i można wysyłać i odbierać pocztę.
Jednak to, że istnieją przeglądarki w miarę poprawnie wyświetlające dzisiejszy Internet na sprzęcie bez SSE2 jeszcze nie oznacza, że proces ten jest możliwy z zachowaniem akceptowalnej jakości. Strony wyświetlą się, ale po bardzo długim czasie. Zeżrą setki megabajtów pamięci i załadują elementy uniemożliwiające przewijanie bez kilkusekundowych „zamrożeń” obecnych przy każdym skoku scrolla.
Usunięcie tego problemu nie jest możliwe bez uszkodzenia funkcjonalności wielu stron. Ale jeżeli nie mamy w planach używania jakiejś strony jako aplikacji, a interesuje nas jedynie… przeglądanie treści (jak w dawnych, dobrych czasach), wskazane jest wykorzystanie rozszerzeń usuwających reklamy i blokujących działania skryptów na stronach. Do tego celu najlepiej nadają się uBlock Origin oraz NoScript.
Ich najnowsze wersje nie działają z Firefoksem 45, ze względu na zmianę infrastruktury rozszerzeń z XPI na WebExtensions. Konieczne jest użycie ich starszych wariantów, co nie jest takie łatwe. Portal wtyczek Mozilli nie posiada katalogu z historią wydań, a twórcy rozszerzeń często oferują na swojej stronie tylko najnowszą wersję. Dlatego oferujemy mirror rozszerzeń NoScript i uBlock w wersjach zgodnych z FF 45.
Co ciekawe, Firefox 45 jest za stary by działały w nim nowe wtyczki, ale jednocześnie za nowy, by działały w nim stare (niepodpisane). Ponieważ ważnym podpisem są obecnie pokryte wyłącznie „nowe” wtyczki, konieczne jest wyłączenie zakazu instalacji niepodpisanych XPI w panelu about:config. Pozwoli to zainstalować stare, niepodpisane wtyczki w Firefoksie 45.
Zarówno uBlock jak i NoScript zawierają w swoich manifestach, że potrzebują co najmniej wydania 52, ale wersja 45.9 (nie 45!) okazuje się być funkcjonalnym ekwiwalentem, na którym powyższe wymaganie jest spełnione. Stosowanie owych wtyczek znacząco zmniejsza ból przeglądania Internetu na procesorze Pentium III. Ale ma to swój koszt. Facebook na przykład będzie wymagał odblokowania skryptów, po czym bardzo szybko doprowadzi sprzęt na granice wytrzymałości obliczeniowej. Niektóre rzeczy po prostu nie mogą już działać na sprzęcie z 2001.

Szyfrowanie dysku

  • VeraCrypt

Wedle zawsze przytaczanej przeze mnie maksymy „kiedyś było lepiej, mimo że było gorzej”, kwestie bezpieczeństwa danych mobilnych 15-20 lat temu były rozpatrywane w zupełnie innych kategoriach, niż obecnie. Laptopy, w tym ThinkPady, przez długi czas nie zawierały żadnych narzędzi szyfrujących dysk. Zmieniło się to dopiero w okolicach roku 2005, gdy układy ESS, a potem TPM stały się standardowym wyposażeniem. Początkowo jednak żaden system nie umiał z nich korzystać, a dołączone oprogramowanie odblokowujące zabezpieczenia było trudne, ciężkie i złożone.
Dziś cieszymy się układami TPM zapewniającymi Secure Boot oraz „tampering protection”, będące software’ową diodą otwartej obudowy: jeżeli ktoś modyfikował sprzęt lub proces uruchamiania systemu, ładowanie nowoczesnych OS-ów zablokuje się, czekając na potwierdzenie, że to na pewno my gmeraliśmy wewnątrz i wywołaliśmy zabezpieczenia. Układy TPM potrafią też przechowywać klucze i ułatwiać operacje kryptograficzne, z czego korzystają narzędzia szyfrujące dyski twarde. LUKS oraz BitLocker dostarczają taką funkcję w konsumenckich systemach operacyjnych i szyfrowanie dysków, fantastyczne narzędzie w przypadku kradzieży sprzętu lub przenoszenia danych wrażliwych, jest w dzisiejszych, okropnych czasach, dostępne dla ogółu.
Co jednak ze starym sprzętem? Modułów TPM w nich nie ma, układy ESS są rzadkie, opcjonalne i mało użyteczne, a narzędzia zabezpieczające z owych czasów to niewiele ponad menedżery haseł (przeglądarki internetowe radziły sobie z tym bowiem dość kiepsko).
Możliwe jest stosowanie BitLockera bez TPM, w trybie stuprocentowo programowym. Niestety, systemy obsługujące BitLockera od 2017 roku wymagają w swoich aktualizacjach SSE2. Nawet gdy zejdziemy do najstarszych obsługiwanych wersji, Windows Vista oraz Windows Server 2008, okaże się że owe systemy potrzebują SSE2 (acz dopiero od 2017 roku: wcześniejsze aktualizacje są OK, ale XP otrzymywał przecież łatki dwa lata dłużej). Mimo, że Vista wcale nie jest unieruchamiająco powolna na komputerze z 2002, nowoczesne aktualizacje niestety przekreślają jej użycie.
Pozostaje nieodżałowany XP. Ten jednak był projektowany z myślą o komputerach stacjonarnych z 2001 roku, więc szyfrowanie dysków systemowych uchodzi tu raczej za scenariusz rodem z filmów sensacyjnych. Dlatego ponownie potrzebne jest zewnętrzne oprogramowanie. Po szeregu turbulencji wydawniczych i wątpliwości dotyczących wiarygodności kodów źródłowych, najczęściej sugerowaną dziś alternatywą dla systemowego BitLockera jest narzędzie VeraCrypt.
W swojej najnowszej wersji, VeraCrypt wymaga jednak SSE2. Wynika to z flag, jakie są przekazywane do GCC podczas kompilacji. Ostatnią wersją, która nie wymaga SSE2 jest wydanie 1.17. Niestety, wymaganie SSE2 jest niejawne: program po prostu nie ukończy szyfrowania, mimo poprawnego działania interfejsu kreatorów. Prawdopodobnie jest możliwe samodzielne zbudowanie najnowszej wersji bez SSE2, ale jest to proces na tyle skomplikowany, że najwyraźniej nikt nie próbował i nie są dostępne żadne instalatory.

Powyższy zbiór programów pozwala pracować bez frustracji z wykorzystaniem podstawowych narzędzi, jak edytor, menedżer plików i przeglądarka obrazów, skorzystać z zasobów Internetu, połączyć się ze standardowymi, mało wymagającymi usługami, a także przenosić laptopa bez najsilniejszych obaw o dane, dzięki szyfrowaniu (w możliwej do złamania, acz wciąż wymagającej postaci).