64 bity - starcie platform
-
- Krzysztof Daszkiewicz,
-
- Mike Hartmann,
-
- Christian Vilsbeck,
-
- Jürgen Donauer,
- 01.07.2005
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.

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 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.
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

Windows Server 2003
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.