VirtualBox to menedżer maszyn wirtualnych, która pozwala na uruchamianie na Maku wielu systemów operacyjnych, przeznaczonych dla procesorów x86/x86-64. Na liście obsługiwanych są różne wersje Windowsa, różne dystrybucje Linuksa oraz różne inne, bardziej egzotyczne produkty.
VirtualBox służy do pełnej wirtualizacji, co oznacza, że można na nim uruchamiać niezmodyfikowane systemy operacyjne i z ich punktu widzenia maszyna wirtualna nie będzie niczym różnić się od fizycznego komputera. Nie ma tu mechanizmów wirtualizacji, więc można uruchamiać jedynie systemy-gości przeznaczonych dla tej samej architektury, co Maki, ale w zamian zyskujemy wydajność bliską systemowi zainstalowanemu bezpośrednio na komputerze. VirtualBox zaliczany jest hiperwizorów typu drugiego, czyli działa jako program uruchomiony na danym systemie-gospodarzu. Wirtualizowane systemy-goście działają więc „dwa poziomy” od sprzętu.
Poza uruchamianiem systemów operacyjnych VirtualBox umożliwia także zapisywanie i przywracanie ich stanów, co jest szczególnie przydatne przy testowaniu. System-gość może dzielić ze swoim gospodarzem zawartość schowka, urządzenia podłączone przez USB i port szeregowy, kontrolery SCSI i wybrane foldery. Ponadto okna niektórych systemów-gości mogą być wyświetlane na pulpicie Maka, jakby były częścią systemu OS X. Do systemu-gościa można podłączyć się także z wykorzystaniem zdalnego pulpitu, można także nagrywać aktywność na pulpicie.
Jeśli systemem-gościem jest jeden z Windowsów, VirtualBox może zapewnić mu przyspieszenie sprzętowe OpenGL 2.0 oraz (eksperymentalnie) Direct3D 8 i 9. Ponadto możliwa jest wirtualizacja systemów 64-bitowych na procesorach 32-bitowych oraz wykorzystanie wirtualizacji sprzętowej Intel VT-x i AMD-V. Dla nich możliwa jest obsługa SMP z użyciem do 32 wirtualnych jednostek obliczeniowych.
Podczas tworzenia maszyny, na której zostanie zainstalowany system-gość, można wybrać ilość dostępnej dla niej pamięci operacyjnej, przestrzeni dyskowej oraz format zapisu wirtualnego dysku oraz jego lokalizację. Już po utworzeniu maszyny można wybrać, jakie peryferia będą dla niej dostępne (nawet stację dyskietek), typ czipsetu, liczbę rdzeni procesora dostępną dla systemu-gościa, parametry karty graficznej, dźwięku, sieci, współdzielonych folderów i portów.
Wiele funkcji VirtualBoxa nie znajduje się w podstawowym pakiecie. Warto pobrać dodatkowo VirtualBox Extension Pack.