Warum kann Windows 7 64-Bit 32-Bit-Programme nicht ausführen?

9

Soweit ich weiß, hat sich die Architektur nicht so stark geändert wie von 16-Bit auf 32-Bit. Warum benötigen wir also den XP-Modus und dergleichen, um 32-Bit-Apps in Windows 7 64-Bit auszuführen?

Oder habe ich es falsch verstanden?

Oscar
quelle
Wir hatten ein Programm, das es nicht sehr mochte. Das eigentliche Problem war letztendlich 64-Bit-Office (wir hatten ein Office-Plugin).
Joshua

Antworten:

16

Es kann 32-Bit-Programme gut ausführen. Es können keine 16-Bit-Programme ausgeführt werden.

Der XP-Modus ist ein wenig versichert. Wenn eine bestimmte Software nicht mit 7 ausgeführt werden kann (32- oder 64-Bit-XP-Modus ist für die Professional Edition und für beide verfügbar), können Sie sie im XP-Modus ausführen. Das ist mir noch nicht passiert, aber es ist wahrscheinlich für die Menge "Du kannst XP aus meinen sterbenden Händen nehmen".

In den meisten Fällen reicht der Kompatibilitätsmodus aus

Gesellenfreak
quelle
Dang! Ich hatte Probleme, einige Apps wie Visual Studio 6, Guitar Pro usw. auszuführen, und die ganze Suche führte mich dazu, den XP-Modus zu gewinnen, ohne wirklich zu sagen, warum. Danke vielmals!
Oscar
2
Einige Apps werden sich beschweren, aber theoretisch gibt es keinen Grund, warum Sie keine 32-Bit-Apps ausführen können.
Shinrai
@Oscar VS6 erfordert MS Java.
Kinokijuf
5

Ich hoffe, dies wirft ein Licht auf Inkompatibilitäten:

Microsoft hat beschlossen, den Kernel mit den 64-Bit-Versionen zu verbessern. Gerätetreiber haben denselben Zugriff auf Hardware wie der Kernel. Einige spezifische Dinge, die in 64-Bit-Versionen im Namen der Sicherheit geändert wurden, sind:

  • Treiber müssen zum Laden von Microsoft signiert sein.
  • Ich weiß nicht, ob technisch 32-Bit-Treiber mit einem 64-Bit-Kernel funktionieren können (unwahrscheinlich), aber Microsoft signiert keine neuen 32-Bit-Treiber mit dem vom 64-Bit-Kernel gewünschten Schlüssel. Daher funktionieren alle vorhandenen XP 32-Bit-Treiber unter 64-Bit Vista / 7 nicht.
  • Treiber können den Kernel nicht überschreiben oder patchen.

Microsoft wechselte ebenfalls zu einem neuen Treibermodell für Videoanzeigen (LDDM), behielt jedoch das alte (XDDM) bei. XDDM, das alte Modell, unterstützt Aero nicht.

Einige Programme laden angepasste Gerätetreiber im laufenden Betrieb, um ihre Aufgaben zu erfüllen. Diese funktionieren unter Vista / 7 definitiv nicht.

Microsoft hat einige Komponenten in Vista / 7 aktualisiert. Dies könnte eine Änderung des undokumentierten Verhaltens dieser Komponenten bedeuten. Programme, die auf Fehlern in diesen Komponenten oder undokumentierten DLL-Funktionen beruhen, haben ebenfalls ein Problem.

LawrenceC
quelle
+1 für den Einblick in 32-Bit- und 64-Bit-Windows-Treiber. Ich habe alte Audio-Hardware (SW1000XG, UR-80), die nur bei meiner 32-Bit-Installation von Windows 7 funktioniert, nicht jedoch bei meiner 64-Bit-Installation. Es ist eine echte Schande, weil sie ein schönes, klassisches Kit sind.
Therobyouknow
„Ich weiß nicht , ob technisch 32-Bit - Treiber mit einem 64-Bit - Kernel arbeiten können (unwahrscheinlich)“ . Unter Betriebssystemen ist dies im Allgemeinen nicht unmöglich. Um dies jedoch unter Windows zu tun, müssen alle Treiber den Treibermodellen entsprechen, wobei die Isolierung von verschiedenen internen Details des Betriebssystems weitaus strenger ist. Ich sehe nicht ein, wie es mit zB Windows-Treibermodell- oder Pre-WDM-Treibern gemacht werden könnte. WDF wäre einfacher, aber immer noch kein Slam-Dunk.
Jamie Hanrahan
2

32-Bit-Programme sollten unter 64-Bit-Windows einwandfrei funktionieren.

Der XP-Modus ist für Programme vorgesehen, die mit Windows Vista und Windows 7 beider Varianten nicht kompatibel sind.

Weitere Informationen finden Sie in diesem Artikel von Ars Technica .

Das Problem spitzte sich mit der Veröffentlichung von Windows Vista wirklich zu. Die Kompatibilität von Vista mit XP war sehr gut, aber nicht perfekt. Microsoft hat viel an Vista gearbeitet, um es gegen Angriffe abzusichern (UAC natürlich, aber auch andere Dinge, wie das Verbot der Benutzerinteraktion von Diensten), und zusammen diese Modifikationen und Verbesserungen sowie allgemeinere Dinge wie das Aktualisieren der Versionsnummer dass Windows hat sich verschworen, einige alte Software zu brechen.

ChrisF
quelle