2012-01-22 9 views
9

Próbowałem dowiedzieć się, jak działa VMware (w szczególności, gdy jest zainstalowany Linux) i mam kilka pytań:Maszyny wirtualne

  1. Co się dzieje, gdy VMware napotka polecenie podobne push cs? W szczególności cs, ponieważ jego poziom uprawnień wynosi 0, a VMware na 1 poziomie uprawnień, więc zakładam, że musi on w jakiś sposób przetłumaczyć go na inną komendę.

  2. Pamięć wirtualna: jak to działa na maszynie wirtualnej? czy są 2 poziomy tłumaczenia - pamięć wirtualna procesu -> pamięć fizyczna maszyny wirtualnej -> pamięć fizyczna maszyny rzeczywistej? w jaki sposób VMware otrzyma powiadomienie, gdy strona zostanie zamieniona przez prawdziwy komputer?

+1

Dobre pytania. –

+1

Kompletnie nietypowe pytanie. – bmargulies

+1

Dobre pytanie. Jestem zainteresowany odpowiedzią. – alexy13

Odpowiedz

1
  • Większość instrukcje uruchomić bezpośrednio na CPU. Jednak instrukcje uprzywilejowane powodują wyjątek, program obsługi naśladuje je.
  • Teraz widzę, co masz na myśli z przykładem push cs. Masz na myśli instrukcje, które po cichu zachowują się inaczej na różnych poziomach uprawnień. The wikipedia article on x86 virtualization mówi, że są one tłumaczone binarnie, tj. Istnieje faza rekompilacji przed uruchomieniem kodu na procesorze głównym.
  • W starszym x86, vmware utrzymuje tabele stron w tle. Tabele gości muszą być emulowane, aby umożliwić vmware śledzenie widoku systemu operacyjnego gościa dla tabel stron. Nowsze wersje x86 mają rozszerzenia wirtualizacji, które umożliwiają efektywny szereg poziomów tabel stron.