Virtual 8086 Mode — Änderungen 8152 → 8154

Zeile 5: Zeile 5:
  
 
Während eines solchen iret aus dem Kernel in den Task werden automatisch vier Realmode-Segmentregister geladen (wenn die CPU im neuen EFLAGS das VM-Bit als gesetzt erkannt hat), die vorher auf den Kernel-Stack gepusht werden müssen. Da für den Task Realmode-Addressierung benutzt wird, müssen auch cs:ip und ss:sp so gesetzt werden, dass sie im Realmode auf die entsprechende Addresse zeigen. VM86-Tasks laufen grundsätzlich im Ring 3.
 
Während eines solchen iret aus dem Kernel in den Task werden automatisch vier Realmode-Segmentregister geladen (wenn die CPU im neuen EFLAGS das VM-Bit als gesetzt erkannt hat), die vorher auf den Kernel-Stack gepusht werden müssen. Da für den Task Realmode-Addressierung benutzt wird, müssen auch cs:ip und ss:sp so gesetzt werden, dass sie im Realmode auf die entsprechende Addresse zeigen. VM86-Tasks laufen grundsätzlich im Ring 3.
−
Der große Vorteil des VM86 ist, dass [[Paging]] unterstützt wird, so können die entsprechenden physikalischen Addressen von Kernel belegt werden und sogar mehrere VM86-Tasks gleichzeitig laufen, indem Speicher aus anderen Bereichen in das erste Megabyte gemappt wird. Hier kann es allerdings Probleme geben, wenn der Kernel in diesem Bereich Speicher benutzt, bei einem entsprechend niedrig geladenen Kernel muss man halt entsprechend aufpassen.
+
Der große Vorteil des VM86 ist, dass [[Paging]] unterstützt wird, so können die entsprechenden physikalischen Addressen von Kernel belegt werden und sogar mehrere VM86-Tasks gleichzeitig laufen, indem Speicher aus anderen Bereichen in das erste Megabyte gemappt wird. Hier kann es allerdings Probleme geben, wenn der Kernel in diesem virtuellen Bereich Speicher benutzt, bei einem entsprechend niedrig geladenen Kernel muss man halt entsprechend aufpassen.
  
 
==Beispiel==
 
==Beispiel==