Einzelnen Beitrag anzeigen

CCRDude

Registriert seit: 9. Jun 2011
677 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Large-Address-Aware flag

  Alt 6. Dez 2011, 07:57
Bitte nachlesen: http://msdn.microsoft.com/de-de/library/ms189334.aspx
Und wirf auch mal einen Blick auf die Grafik. Sie zeigt genau das, was ich erklärt habe.

Zitat:
Alle Betriebssystemversionen ab Windows 2000 Server, einschließlich Windows Server 2003, besitzen einen Parameter in Boot.ini, mit dem Anwendungen Zugriff auf 3 GB Prozessadressraum gewährt wird. Der Adressraum für den Kernelmodus wird dann auf 1 GB beschränkt.
Ich habe hier mal den wichtigen und von Dir vermutlich mißverstandenen Punkt unterstrichen.

Der "abgetrennte" Bereich ist Kernel-Mode-Speicher! Das hat erstmal nichts direkt mit "Windows" oder "System-DLLs" zu tun. Die allermeisten Windows-DLLs laufen nicht im Kernel, sondern im user mode. Treiber etwa brauchen Kernel-Speicher. Graphik in der Wikipedia dazu.

Und? Schon mal ein Windows gesehen das versucht annähernd 1 GB an System-DLLs in einem 32-Bit Prozess zu laden?
Da Du mit 32-Bit-Prozess vermutlich eine normale Anwendung meinst - darein lädt man höchstens normale Win32-Subsystem-DLLs, und ist damit zu 100% im Usermode. Natürlich greifen die letztendlich auch wieder auf untere Schichten zu, so daß irgendwo da auch Kernelspeicher verwendet wird. Aber das ist eher nutzdatenabhängig und nicht von der Größe der DLLs.

"Glücklicherweise" arbeitet Windows nur mit Ring 0 (kernel mode) und 3 (user mode), ich will gar nicht wissen wieviel Verwechslungsmöglichkeiten es gäbe, wenn 1 und 2 auch noch genutzt wären
  Mit Zitat antworten Zitat