Jest to jeden z kilku produktów firmy VMWare (pozostałe to m.in. VMWare Player i VMWare Serwer). Umożliwia uruchamianie pod jednym macierzystym systemem operacyjnym innych. Inne produkty VMWare pozwalają na zrobienie innego zabiegu - umożliwiaj utrzymywanie i zarządzanie różnymi systemami operacyjnymi na fizycznie wielu maszynach goszczcych (ang. host).
Składa się on z maszyny wirtualnej, działającej na architekturze Intel x86. W przeciwieńtwie do Virtual PC, pozwala na uruchomienie zarówno Windows, Linux, jak i BSD (systemy operacyjne "goście"), a macierzystym systemem może być Windows lub Linux.
VM Workstation składa sie z trzech głównych skadników:
VMM działa w privilage mode, a VM (maszyna wirtualna) w trybie użytkownika. Kiedy VM chce wywołać instrukcję nieuprzywilejowaną, to VMM pozwala jej przejść, aby była bezpośrednio wywołana. Natomiast instrukcje, które muszą być wykonywane w wyższym trybie, a są wywoływane przez aplikację z poziomu użytkownika, powodują wyjątek. Są to przede wszystkim instrukcje wejścia/wyjścia, zmiana flag itp. VMWare nazywa te instrukcje "sensitive" - czułe. Mają one wpływ na działanie innych procesów i dlatego nie mogą być wykonywane bezpośrednio na CPU. Podstawową rolę, jaką gra VMM, to przechwytywanie i wykonywanie tych instrukcji.
VM Workstation potrzebuje do działania system goszczący. Jest to spowodowane przez architekturę x86 - VMM nie jest w stanie przechwycić wszystkich czułych instrukcji. Po drugie istnieje ogromna paleta różych urządzeń na komputer PC, a każde z nich potrzebuje sterownika. Bez systemu operacyjnego hosta, VMM musiałby pełnić wiele funkcji, które są zadaniem SO - zarządzanie pamięcią, zasobami, podział czasu procesora, itd.
W architekturze IA32 są wprowadzone 4 poziomy ochrony (privilage levels). Według Intela, system operacyjny powinien działać na poziomie 0, sterowniki urządzeń na poziomie 1 i 2, a aplikacje użytkownika na poziomie 3.
W VM Workstation pierwsze dwa wymienione składniki działają jako wysoko uprzywilejowane programy - na poziomie systemu operacyjnego. Natomiast VMApp - na trzecim poziomie ochrony (jak zwykła aplikacja).
Podczas instalacji, VMX driver jest instalowany w systemie operacyjnym, aby zdobyć wysoki privilage level, a który będzie potem potrzebny w działaniu VMM. Kiedy jest wykonywana jakaś aplikacja, przez VMX driver VMM jest ładowany do pamięci jądra, uzyskując 0 stopień urzywilejowania. W tym momencie, "goszczący" system operacyjny nie wie o jego obecności. W tym momencie na fizycznej maszynie znajdują się dwa "światy" - świat hosta i VMM. VMM może bezpośrednio działać na fizycznym sprzęcie, a jednocześnie przez VMX driver ma możliwość kontaktowania się z goszczącym systemem operacyjnym. Kiedy sterowanie wróci do prawowitego właściciela - hosta, wszystkie informacja muszą być zapamiętane - co jest, w porównaniu do prawdziwego systemu, nieciekawą cechą.
Nie wszystkie instrukcje mogą być wykonywane bezpośrednio przez VMM. Instrukcje wejścia/wyjścia są obsługiwane przez system operacyjny host'a. Jak to działa? Kiedy już sterowanie jest po stronie host'a, VMApp wywołuje instrukcję wejścia/wyjścia na SO goszczącym przez standardowe dla niego wywołania. Później odpowiednie informacje (np. rezultat funkcji read()) jest przekazywany przez VWXdriver i VMM. Dlatego też przy częstym używaniu instrukcji I/O, czuć wolniejszą pracę SO gościa.
Trzeba pamiętać jednak, że wszystkie aplikacje, systemy operacyjne-goście, VM, VMM są uzależnione od goszczącego SO i jego scheduler'a.
Składa się z kilku kroków:
Pod Windows nie sprawia ona problemu. Nie można jedynie mieć jednocześnie zainstalowanego VMWare Player'a - jest on częścią Workstation.
File > New > Virtual Machine
Dalej iść według wskazówek
Na pasku zadań najważniejszy jest VM:
Jest tu zawarte całe zarządzanie wirtualną maszyną:
Power -> włączenie maszyny wirtualnej
Snapshot -> umożliwia zachowanie stanu maszyny wirtualnej
Install VMWare Tools -> dodatkowy komponent, który powinno się zainstalować już po instalacji systemu. Gdy gościem jest system Linux, to jest on do zainstalowania z katalogu hdfs
Settings -> najważniejsze ustawienia maszyny wirtualnej, które po otwarciu zawierają ustawienia dotyczce hardware'u