Oracle VM VirtualBox (с предишно наименование Sun VirtualBox, Sun xVM VirtualBox и Innotek VirtualBox) е хипервайзор за x86 компютри на корпорация Oracle. Първоначално Innotek разработват продукта до придобиването на компанията от Sun Microsystems през 2008 г., а от 2010 г. насам Oracle се занимават с разработването.
VirtualBox може да бъде инсталиран на съществуваща операционна система-домакин (host); може да създава и менажира гостуващи (guest) виртуални машини, всяка с гостуваща операционна система и собствена виртуална среда. Поддържаните операционни системи-домакин включват Linux, OS X, Windows XP и по-късно Solaris и OpenSolaris; налични са също и портове за FreeBSD и Genode. Поддържаните гостуващи операционни системи включват различни версии и разновидности на Windows, Linux, BDS, OS/2, Solaris, Haiku и други. От версия 3.2.0 насам VirtualBox позволява частична виртуализация на OS X гости върху Apple хардуер. OSx86 също може да бъде инсталирана използвайки VirtualBox.
За най-ползотворно използване на продукта се препоръчва инсталирането на Добавки към госта (Guest Additions) към гостуващата операционна система. Тези добавки представляват различни драйвери и системни приложения, които оптимизират гостуващата операционна система за по-добра производителност и използваемост. От версия 4.3 (излязла през октомври 2013 г.), Windows гостуващите системи на хардуер, който е поддържан могат да се възползват от WDDM драйвера включен в пакета Guest Additions. Това позволява използването на Windows Aero заедно с поддръжка на Direct3D.
История VirtualBox първоначално се предлага от Innotek от Германия под собственически софтуерен лиценз, правейки една от версиите на продуктът безплатна за използване за лични нужди при съобразяване с VirtualBox Условията за индивидуално и временно ползване (Personal Use and Evaluation License – PUEL). През януари 2007 г. по препоръка на LiSoG, Innotek пускат VirtualBox Версия с отворен код (Open Source Edition – OSE), обект на изискванията на GNU Основен публичен лиценз (General Public License – GPL), версия 2.
Innotek също допринася за разработката на виртуализация на OS/2 и Linux, както и за OS/2 портове на продукти на Connectix – фирма по-късно придобита от Microsoft. В частност, Innotek разработват кода за добавките в Microsoft Virtual PC и Microsoft Virtual Server, които дават възможност за различни взаимодействия между основната и гостуващите операционни системи като споделени клипбордове (clipboards) или динамично оразмеряване на екранното пространство (viewport).
Sun Microsystems придобиват Innotek през февруари 2008 г.
Oracle Corporation придобива Sun през януари 2010 г. и прекръства продукта на „Oracle VM VirtualBox“.
Лицензиране С версия 4 на VirtualBox, излязла през декември 2010 г., основният пакет става свободен, използвайки GNU Основен Публичен Лиценз версия 2 (GPLv2). Това е пакет с пълна функционалност, но не са включени някои собственически компоненти, които не са налични под GPLv2. Тези компоненти са например поддръжка на USB 2.0 устройства, Remote Desktop Protocol (RDP) и Preboot Execution Environment (PXE) за Intel карти и са налични отделно като част от „VirtualBox Oracle VM VirtualBox extension pack“ пакета под собственически PUEL лиценз. Той позволява използването на продукта за лично ползване безплатно.
Oracle определя като лично ползване всяка ситуация, в която индивид инсталира софтуера и само той, негови приятели или членове на семейството му го използват. Oracle не прави разграничаване между това дали софтуерът се използва с комерсиална или некомерсиална цел. Oracle определя като използване за не-лични цели, например, ако мрежови администратор инсталира много копия на софтуера на много различни машини, използвани от различни потребители. В тази ситуация е нужно да бъде закупен специален лиценз.
Преди версия 4 са налични два различни пакета на VirtualBox софтуера. Първият (пълен пакет) се предлага безплатно под PUEL, а вторият се предлага под GPLv2 лиценз и се казва VirtualBox Open Source Edition (OSE).
VirtualBox изисква използването на Open Watcom компилатор за построяване на BIOS-а след версия 4.2.
Въпреки че VirtualBox позволява експериментална поддръжка за Mac OS X гостуващи системи, лицензът на Mac OS X не позволява тя да работи на друг хардуер, освен на Apple. Това е наложено в операционната система чрез викане на Apple System Management Controller (SMC), който верифицира автентичността на хардуера.
Емулирана среда Потребителите на VirtualBox могат да зареждат множество гостуващи операционни системи, използвайки една система – домакин. Всяка гостуваща система може да бъде стартирана, паузирана и спряна независимо в собствената си виртуална машина. Потребителят може да конфигурира по отделно всяка виртуална машина и да я подкара на редица софтуер-базирани виртуализации или на хардуерно базирани такива ако използвания домакинстващ хардуер го позволява. Операционната система – домакин, гост системите и различните приложения могат да комуникират помежду си през различни механизми като общ клипборд и виртуализирано мрежово съоръжение (virtualized network facility). Виртуалните машини – гост могат директно да комуникират помежду си ако са конфигурирани по такъв начин.
Софтуерно-базирана виртуализация В случай на липса на хардуерно-базирана виртуализация, VirtualBox възприема стандартна софтуерно-базирана такава. Този начин на действие поддържа 32-битови гостуващи операционни системи, които вървят на пръстени 0 и 3 от пръстеновидната архитектура на Intel.
Системата конфигурира операционната система – гост, която стандартно върви в пръстен 0, да се изпълни в пръстен 1 на хардуера – домакин. Понеже кодът съдържа редица инструкции, които не могат на бъдат изпълнени на пръстен 1, VirtualBox използва Code Scanning and Analysis Manager (CSAM), чрез които сканира кода за пръстен 0 рекурсивно преди първото му изпълнение. Така биват идентифицирани проблемни инструкции. След това извиква Patch Manager (PATM) за да извърши in-situ пачване. Това заменя инструкцията със скок до безопасен за използване на виртуални машини компилиран код.
Гостуващият код в потребителски режим, вървящ в пръстен 3 се изпълнява директно на хардуера – домакин в пръстен 3.
И в двата случая VirtualBox използва CSAM и PATM за да проверява и променя опасните инструкции в случай, че се появи проблем. VirtualBox също съдържа динамичен рекомпилатор, базиран на QEMU за да рекомпилира напълно всеки код в реален (real mode) или защитен (protected mode) режим (например BIOS код или DOS гост).
Използвайки тези техники, VirtualBox постига производителност сравнима с тази на VMware.
Хардуерно-базирана виртуализация VirtualBox поддържа както хардуерната виртуализация VT-x на Intel, така и AMD-V на AMD. Използвайки ги VirtualBox може да пусне всяка гостуваща виртуална машина в свое собствено адресно пространство; кодът за пръстен 0 на гост операционната система върви в VMX не-администраторски режим също на пръстен 0 на системата – домакин, а не на пръстен 1.
VirtualBox поддържа някой гост системи (включително 64-битовите SMP и определени собственически операционни системи) само на домакини с хардуерно-подпомагана виртуализация.
Виртуализация на устройствата Системата емулира твърди дискове в един от следните формати – образи (images): VDI: Това е специфичен за VirtualBox формат, който съхранява данни във файлове с „.vdi“ разширение. VMDK: Този отворен формат се използва от VMWare продукти като VMWare Workstation и VMWare Player. Данните се съхраняват в един или повече файлове с разширение „.vmdk“. Един виртуален твърд диск може да бъде съдържан в няколко отделни файла. VHD: Този формат е естествения (native) виртуален дисков формат за операционните системи на Microsoft, първоначално представен в Windows 7 и Windows Server 2008 R2. Данните в този формат се съхраняват в единичен файл с „.vhd“ разширение.
VirtualBox, както се вижда, може да използва виртуални дискове създадени в VMware или Microsoft Virtual PC, както и своите собствени формати. VirtualBox също може да се свързва с iSCSI устройства, използвайки съответният виртуален твърд диск. VirtualBox емулира IDE (PIIX4 и ICH6 контролери), SCSI, SATA (ICH8M контролер) и SAS контролери, към които могат да бъдат закачани твърди дискове.
VirtualBox поддържа Open Virtualization Format (OVF) от версия 2.2.0 (април 2009 г.) насам.
Както ISO образи, така и свързани физически устройства към домакина могат да бъдат зареждани като CD/DVD устройства. Например, DVD образ на Linux дистрибуция може да бъде смъкнат от Интернет и използван директно от VirtualBox.
По подразбиране VirtualBox предлага графична поддръжка през специфична виртуална графична карта, която е VESA съвместима. Guest Additions за Windows, Linux, Solaris, OpenSolaris или OS/2 гости включват специален видео драйвер, който увеличава производителността и предлага допълнителна функционалност като автоматично коригиране на резолюцията на госта при оразмеряване на прозореца на виртуалната машина или композиция на работния плот чрез виртуализирани WDDM драйвери.
За Etherner мрежови карти VirtualBox виртуализира следните Карти за мрежови интерейфи: AMD PCnet PCI II (Am79C970A) AMD PCnet-Fast III (Am79C973) Intel Pro/1000 MT Desktop (82540EM) Intel Pro/1000 MT Server (82545EM) Intel Pro/1000 T Server (82543GC)
Емулираните мрежови карти позволяват повечето гост операционни системи да работят без да е нужно търсенето и инсталирането на драйвери за мрежовия хардуер, тъй като тези драйвери са включени като част от гост операционната система. Налична и е специална паравиртулизирана мрежова карта, която подобрява мрежовата производителност чрез премахване на нуждата да се напасва с конкретния хардуерен интерфейс. Тя, обаче, изисква поддръжка на специален драйвер в госта (много дистрибуции на Linux вървят с включен такъв драйвер). По подразбиране VirtualBox използва NAT, който е от значение, например, за Firefox и ssh. До 36 мрежови карти могат да бъдат закачени едновременно, но само до четири подлежат на конфигуриране през графичния интерфейс.
За звукова карта VirtualBox виртуализира Intel HD Audio, Intel ICH AC`97 и SoundBlaster 16 устройства.
Емулиран е USB 1.1 контролер, така че всяко USB устройство, закачено към домакина, може да бъде използвано през системата – гост. Специален собственически разширителен пакет добавя поддръжка на USB 2.0 контролер и VirtualBox действа като RDP сървър. USB устройства на отдалечения RDP клиент също могат да бъдат използвани все едно, че са свързани директно за домакина. Това е възможно само ако клиентът поддържа въпросния разширителен пакет (Oracle предлагат клиенти за Solaris, Linux и Sun Ray, които го поддържат и обещават поддръжка и за други платформи за в бъдеще).
Списък с характеристики 64-битови гост системи (нужна е поддръжка на хардуерна виртуализация) Изображения на състоянието (Snapshots) Seamless режим – способността виртуализирани приложения да работят заедно с нормалните такива Споделен клипборд Споделени папки Специални драйвери и инструменти, позволяващи бързо преминаване от една система в друга Възможност за работа с команден прозорец (в допълнение към графичния интерфейс) Приложно-програмен интерфейс (Java, Python, SOAP, XPCOM) за контрол на конфигурацията и изпълнението на виртуалната машина Вложено пейджиране за AMD-V и Intel VT (само за процесори, поддържащи SLAT) Частична поддръжка на 3D графично ускорение (включително OpenGL до версия 3.0 (но без нея) и Direct3D 9.0c чрез преобразуването от Direct3D към OpenGL на Wine) SMP поддръжка (до 32 виртуални процесора за виртуална машина) от версия 3.0 насам Миграция в реално време (още известна като Live Migration) 2D ускорение на изходното видео (да не се бърка в ускорение на видео декодинга) от версия 3.1 насам
Емулация на устройства за съхраниение на данни NCQ поддръжка за SATA, SCSI и SAS дискове Закачане и откачане на SATA дискове по време на работа (Hotplugging)