Gemischter 32- und 64-Bit-Betrieb von Windows

23. April 2010

Bei der Umstellung von 32-auf 64-Bit-Windows handelt es sich um kein Upgrade: Eine frische Installation ist nötig. Ehe ein Unternehmen in die neue 64-Bit-Welt startet, sollte es sich um die nötigen Treiber kümmern. Zudem kann die "alte" 16-Bit-Applikationssoftware nicht mehr in der 64-Bit-Welt verwendet werden – es sei denn man geht den Umweg über 32-bittige Virtuelle Maschinen, wie sie zum Beispiel mit dem XP-Mode von Windows 7 bereit stehen. Mehr Details aber auch die verschiedenen Aspekte der Windows-Architekturen (wie x86, IA64 und AMD64) klärt der Autor in diesem Beitrag für unsere Abonnenten.

Das Verstehen der Prozessor-Architektur ist der Schlüssel zum Erfolg, wenn man in seiner Windows-Umgebung einen gemischten Betrieb von 32- und 64-Bit-Systemen einsetzen möchte. Wer den Zwischenschritt aus einer reinen 32-Bit-Umgebung in die gemischte Form hinter sich gebracht hat, dem wird unter Umständen bei der Umgebungsvariablen PROCESSOR_ARCHITECTURE eine Ungereimtheit auffallen: Wer sich diesen Parameter über das System-Applet in der Systemsteuerung oder über CMD.EXE (auf einem 64-Bit-System) anzeigen lässt, der wird den Wert AMD64 eingetragen sehen, selbst wenn er sein 64-Bit-Windows-System auf einer Intel-64-CPU wie etwa einen Xeon 5500 betreibt.

Doch dabei wird nicht der falsche Hersteller – AMD anstelle von Intel – angezeigt, sondern es geht vielmehr um die generelle Prozessorarchitektur und nicht um die zugehörige Implementierung. Da die Intel-64-Prozessoren die AMD64-Architektur verwenden, sind auch sie Mitglieder der AMD64-Prozessor-Klasse – so lautet die Logik hinter dieser Umgebungsvariablen.

Doch aus dem Blickwinkel der IT-Abteilung steht die Windows-Architektur im Vordergrund – und die wird in der Regel mit der Prozessorarchitektur gleichgesetzt. Muss ein Unternehmen mehrere Windows-Architekturen unterstützen, so zieht das einen höheren Aufwand nach sich: Es sind mehrere Windows-Basisdateien bis hin zu Servicepacks und den entsprechenden Treibern vorzuhalten. Das Verstehen der Prozessorarchitektur wird einem helfen, einige Probleme zu beseitigen, die in einer gemischten, vernetzten Umgebung auftreten können.

Im Windows-Umfeld sind derzeit noch drei Prozessorarchitekturen zu nennen:

  • Die alte x86-Architektur,
  • der direkte Nachfolger AMD64 und
  • IA64, Intels Itanium-Reihe.

Alle drei Prozessorarchitekturen werden von der Bezeichnung her auch als Windows-Architekturen verstanden. Doch es sind auch noch weitere Aspekte beim Übergang in eine gemischte Windows-Umgebung zu beachten.

Die x86-Windows-Architektur ist die einzige verbliebene 32-Bit-Windows-Architektur, wenn man vom Embedded-Bereich einmal absieht. Sie läuft auf allen Prozessoren, die die x86-Architektur implementiert haben. Doch es gilt einige Sonderfälle mit zu berücksichtigen, wenn einem Windows sagt, es handle sich um ein x86-Windows.

Zum einen ist darauf zu achten, dass es sich bei der AMD64-Prozessorarchitektur um eine Übermenge der x86-Prozessorarchitektur handelt. Damit ist die x86-Windows-Architektur in der Lage, auf der AMD64-Prozessorarchitektur zum Einsatz zu kommen. Beim überwiegenden Teil der Computer, die in den letzten fünf Jahren ausgeliefert wurden, läuft ein x86-Bit-Windows auf einem 64-Bit-Prozessor. Man kann zwar eine Aktualisierung des 32-Bit-Windows auf ein 64-Bit-Windows ausführen, doch eine neue Installation des 64-Bit-Windows auf den Systemen sollte in der Regel gelingen.

Auch wenn man nicht direkt sehen kann, dass ein 32-Bit-Windows auf einem 64-Bit-Prozessor zum Einsatz kommt, lässt sich doch mit der Utility „Windows Management Instrumentation Command-line“ (WMIC) der Prozessorname schnell bestimmen. Danach kann man aus den Herstellerinformationen noch die Fähigkeiten der CPU ermitteln.

Um den Namen des Prozessors auf dem lokalen System zu bekommen, muss man ein Kommandozeilenfenster öffnen und dort den folgenden Befehl eingeben:

wmic cpu get name

Möchte man die entsprechende Information von einem entfernten System (etwa mit dem Namen x51) übermittelt bekommen, ist folgender Aufruf möglich:

wmic /node:x51 cpu get name

Der zweite Problemkreis dreht sich um das Thema Emulation: 64-Bit-Windows-Plattformen lassen 32-Bit-Software (also Applikationen, die für x86 geschrieben wurden) in einem speziellen x86-Windows-Emulator laufen. Auch wenn es sich beim Windows-Betriebssystem um eine 64-Bit-Architektur handelt, so sieht das Windows in dem Emulator doch genauso aus wie ein x86-Windows, sprich die 32-Bit-Version.

Der Begriff „genauso aussehen“ im vorherigen Satz bezieht sich zum einen darauf, dass der Wert der Variablen PROCESSOR_ARCHITECTURE x86 lautet. Doch man kann trotzdem sagen, was die echte Umgebung ist. Der x86-Emulator bringt eine neue Variable ins Spiel: PROCESSOR_ARCHITEW6432.

Sie enthält die Angabe über die Windows-Architektur selbst. Sollte diese Variable nicht existieren, dann ist nur x86-Windows auf der Hardware im Einsatz.

Mit Hilfe der WMIC last sich der echte Wert der Variablen PROCESSOR_ARCHITECTURE bestimmen. Um zum Beispiel zu prüfen, welche Architektur tatsächlich auf dem lokalen Computer zum Einsatz kommt, beziehungsweise welche auf dem entfernten System namens x51, sind die folgenden beiden Befehlszeilen einzugeben:

wmic environment where "name=’PROCESSOR_ARCHITECTURE’" get

und

wmic /node:x51 environment where "name=’PROCESSOR_ARCHITECTURE’" get

Dabei müssen diese Befehlszeile immer auf eine einzigen Zeile eingegeben werden, ein Zeilenumbruch im Befehl ist nicht erlaubt.

Seit dem Beginn mit der Windows NT Familie hat jede Windows-Version die x86-Architektur unterstützt – doch das ändert sich: Das Release 2 (R2) des Windows Server 2008 ist nur mehr für x64-Architekturen gedacht. Windows 7 dagegen unterstützt noch die x86-Architektur.

Die IA-64-Architektur von Intel sollte die Nachfolge der x86-Reihe antreten, hatte aber einen anderen Befehlssatz und somit Keine Rückwärtskompatibilität zu x86 im Marschgepäck. Damit hatte Intel einige Altlasten über Bord geworfen, doch aus heutiger Sicht reduziert sich die Unterstützung für diese Architektur. So ist zum Beispiel im Blog der Windows Server Division zu lesen, dass der Windows Server 2008 R2 sowie SQL Server 2008 R2 und Visual Studio 2010 die letzten Versionen sein werden, von denen die Itanium-Plattform unterstützt wird. Danach gibt’s nur noch den „Extended Support“ bis 2018 – es bleibt also schon noch etwas Zeit. Trotzdem signalisiert diese Information eine eindeutige Abkehr von dieser Plattform.

Bei IA64 wird eine komplett neue Prozessor-Architektur eingeschlagen. Damit lautet der Wert der Umgebungsvariablen PROCESSOR_ARCHITECTURE auch IA64. Es gibt derzeit zwei Ausprägungen dieser Architektur, den Itanium und den Itanium 2 von Intel. Derzeit unterstützen nur die Server-Plattformen die IA64-Reihe. Windows XP wurde zwar ursprünglich auch für IA64 geschrieben, doch die mangelhafte Akzeptanz auf Desktop-Systemen für diese Prozessor-Architektur hat dazu geführt, dass Microsoft 2005 die Unterstützung für IA64 bei Windows XP eingestellt hat.

Als Intel die Entscheidung getroffen hatte, mit der IA64 die Rückwärtskompatibilität zu x86 fallen zu lassen, hatte AMD ein alternatives Prozessordesign vorgestellt, das dieses Manko nicht aufwies. Wie Intel es schon beim Übergang der 80286-CPU auf die 80386-Prozessoren gemacht hat, wurde eine 64-Bit-Architektur konzipiert, die zudem rückwärtskompatibel war. Die ursprüngliche Bezeichnung für diese Architektur lautete x86-64, wurde dann aber zu AMD64 umbenannt.

Deswegen setzen die Windows-Versionen für diese Prozessor-Architektur auch auf die Bezeichnung AMD64. Im Jahr 2003 wurde Windows XP für AMD64 vorgestellt. Und seit dieser Zeit wurde von allen Windows-Versionen diese Prozessor-Architektur unterstützt.

Mit VIA Technologies und Intel produzieren auch andere Hersteller CPUs, die zur AMD64-Architektur gehören. Intel benennt diese Reihe dann auch „Intel 64“ und wollte – aus Marketing-Gesichtspunkten sicher verständlich – damit davon ablenken, dass es sich um Chips handelt, die den AMD64-Befehlssatz verwenden.

Microsoft hat dagegen die Bezeichnung x64 für die Architektur übernommen, um mit dem Verwirrspiel etwas aufzuräumen. Ganz egal welcher Marketing-Begriff für die Prozessoren genommen wird: Die Intel-64-Prozessoren laufen mit genau denselben Windows-Build-Versionen wie jeder andere Prozessor, der zur AMD64-Architektur gehört. Wenn es darum geht, die Windows-Versionen und die unterstützte Windows-Software zu benennen, kann man die Begriffe AMD64, Intel 64, x86-64, x64 sowie die weniger bekannte Bezeichnung EM64T quasi als gleichbedeutend bezeichnen.

Die letzte signifikante Umstellung im IT-Bereich trat in den 90iger Jahren des letzten Jahrhunderts auf. Dabei wurden die Desktop-Systeme vom 16-Bit-Windows und von MS-DOS auf das 32-Bit-Windows umgestellt. Der Schritt von 32 auf 64 Bit erscheint dagegen weitaus leichter. Denn heutzutage ist das Netzwerk-Management weitaus zentralisierter und viele Aktivitäten sind nahezu komplett unabhängig von der „Bittigkeit“ des Betriebssystems.

Und dennoch sollte man einige Dinge bei der Umstellung von 32 auf 64 Bit berücksichtigen. Hier sind einige Aspekte aufgeführt:

16 Bit passen nicht mit 64 Bit zusammen. Anwender werden ihre 16-Bit-Applikationen nicht native auf 64-Bit-Plattformen laufen lassen können. Daher ist die erste Regel: 16-Bit-Software ausmustern, ehe man den Umstieg in die 64-Bit-Welt vollzieht. Wer unbedingt noch alte Applikationen – zum Beispiel Finanzsoftware auf 16-Bit-Basis, um auf ältere Daten zugreifen zu können – verwenden muss, der kann für diese Aufgaben einzelnen Benutzern noch eine 32-Bit-Plattform zur Verfügung stellen. Eine andere Option, um dieser Herausforderung Her zu werden, ist der Einsatz dieser alten Software auf einem 32-Bit-Terminalserver. Als moderne Alternative bietet sich auch der Einsatz einer Virtualisierungslösung an. Dazu muss man auf der neuen Plattform dann eine 32-Bit-VM (Virtual Machine) einsetzen, in der die alte Software dann laufen kann. Windows 7 bietet dazu beispielsweise den XP Mode an. Aber auch andere Hersteller wie etwa VMware, haben entsprechende Virtualisierungs-Plattformen im Angebot. Der Rückgriff auf eine Virtualisierungslösung erscheint generell als die beste Option, denn die VMs sind im hohen Maße portierbar – innerhalb der Virtualisierungsfamilie.

Die IA64-Architektur ist sehr speziell. Nur Systeme mit der Prozessor-Architektur IA64 können IA64-Windows einsetzen. Üblicherweise führt das zu einer Reduzierung auf die Server-Rollen. Doch auch hier muss man Abstriche machen: Nur wer zum Beispiel bei einem Print-Server über die passenden IA64-Druckertreiber verfügt, kann das System als Druckserver betreiben. Generell ist die Verfügbarkeit von IA64-Applikationen das Problem: Es gibt weitaus weniger 64-Bit-Anwendungen für IA64-Windows als für AMD64-Windows.

Inkompatibilitäten zwischen 32- und 64-Bit-Software bestehen. Die x86-Bit-Windows-Versionen können keine 64-Bit-Applikationen laufen lassen. AMD64- und IA64-Windows können mit gewöhnlicher 32-Bit-Software umgehen, doch nicht innerhalb desselben Prozesses (im Betriebssystem). Da 64-Bit-Anwendungen keine 32-Bit-Binärdateien eisnetzen können, sind die 64-Bit-Versionen der Applikationen nicht in der Lage, 32-Bit-Erweiterungen oder –Komponenten zu laden. Wer unbedingt 32-Bit-Komponenten benötigt, der muss die 32-Bit-Version der Applikation nehmen. Das ist auch ein Grund, warum die 64-Bit-Windows-Systeme den 32-Bit-Internet-Explorer (IE) einsetzen: denn es gibt eine Vielzahl von 32-Bit-Erweiterungen (Controls) für den Internet Explorer. Und die meisten dieser Controls sind noch nicht auf den 64-Bit-IE portiert.

Der Umstieg von 32 auf 64 Bit ist eine Migration, kein Upgrade. Wer seine bestehenden PCs von 32- auf 64-Bit-Windows umstellen will, der kann die Einstellungen und einzelne Dateien mit Tools wie Windows Easy Transfer elegant überspielen, doch ein richtiger Upgrade ist nicht machbar. Selbst der Start einer neuen 64-Bit-Windows-Installation von einem laufenden 32-Bit-Windows ist nicht möglich. Es muss immer eine „frische Installation“ ausgeführt werden.

Treiber stellen ein Problem dar. Die 32-Bit-Kernel-Mode-Treiber laufen auf einem 64-Bit-Windows nicht. Das Subsystem WOW64 (Windows on Windows 64) ist nur „oberhalb“ des Betriebssystem-Kernels verfügbar. Daher muss man unbedingt vor dem Umstieg klären, ob alle Treiber für die Systeme in 64-Bit-Variante bereit stehen.

Endbenutzer brauchen Hilfe. Das Look-and-Feel ist über die 32- und 64-Bit-versionen von Windows weitgehend identisch. Daher werden es die Benutzer gar nicht wissen, ob sie auf einem 32- oder 64-Bit-Windows arbeiten. Doch die interne Support-Abteilung der EDV sollte darauf vorbereitet sein, dass bei Problemen die Endanwender sagen können, an welchem System – 32 oder 64 Bit – sie sitzen. Das hilft bei der Diagnose der Fehler enorm. Dazu gibt es den Microsoft-Beitrag "How to determine whether a computer is running a 32-bit version or 64-bit version of the Windows operating system" nach dessen Lektüre zumindest englischsprachige Benutzer mehr zum System sagen können.

Alex K. Angelopoulos/rhh

Lesen Sie auch