Alle angezeigten Adressen sind virtuell. Sie sind die Startadressen der DLLs oder anderer zugeordneter Dateien im virtuellen Adressraum des Prozesses. Die auf der Registerkarte "Stapel" angezeigten Adressen sind auch virtuell.
Sie sehen eine ähnliche Aufteilung in Process Explorer - aktivieren Sie die "DLLs-Ansicht" im unteren Bereich. Und auch in VMmap, aber mit mehr Details. VMmap enthält die Adressen von "Abschnitten" in jeder ausführbaren Datei. Es gibt einen Abschnitt für den Code, einen für schreibgeschützte Daten, einen für "Ressourcen" usw. sowie einige Steuerinformationen.
Es ist tatsächlich extrem schwierig für ein virtuelles Speicher-Betriebssystem auf x86 / x64, eine physische Adresse direkt zu verwenden, dh auf sie zu verweisen. Sobald das System "virtuell" wird, dh das Bit "Paging aktivieren" in CR0 setzt (was sehr früh beim Booten auftritt), werden alle Adressen, die vom laufenden Code (ob Kernel oder Benutzermodus) aktiviert wurden, von der CPU als virtuelle Adressen interpretiert. und muss (mithilfe von Informationen aus den Seitentabellen) in physisch übersetzt werden, bevor sie dem Speichercontroller angezeigt werden.
Kernel-Code im Betriebssystem verwaltet den physischen Arbeitsspeicher natürlich (z. B. weist er Prozessen zu, die ihn benötigen) und manipuliert Seitentabelleneinträge und physische Seitennummern, kann jedoch nicht direkt auf den Arbeitsspeicher über verweisen die physischen Adressen der Erinnerung.