64 bity - starcie platform

Nowa platforma próbuje zdobyć świat. Czy warto już teraz przejść na system jutra? Przeprowadziliśmy gruntowne testy wydajności środowisk Windows XP Professional x64 Edition i 64-bitowej edycji Linuksa.


Nowa platforma próbuje zdobyć świat. Czy warto już teraz przejść na system jutra? Przeprowadziliśmy gruntowne testy wydajności środowisk Windows XP Professional x64 Edition i 64-bitowej edycji Linuksa.

W dziedzinie procesorów aż roi się od ciągłych zmian i ulepszeń, jednak rzadko kiedy sięgały one tak głęboko, jak obecnie. Z jednej strony, rynek zalewają systemy x64, z drugiej zaś procesory dwu-rdzeniowe i technologia Vanderpool (dzięki niej jedna platforma sprzętowa działa niczym wiele wirtualnych) są dobrą podstawą do szybkich i niezawodnych systemów. Rozszerzenia 64-bitowe zastosowane w procesorach AMD oferują kompatybilność z platformą 32-bitową i - po zastosowaniu odpowiedniego systemu operacyjnego - dostęp do większych zasobów pamięci oraz większe bezpieczeństwo dzięki technologii Data Execution Prevention. Tymczasem Dual-Core zapewnia dwa rdzenie procesora na jednej płytce krzemowej, a Vanderpool wprowadza możliwość wirtualizacji sprzętu, co uprości konsolidowanie serwerów, a także zwiększy bezpieczeństwo klientów poprzez separację procesów.

Windows 64 - co się zmieni?

Wprowadzenie 64-bitowych wariantów środowisk Windows XP i Server 2003 (Windows 64) oznacza nie tylko wzbogacenie systemu operacyjnego o obsługę najnowszych modeli układów Intela i AMD. Rozszerzenia łączą się z istotnymi zmianami wewnątrz systemu, których nie widać na pierwszy rzut oka.

64 bity - starcie platform

Warstwa pośrednia. Aby umożliwić działanie 32-bitowych aplikacji, niezbędna jest emulacja 32-bitowego środowiska za pośrednictwem warstwy WoW (Windows on Windows).

Microsoft nie tylko dostosował jądro i pozostałe elementy systemu operacyjnego do nowych właściwości procesorów, lecz skorzystał z okazji, aby uwolnić Windows od balastu - składników poprzednich wersji, zachowywanych wyłącznie w celu utrzymania maksymalnej kompatybilności. Dlatego też usunięto m.in. podsystemy DOS, OS/2 i POSIX, a związane z tym ograniczenia nie powinny stanowić problemu w większości środowisk. Kłopoty może powodować tylko brak obsługi aplikacji 16-bitowych - niektórzy nadal korzystają z takich aplikacji, lecz przede wszystkim próby uruchamiania procedur instalacyjnych będą z góry skazane na niepowodzenie. Nawet w wypadku oprogramowania 32-bitowego wiele instalatorów przywołuje najpierw 16-bitowy segment, miniaturowy program, który ma sprawdzać wersję systemu operacyjnego i odmówić zainstalowania, gdy trafi na 16-bitowy system operacyjny. Właśnie ten składnik instalatora nie działa dobrze w 64-bitowych edycjach Windows (zgłaszają nieprawidłowy format pliku EXE), powodując przerwanie instalacji. Ponadto niektóre procedury instalacyjne nie radzą sobie z wynikiem, sprawdzając wersję środowiska Windows. Wskutek tego przerywają działanie, podając odpowiedni komunikat.

Microsoft wyposażył system w swoistą osłonę (tzw. wrapper) obsługującą wszystkie stosowane powszechnie typy instalatorów. Ma ona nie dopuszczać do powstania omówionego wyżej problemu, wykrywając przywołanie takiej procedury instalacyjnej i zastępując ją kompatybilnym instalatorem 32-bitowym. Można jednak nadal instalować pakiety MSI, bo odpowiednie procedury systemu operacyjnego potrafią je wczytać i skonfigurować.

Co nowego w Windows 64?

Wprawdzie Windows 64 dysponuje specjalną, 64-bitową wersją Internet Explorera, jednak nie pozbył się 32-bitowego wariantu przeglądarki, bo leciwe 32-bitowe wtyczki nie poradziłyby sobie z nową edycją IE. Domyślnie system uruchamia wersję 32-bitową - po kliknięciu ikony na pulpicie, ikony na pasku szybkiego uruchamiania (pasku zadań), a także dowolnego adresu URL. Chcąc przywołać 64-bitowy wariant przeglądarki, trzeba przedzierać się przez polecenia menu Start.

Obie wersje współdzielą Ulubione, Historię, folder tymczasowych plików internetowych, a także liczne ustawienia, takie jak strona główna, konfiguracja zabezpieczeń czy blokada wyskakujących okien. Dzięki temu można w razie potrzeby szybko i wygodnie przełączać się między obydwoma wariantami przeglądarki.

Poważną wadę Windows 64 stanowi to, że wszystkie sterowniki muszą być w całości 64-bitowe, ponieważ działają w trybie jądra i muszą mieć możliwość bezpośredniego odwoływania się do niego. Wprowadzenie warstwy kompatybilności nie tylko znacznie zmniejszyłoby wydajność, lecz ponadto otworzyło liczne luki w zabezpieczeniach systemu. Przed zmianą systemu operacyjnego na Windows 64 warto zatem sprawdzić, czy są sterowniki do podzespołów sprzętowych. Zestawienie, obecnie jeszcze dość skromne, certyfikowanych sterowników 64-bitowych zawiera lista HCL (Hardware Compatibility List) dostępna pod adresemhttp://www.microsoft.com/hcl .

Mechanizm DEP (Data Execution Prevention) jest domyślnie uaktywniony i nie można go wyłączyć poprzez plik konfiguracyjny boot.ini ani w Panelu sterowania. Ponadto nie można ograniczyć zakresu jego działania do określonych aplikacji, co jest możliwe w 32-bitowych wersjach środowiska Windows. Nie należy się jednak spodziewać, że DEP spowoduje spadek wydajności, bo kontrolę nad tym mechanizmem pełni w całości procesor, w którym jest osadzony.

Zasadniczo można zainstalować w jednym komputerze zarówno 32-bitowy, jak i 64-bitowy Windows, ale koniecznie na osobnych partycjach. W przeciwnym razie w 32-bitowej wersji Windows powstaną ogromne problemy z aplikacjami 64-bitowymi zgromadzonymi w folderze Pogram Files, bo jest on współdzielony przez oba warianty systemu.

WoW64

Dotychczasową wersję WoW (Windows on Windows), która ma zapewniać kompatybilność 32-bitowych edycji systemu z 16-bitowymi aplikacjami, zastąpi WoW64, który pozwala uruchamiać 32-bitowe oprogramowanie w 64-bitowym Windows.

Jednak nie jest to tak proste, jak wygląda na pierwszy rzut oka. Emulator WoW64 działa w trybie użytkownika i zapewnia interfejs do biblioteki Ntdll.dll w wersji x86. Składa się z następujących bibliotek DLL:

  • Wow64.dll - zawiera infrastrukturę emulatora, przechwytuje wszystkie przywołania pliku jądra Ntoskrnl.exe i zapewnia translację parametrów i odpowiedzi.

  • Wow64win.dll - przechwytuje przywołania pliku Win32k.sys.

  • Wow64cpu.dll - wymagany wyłącznie w komputerach z układem Itanium. Służy do emulowania instrukcji x86 w tym procesorze.
Oprócz 64-bitowej wersji biblioteki Ntdll.dll są to jedyne 64-bitowe pliki DLL, wczytywane przez procesy 32-bitowe. Poza tym wyjątkiem w systemie obowiązuje ścisła separacja składników 32- i 64-bitowych.

Podczas uruchamiania emulatora plik Wow64.dll wczytuje wersję x86 biblioteki Ntdll.dll i rozpoczyna proces inicjalizowania, wczytując wszystkie nieodzowne biblioteki 32-bitowe, które muszą się znajdować w komputerze z zainstalowanym 64-bitowym systemem Windows. Większość to dokładnie kopie oryginalnych plików binarnych Windows.

WoW64 - dostęp do rejestru i plików

64 bity - starcie platform

Windows Server 2003

Aby umożliwić dostęp do plików i do rejestru Windows, WoW64 musi poczynić dodatkowe przygotowania. Dotyczy to w szczególności interfejsów COM i ich zapisów w rejestrze. Na cele aplikacji 32-bitowych Windows 64 zakłada oddzielną gałąź w rejestrze - "HKEY_LOCAL_MACHINE\Software". Obie platformy współdzielą tylko nieliczne podklucze wspomnianej gałęzi.

W kontekście przywołań plików należy pamiętać, że wbrew swojej nazwie katalog \Windows\System32 zawiera wyłącznie programy 64-bitowe. Na dodatek niemal wszystkie programy i biblioteki DLL mają takie same nazwy, jak w 32-bitowym wariancie Windows. Zmusza to emulator WoW64 do blokowania odwołań do katalogu System32, bo 32-bitowe aplikacje nie mogą wczytywać 64-bitowych bibliotek. Tymczasem 32-bitowe pliki DLL umieszczono konsekwentnie w podkatalogu \Windows\SysWOW64. Gdy 32-bitowy program próbuje wczytać np. bibliotekę \Windows\System32\ crypt32.dll, WoW64 automatycznie przekierowuje to odwołanie do pliku \Windows\SysWOW64\crypt32.dll.

Opisane przekierowywanie odwołań do plików nie obejmuje katalogów drivers\etc, spool, catroot i catroot2 w obrębie katalogu System32, bo zawierają one takie dane, jak certyfikaty czy ustawienia współdzielone przez oba systemy. Ponadto nie dotyczy na przykład takich plików, jak Hosts, który musi być identyczny w obrębie całego systemu, aby umożliwić poprawną translację adresów.