Powody wyjścia VM

https://chacker.pl/

VM-Exit mogą być synchroniczne lub asynchroniczne, przy czym te drugie pochodzą ze źródeł, takich jak przerwania zewnętrzne lub timer wywłaszczania VMX. Synchroniczne wyjścia VM są spowodowane zachowaniem VM i mogą być warunkowe lub bezwarunkowe. Tylko bardzo niewiele instrukcji powoduje bezwarunkowe wyjścia VM (CPUID jest jednym z nich), a pozostałe spowodują warunkowe wyjście VM w zależności od konfiguracji VMCS (pola kontrolne). Można by pomyśleć, że instrukcje wrażliwe na sterowanie zawsze będą powodować wyjścia VM, ale jak widzieliśmy, można przyznać maszynie wirtualnej dostęp do zasobów systemowych, więc nie zawsze jest to prawdą. Może się również zdarzyć sytuacja odwrotna: niegroźne instrukcje, takie jak instrukcja PAUSE spin-loop hint, mogą być ustawione tak, aby powodować VM-Exit (aby rozwiązać problem wywłaszczenia posiadacza blokady). Inne wrażliwe instrukcje mogą być obsługiwane przez VMM (warunkowe VMExit) lub bezpośrednio przez sprzęt wirtualizacji. Wreszcie, te nieuprzywilejowane, wrażliwe instrukcje, o których mówiliśmy wcześniej w tym rozdziale, mogą być teraz prawidłowo obsługiwane.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *