Mir ist aufgefallen, dass etwas Interessantes passiert, wenn Sie den alten Befehl mem.exe in eine XP-Eingabeaufforderung eingeben:
Die Shell wechselt vom geschützten Modus in den Realmodus, wie Sie an der Änderung des Verzeichnisnamens (und der angezeigten Speicherstruktur) erkennen können. Ist das der Windows-Exe-Loader oder cmd.exe? Gibt es eine Möglichkeit, wieder in den geschützten Modus zu wechseln?
Antwort1
mem.exe
ist eine 16-Bit-Anwendung, die aus Kompatibilitätsgründen von 16-Bit-Windows übernommen wurde. Daher läuft es in der 16-Bit-VM 1 innerhalb von 32-Bit-Windows und zeigt den Speicher als solchen an. (Es existiert nicht in 64-Bit-Windows, da die 16-Bit-VM nicht enthalten ist).
Die Verschiebung der Eingabeaufforderung zur Anzeige des kurzen Dateinamens ist eine der Inkonsistenzen, die cmd.exe
durch die Ausführung eines untergeordneten WoW-Prozesses ausgelöst werden.
Aber cmd.exe
läuft nicht im „Realmodus“, da der Realmodus für 32- oder 64-Bit-Prozesse nicht existiert.
1 Das 16-Bit-Windows-on-Windows-Subsystem verwendet einen der 16-Bit-Ausführungsmodi von x86/x64-Prozessoren, um eine isolierte Umgebung bereitzustellen, ähnlich wie VMWare (et al.) dies zum Hosten einer vollständigen Maschine tut.