Architektury wirtualizowalne i sprzęt zaprojektowany do obsługi wielozadaniowych systemów operacyjnych mają podobne cechy. Te podobieństwa wynikają z istnienia mechanizmów sprzętowych, które chronią zasoby systemowe przed programami nieuprzywilejowanymi (użytkownika). W Tabeli możemy zobaczyć porównanie obok siebie.
Możemy również zaobserwować podobieństwa między VMM a wielozadaniowym jądrem systemu operacyjnego. Jądro systemu operacyjnego działa w trybie wykonywania uprzywilejowanego, ma kontrolę nad zasobami systemowymi (czas procesora, pamięć i pamięć masowa) i zapewnia programom użytkownika środowisko, w którym działają wydajnie. Różnica polega na tym, że nie ma właściwości równoważności, ponieważ środowisko dostarczane przez system operacyjny nie ma być duplikatem rzeczywistej maszyny. Zamiast tego programy użytkownika są prezentowane z „rozszerzonym interfejsem maszyny”, który jest kombinacją zasobów sprzętowych dostępnych z trybu nieuprzywilejowanego i interfejsu oprogramowania jądra. Wydajna wirtualizacja tych mechanizmów ochrony może być trudna. Goldberg rozważał to w jednej ze swoich poprzednich prac, gdy zaproponował „wirtualizator sprzętowy”. Wprowadził koncepcję dwóch różnych typów mapowań zasobów: mapowań widocznych dla oprogramowania kontrolowanych przez system operacyjny i mapowań niewidocznych dla oprogramowania kontrolowanych przez VMM. Rozróżnia się również pułapki widoczne dla oprogramowania (obsługiwane przez system operacyjny) i pułapki niewidoczne dla oprogramowania (obsługiwane przez maszynę VMM), nazywane błędami maszyny wirtualnej.
UWAGA: Moduł jądra Windows 9x został nazwany „Virtual Machine Manager” (VMM.vxd), co jest ciekawym wyborem nazwy dla jądra, które nie radziło sobie najlepiej z ochroną zasobów systemowych przed programami bez uprawnień.
Przykładem mapowania zasobów widocznych w oprogramowaniu jest mechanizm stronicowania, którego systemy operacyjne używają do mapowania adresu pamięci wirtualnej na stronę fizyczną lub nieobecną stronę. Gdy program próbuje uzyskać dostęp do pamięci z mapowania adresu wirtualnego na nieobecną stronę, powoduje to wyjątek błędu strony. Wyjątek jest obsługiwany przez jądro systemu operacyjnego, które decyduje, co z nim zrobić. Goldberg definiuje to mapowanie widoczne w oprogramowaniu jako „mapę ϕ”, a wyjątek błędu strony byłby pułapką widoczną w oprogramowaniu.
Wirtualizator sprzętowy wprowadza nowy rodzaj mapowania zwany „fmap”, który jest niewidoczny dla oprogramowania uruchomionego na maszynie wirtualnej i jest kontrolowany przez VMM. Mówiąc prościej, f-map mapuje wirtualne zasoby maszyny wirtualnej na rzeczywiste zasoby sprzętowe. Oprogramowanie uruchomione na maszynie wirtualnej uzyskuje dostęp do swoich zasobów za pośrednictwem złożonej mapy „f ° ϕ”.
Mapa f może również odwoływać się do zasobu, który nie istnieje; w takim przypadku próba dostępu spowoduje błąd maszyny wirtualnej.
Wreszcie, f-mapę można zdefiniować w kategoriach rekurencyjnego VMM, więc mówi się, że mapuje zasoby wirtualne poziomu „n+1” na zasoby poziomu „n”. Gdy poziom „n” wynosi 0, mapa odnosi się do rzeczywistych zasobów sprzętowych. Zagnieżdżona wirtualizacja jest możliwa dzięki rekurencyjnej kompozycji f-mapy dla „n” poziomów. Poniższa ilustracja pokazuje prosty przykład, gdzie „n=1”.