Направо към съдържанието

Oracle VM VirtualBox

от Уикипедия, свободната енциклопедия
Версия от 19:45, 29 април 2015 на NDonchev (беседа | приноси) (Превод от английската версия на статията.)
(разл) ← По-стара версия | Текуща версия (разл) | По-нова версия → (разл)

Oracle VM 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):

1.       VDI: Това е специфичен за VirtualBox формат, който съхранява данни във файлове с „.vdi“ разширение.

2.       VMDK: Този отворен формат се използва от VMWare продукти като VMWare Workstation и VMWare Player. Данните се съхраняват в един или повече файлове с разширение „.vmdk“. Един виртуален твърд диск може да бъде съдържан в няколко отделни файла.

3.       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)

·         Пропускателен режим (Pass-through mode) за статични дискови устройства (solid-state drives)

·         Пропускателен режим (Pass-through mode) за CD/DVD/BD дискове позволява пускане на аудио CD-та, запис на оптични дискове, възпроизвеждане на криптирани DVD дискове

·         Възможност за деактивиране на домакинския OS I/O кеш

·         Възможност за ограничаване на I/O честотната лента (I/O bandwidth)

·         PATA, SATA, SCSI, SAS, iSCSI и флопи-дискови контролери

Поддръжка с оглед съхранение на данни

·         Достъп до сурови (raw) твърди дискове – позволява физически разделения (partitions) на твърди дискове на системата - домакин да се появяват в системата - гост

·         Поддръжка на VMware Virtual Machine Disk (VMDK) формат – позволява на VirtualBox да обменя дискови образи с VMware

·         Поддръжка на Microsoft VHD

·         QEMU qed и qcow дискове

·         Твърди дискове във формат (само версия 2, 3 и 4 не се поддържат), използван от виртуализационните продукти на Parallels

·         Криптиране на дискът на виртуалната машина, използвайки AES128/AES256

От версия 3.2

·         Поддръжка на Mac OS X Server гост експериментална

·         Издуване (Ballooning) на паметта (не е налично под Solaris домакини)

·         RAM дедубликация (Page Fusion) за Windows гост системи на 64-битови домакини

·         Процесорно закачане и откачане (Hotplugging) по време на работа за Linux (hot-add и hot-remove) и определени Windows гост системи (само hot-add)

·         Триене на изображението на състояние (snapshot) докато виртуалната машина работи

·         Мулти-мониторна поддръжка в графичния потребителски интерфейс (за Windows гост системи)

·         Емулация на LSI Logic SAS контролер

·         Видео ускорение за Remote Desktop Protocol (RDP)

·         Стартиране и контрол на гост приложения от домакина – за автоматизирано софтуерно деплойване

От версия 4.0

·         PUEL/OSE разделянето е изоставено в полза на базов пакет с отворен код и разширителен пакет със затворен код, който може да бъде инсталиран върху базовия. Като част от тази промяна допълнителни компоненти на VirtualBox са направени с отворен код (инсталатори, документация, драйвери за устройства)

·         Емулация на HD audio codec

·         Емулация на ICH9 chipset

·         Нова схема за съхранение на данните от виртуалната машина – всички данни се съхраняват в една папка с цел подобрение на преносимостта

·         Редица подобрения на графичния интерфейс като нова визия на VM preview и scale mode

·         На 32-битови домакини всяка от виртуалните машини може да използва повече от 1.5 GB RAM

·         Освен OVF, форматът в единичен файл OVА също се поддържа

·         Потребяването на процесор и I/O честотната лента (I/O bandwidth) могат да бъдат ограничавани по отделно за всяка виртуална машина

·         Поддръжка на Apple DMG образи (DVD)

·         Мулти-мониторна поддръжка за Linux/Solaris гости (преди само за Windows)

·         Преоразмеряване на дисковите образни формати от Oracle - VDI (VirtualBox disk image) и Microsoft - VHD (Virtual PC hard disk)

От версия 4.1

·         Поддръжка на Windows Aero (експериментална)

·         Клониране на виртуални машини

От версия 4.2 

·         Групиране на виртуални машини – позволява управлението на групата като едно цяло (например включване и изключване)

·         Някой настройки на виртуалната машина могат да бъдат променяни по време на работа

·         Поддръжка на до 36 NICs при наличие на ICH9 chipset

·         Поддържа се ограничаване на мрежовия трафик

·         Може автоматично да се пускат виртуални машини на домакина при стартиране на операционната система (не работи за Windows)

 От версия 4.3

·         Прихващане на видео от виртуалната машина

·         Поддръжка на сензорни устройства от домакина (графичният интерфейс предава сензорните събития към госта) / USB виртуализация на такива устройства

От версия 5.0

·         Паравиртуализационна поддръжка за Windows, Linux и Solaris гости с цел подобряване на производителността

·         USB3 контролер

·         Двупосочна поддръжка на влачене и пускане (drag and drop) за Windows, Linux и Solaris гости

·         Криптиране на дисковите образи на виртуалната машина

·         Скалиране на изхода на виртуалната машина и поддръжка на HiDPI дисплеи

·         Закачане и откачане (Hotplugging) по време на работа на SATA дискове

·         Прихващане на USB трафика

·         Виртуалните машини могат да се разкачват от графичния интерфейс и да действат във фонов решим

Ограничения

·         Скоростта на прехвърляне на данни от и към USB2.0 устройства в VirtualBox е много бавна

·         Въпреки че VirtualBox е продукт с отворен код, някой от функциите му се предоставят само във формата на бинарен код с комерсиален лиценз (виж Разширителния пакет по-долу)

 

Разширителния пакет (The extension pack)

Някой от функциите са достъпни само след инсталирането на пакета със затворен код "VirtualBox Extension Pack":

·         Поддръжка на виртуален USB 2.0/3.0 контролер (EHCI/xHCI)

·         VirtualBox RDP: поддръжка на собственически протокол за отдалечена свързаност, разработен от Microsoft и Citrix

·         PXE boot за Intel карти

·         Криптиране на виртуалната машина

Инструменти от трети-лица (Third-party)

VirtualBox е част от Live Raizo – Debian базирано live CD, създаден специално за експерименти чрез симулация в сферата на мрежите и системната администрация.

Въпреки че VirtualBox не е преносимо приложение, преносима версия може да бъде набавена от различни инструмени като vbox.me или LinuxLive USB Creator.