Wie wechselt man in der Windows-Shell zwischen Realmodus und geschütztem Modus?

Wie wechselt man in der Windows-Shell zwischen Realmodus und geschütztem Modus?

Mir ist aufgefallen, dass etwas Interessantes passiert, wenn Sie den alten Befehl mem.exe in eine XP-Eingabeaufforderung eingeben:

In den Real-Modus wechseln

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.exeist 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.exedurch die Ausführung eines untergeordneten WoW-Prozesses ausgelöst werden.

Aber cmd.exelä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.

verwandte Informationen