Oracle VM VirtualBox

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
VirtualBox
Virtualbox logo.png
VirtualBox screenshot.png
Kubuntu Live CD с Oracle VM VirtualBox на Windows 7 в действие
Информация
Автор Innotek GmbH
Разработчик Oracle Corporation
Начални версии 15 януари 2007 г.;
преди 10 години
 (2007-01-15)
Програмен език C, C++, x86 Assembly
Операционна система Windows, OS X, Linux и Solaris[1]
Размер 86–115 MB в зависимост от платформата[2]
Вид софтуер Хипервайзор
Лиценз Базов пакет (USB поддръжка само за USB 1.1): GNU General Public License версия 2, Разширителен пакет (включващ USB 2.0 поддръжка): PUEL
Уебсайт www.virtualbox.org
Oracle VM VirtualBox в Общомедия

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[3] и Genode[4]. Поддържаните гостуващи операционни системи включват различни версии и разновидности на Windows, Linux, BDS, OS/2, Solaris, Haiku и други.[5] От версия 3.2.0 насам VirtualBox позволява частична виртуализация на OS X гости върху Apple хардуер. OSx86 също може да бъде инсталирана използвайки VirtualBox.[6][7]

За най-ползотворно използване на продукта се препоръчва инсталирането на Добавки към госта (Guest Additions) към гостуващата операционна система.[8] Тези добавки представляват различни драйвери и системни приложения, които оптимизират гостуващата операционна система за по-добра производителност и използваемост.[9] От версия 4.3 (излязла през октомври 2013 г.[10]), Windows гостуващите системи на хардуер, който е поддържан могат да се възползват от WDDM драйвера включен в пакета Guest Additions. Това позволява използването на Windows Aero заедно с поддръжка на Direct3D.

История[редактиране | редактиране на кода]

VirtualBox първоначално се предлага от Innotek от Германия под собственически софтуерен лиценз, правейки една от версиите на продуктът безплатна за използване за лични нужди при съобразяване с VirtualBox Условията за индивидуално и временно ползване (Personal Use and Evaluation License – PUEL).[11] През януари 2007 г. по препоръка на LiSoG, Innotek пускат VirtualBox Версия с отворен код (Open Source Edition – OSE), обект на изискванията на GNU Основен публичен лиценз (General Public License – GPL), версия 2.[12]

Innotek също допринася за разработката на виртуализация[13] на OS/2 и Linux, както и за OS/2 портове[14] на продукти на Connectix – фирма по-късно придобита от Microsoft. В частност, Innotek разработват кода за добавките в Microsoft Virtual PC и Microsoft Virtual Server, които дават възможност за различни взаимодействия между основната и гостуващите операционни системи като споделени клипбордове (clipboards) или динамично оразмеряване на екранното пространство (viewport).

Sun Microsystems придобиват Innotek през февруари 2008 г.[15][16][17]

Oracle Corporation придобива Sun през януари 2010 г. и прекръства продукта на „Oracle VM VirtualBox“.[18][19][20]

Лицензиране[редактиране | редактиране на кода]

С версия 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 лиценз. Той позволява използването на продукта за лично ползване безплатно.[21]

Oracle определя като лично ползване всяка ситуация, в която индивид инсталира софтуера и само той, негови приятели или членове на семейството му го използват. Oracle не прави разграничаване между това дали софтуерът се използва с комерсиална или некомерсиална цел.[22] Oracle определя като използване за не-лични цели, например, ако мрежови администратор инсталира много копия на софтуера на много различни машини, използвани от различни потребители. В тази ситуация е нужно да бъде закупен специален лиценз.

Преди версия 4 са налични два различни пакета на VirtualBox софтуера. Първият (пълен пакет) се предлага безплатно под PUEL, а вторият се предлага под GPLv2 лиценз и се казва VirtualBox Open Source Edition (OSE).

VirtualBox изисква използването на Open Watcom компилатор за построяване на BIOS-а след версия 4.2.[23]

Въпреки че VirtualBox позволява експериментална поддръжка за Mac OS X гостуващи системи, лицензът на Mac OS X не позволява тя да работи на друг хардуер, освен на Apple. Това е наложено в операционната система чрез викане на Apple System Management Controller (SMC), който верифицира автентичността на хардуера.[24]

Емулирана среда[редактиране | редактиране на кода]

Потребителите на VirtualBox могат да зареждат множество гостуващи операционни системи, използвайки една система – домакин. Всяка гостуваща система може да бъде стартирана, паузирана и спряна независимо в собствената си виртуална машина. Потребителят може да конфигурира по отделно всяка виртуална машина и да я подкара на редица софтуер-базирани виртуализации или на хардуерно базирани такива ако използвания домакинстващ хардуер го позволява. Операционната система – домакин, гост системите и различните приложения могат да комуникират помежду си през различни механизми като общ клипборд и виртуализирано мрежово съоръжение (virtualized network facility). Виртуалните машини – гост могат директно да комуникират помежду си ако са конфигурирани по такъв начин.[25]

Софтуерно-базирана виртуализация[редактиране | редактиране на кода]

В случай на липса на хардуерно-базирана виртуализация, 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 гост).[26]

Използвайки тези техники, VirtualBox постига производителност сравнима с тази на VMware.[27][28]

Хардуерно-базирана виртуализация[редактиране | редактиране на кода]

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 г.) насам.[29]

Както ISO образи, така и свързани физически устройства към домакина могат да бъдат зареждани като CD/DVD устройства. Например, DVD образ на Linux дистрибуция може да бъде смъкнат от Интернет и използван директно от VirtualBox.

По подразбиране VirtualBox предлага графична поддръжка през специфична виртуална графична карта, която е VESA съвместима. Guest Additions за Windows, Linux, Solaris, OpenSolaris или OS/2 гости включват специален видео драйвер, който увеличава производителността и предлага допълнителна функционалност като автоматично коригиране на резолюцията на госта при оразмеряване на прозореца на виртуалната машина[30] или композиция на работния плот чрез виртуализирани WDDM драйвери.

За Etherner мрежови карти VirtualBox виртуализира следните Карти за мрежови интерейфи:[31]

  • 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 устройства.[32]

Емулиран е USB 1.1 контролер, така че всяко USB устройство, закачено към домакина, може да бъде достъпено през системата – гост. Специален собственически разширителен пакет добавя поддръжка на USB 2.0 контролер и VirtualBox действа като RDP сървър. USB устройства на отдалечения RDP клиент също могат да бъдат използвани все едно, че са свързани директно за домакина. Това е възможно само ако клиентът поддържа въпросния разширителен пакет (Oracle предлагат клиенти за Solaris, Linux и Sun Ray, които го поддържат и обещават поддръжка и за други платформи за в бъдеще).[33]

Списък с характеристики[редактиране | редактиране на кода]

  • 64-битови гост системи (нужна е поддръжка на хардуерна виртуализация)
  • Изображения на състоянието (Snapshots)
  • Seamless режим – способността виртуализирани приложения да работят заедно с нормалните такива
  • Споделен клипборд
  • Споделени папки
  • Специални драйвери и инструменти, позволяващи бързо преминаване от една система в друга
  • Възможност за работа с команден прозорец (в допълнение към графичния интерфейс)
  • Приложно-програмен интерфейс (Java, Python, SOAP, XPCOM) за контрол на конфигурацията и изпълнението на виртуалната машина[34]
  • Вложено пейджиране за 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) за статични дискови устройства
  • Пропускателен режим 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 гости с цел подобряване на производителността
  • USB 3 контролер
  • Двупосочна поддръжка на влачене и пускане (drag and drop) за Windows, Linux и Solaris гости
  • Криптиране на дисковите образи на виртуалната машина
  • Скалиране на изхода на виртуалната машина и поддръжка на HiDPI дисплеи
  • Закачане и откачане (Hotplugging) по време на работа на SATA дискове
  • Прихващане на USB трафика
  • Виртуалните машини могат да се разкачват от графичния интерфейс и да действат във фонов решим

Ограничения[редактиране | редактиране на кода]

  • Скоростта на прехвърляне на данни от и към USB 2.0 устройства в VirtualBox е много бавна[35][36]
  • Въпреки че VirtualBox е продукт с отворен код, някой от функциите му се предоставят само във формата на бинарен код с комерсиален лиценз (виж Разширителния пакет по-долу)

Разширителния пакет (The extension pack)[редактиране | редактиране на кода]

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

  • Поддръжка на виртуален USB 2.0/3.0 контролер (EHCI/xHCI)
  • VirtualBox RDP: поддръжка на собственически протокол за отдалечена свързаност, разработен от Microsoft и Citrix
  • PXE boot за Intel карти
  • Криптиране на виртуалната машина

Инструменти от трети лица[редактиране | редактиране на кода]

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

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

Източници[редактиране | редактиране на кода]

  1. а б Downloads – Oracle VM VirtualBox. //
  2. VirtualBox downloads. //
  3. VirtualBox – FreeBSD Wiki. // Wiki.freebsd.org, 2009-06-16. Посетен на 2015-05-01.
  4. Release notes for the Genode OS Framework 14.02. // http://genode.org/,+February 28, 2014. Посетен на 2015-05-01.
  5. Guest_OSes. // VirtualBox, 2009-06-12. Посетен на 2015-05-01.
  6. How to Install Mac OS X Snow Leopard in VirtualBox on Windows 7. //
  7. Kevin Purdy. VirtualBox 3.2 Beta Virtualizes Mac OS X (On Macs). // Lifehacker, May 4, 2010.
  8. Run Ubuntu Linux Within Windows Using VirtualBox. // linux.about.com.
  9. Chapter 4 Guest Additions. // VirtualBox.
  10. Oracle VM VirtualBox 4.3 Now Available. // Oracle Corporation, 2013-10-15. Посетен на 2015-05-01. Generally available today, Oracle VM VirtualBox 4.3 delivers the latest enhancements to the world’s most popular, free and open source, cross-platform virtualization software.
  11. VirtualBox_PUEL – VirtualBox. // VirtualBox, 2008-09-10. Посетен на 2015-05-01.
  12. GPL. // VirtualBox. Посетен на 2015-05-01.
  13. Ronny Ong   View profile    More options. Additions Version History – microsoft.public.virtualpc | Google Groups. // Groups.google.com. Посетен на 2015-05-01.
  14. Connectix Announces First Virtual Computing Solution for OS/2 Users; Virtual PC Lets Enterprises Run OS/2 and Windows Concurrently on a Single PC | Business Wire | Find Articles at BNET. // Findarticles.com, 2002-07-01. Посетен на 2015-05-01.
  15. Sun Microsystems Announces Agreement to Acquire Innotek, Expanding Sun xVM Reach to the Developer Desktop. // Sun Microsystems, February 12, 2008. Посетен на 2015-05-01.
  16. E-Commerce News: Business: Sun Gets Desktop Virtualization Chops With Innotek Buy. // Ecommercetimes.com. Посетен на 2015-05-01.
  17. Sun Welcomes Innotek. // Sun Microsystems, Inc.. Посетен на 2015-05-01. On February 20 Sun completed the acquisition of Innotek
  18. Oracle and Virtualization. // Oracle Corporation. Посетен на 2015-05-01.
  19. VirtualBox Joins Oracle's Enterprise Virtualization Portfolio. // systemnews, February 25, 2010. Посетен на 2015-05-01.[мъртъв линк]
  20. Hawley, Adam. The Oracle VM Product Line Welcomes Sun!. // Oracle Virtualization Blog. Oracle Corporation, February 26, 2010. Архив на оригинала от 2010-04-07. Посетен на 2015-05-01.
  21. VirtualBox_PUEL. // VirtualBox, 2010-04-19. Посетен на 2015-05-01.
  22. Licensing: Frequently Asked Questions. // VirtualBox. Посетен на 2015-05-01.
  23. Copyright file of Virtualbox 4.2 in Wheezy-backports. // Debian.
  24. Interview with Andy Hall, Product Manager for Oracle VM VirtualBox. //
  25. Internal Networking. // VirtualBox. Посетен на 2015-05-01.
  26. VirtualBox Manual, Section 10.4 Details about software virtualization. // VirtualBox. Посетен на 2015-05-01.
  27. Dr. Oliver Diedrich. heise open – 15.01.07 – VirtualBox. // Heise.de, 2007-01-15. Посетен на 2015-05-01.
  28. Jason Perlow. Virtualization Smackdown 2: Oracle VM VirtualBox 3.2 vs. VMware Workstation 7.1. // ZDNET, 2010-05-21. Посетен на 2015-05-01.
  29. VirtualBox changelog. // Посетен на 2015-05-01.
  30. Chapter 4. Guest Additions. // VirtualBox. Посетен на 2015-05-01.
  31. Chapter 6. Virtual networking. // VirtualBox. Посетен на 2015-05-01.
  32. Chapter 3. Configuring Virtual Machines. // VirtualBox. Посетен на 2015-05-01.
  33. VirtualBox 4.1.4 Manual – Chapter 7 Remote Virtual Machines. // Oracle, 2011-10-03. Посетен на 2015-05-01.
  34. Python API to the VirtualBox VM. // Sun Microsystems, 2008-09-05. Архив на оригинала от 2008-09-10. Посетен на 2015-05-01.
  35. #2973 (USB extremely slow with USB-2.0 (very similar to #464)) – Oracle VM VirtualBox. // Oracle. Посетен на 2015-05-01.
  36. #4261 (Slow transfer speeds from USB disk) – Oracle VM VirtualBox. // Oracle. Посетен на 2015-05-01.
  37. Live Raizo — Linux Distro for Networks. // 7 March 2015. Посетен на 2015-05-01.
  38. Portable-VirtualBox. // Посетен на 2015-05-01.
  39. Other versions. // Посетен на 2015-05-01.


Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „VirtualBox“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода, и списъка на съавторите.