Oracle VM VirtualBox (с предишно наименование Sun VirtualBox, Sun xVM VirtualBox и Innotek VirtualBox) е хипервайзор за x86 компютри на корпорация Oracle. Първоначално Innotek разработват продукта до придобиването на компанията от Sun Microsystems през 2008 г., а от 2010 г. насам Oracle се занимават с разработването.

VirtualBox
VirtualBox 7.0 на Windows 10 в действие
Информация
АвторInnotek GmbH
РазработчикOracle Corporation
Начална версия15 януари 2007 г.;
преди 17 години
 (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 в Общомедия

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]

Лицензиране редактиране

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

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

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

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

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

Емулирана среда редактиране

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

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

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

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

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

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

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

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

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

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

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

Списък с характеристики редактиране

  • 64-битови гост системи (нужна е поддръжка на хардуерна виртуализация)
  • Изображения на състоянието (Snapshots)
  • Seamless режим – способността виртуализирани приложения да работят заедно с нормалните такива
  • Споделен клипборд
  • Споделени папки
  • Специални драйвери и инструменти, позволяващи бързо преминаване от една система в друга
  • Възможност за работа с команден прозорец (в допълнение към графичния интерфейс)
  • Приложно-програмен интерфейс (Java, Python, SOAP, XPCOM) за контрол на конфигурацията и изпълнението на виртуалната машина[33]
  • Вложено пейджиране за 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 е много бавна[34][35]
  • Въпреки че 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, създаден специално за експерименти чрез симулация в сферата на мрежите и системната администрация.[36]

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

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

  1. а б Downloads – Oracle VM VirtualBox
  2. VirtualBox downloads
  3. VirtualBox – FreeBSD Wiki // Wiki.freebsd.org, 16 юни 2009. Посетен на 1 май 2015.
  4. Release notes for the Genode OS Framework 14.02 // genode.org/, 28 февруари 2014. Посетен на 1 май 2015.
  5. Guest_OSes // VirtualBox, 12 юни 2009. Посетен на 1 май 2015.
  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, 4 май 2010.
  8. Run Ubuntu Linux Within Windows Using VirtualBox // linux.about.com. Архивиран от оригинала на 2014-10-19. Посетен на 2015-05-01.
  9. Chapter 4 Guest Additions // VirtualBox.
  10. Oracle VM VirtualBox 4.3 Now Available // Oracle Corporation, 15 октомври 2013. Посетен на 1 май 2015. 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, 10 септември 2008. Посетен на 1 май 2015.
  12. GPL // VirtualBox. Посетен на 1 май 2015.
  13. Ronny Ong. Additions Version History – microsoft.public.virtualpc | Google Groups // Groups.google.com. Посетен на 1 май 2015.
  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, 1 юли 2002. Посетен на 1 май 2015.
  15. Sun Microsystems Announces Agreement to Acquire Innotek, Expanding Sun xVM Reach to the Developer Desktop // Sun Microsystems, 12 февруари 2008. Архивиран от оригинала на 2008-02-13. Посетен на 1 май 2015.
  16. E-Commerce News: Business: Sun Gets Desktop Virtualization Chops With Innotek Buy // Ecommercetimes.com. Архивиран от оригинала на 2018-06-21. Посетен на 1 май 2015.
  17. Sun Welcomes Innotek // Sun Microsystems, Inc. Архивиран от оригинала на 2008-03-02. Посетен на 1 май 2015. On February 20 Sun completed the acquisition of Innotek
  18. Oracle and Virtualization // Oracle Corporation. Посетен на 1 май 2015.
  19. Hawley, Adam. The Oracle VM Product Line Welcomes Sun! // Oracle Virtualization Blog. Oracle Corporation, 26 февруари 2010. Архивиран от оригинала на 2010-04-07. Посетен на 1 май 2015.
  20. VirtualBox_PUEL // VirtualBox, 19 април 2010. Посетен на 1 май 2015.
  21. Licensing: Frequently Asked Questions // VirtualBox. Посетен на 1 май 2015.
  22. Copyright file of Virtualbox 4.2 in Wheezy-backports // Debian. Архивиран от оригинала на 2014-01-15. Посетен на 2015-04-30.
  23. Interview with Andy Hall, Product Manager for Oracle VM VirtualBox
  24. Internal Networking // VirtualBox. Посетен на 1 май 2015.
  25. VirtualBox Manual, Section 10.4 Details about software virtualization // VirtualBox. Посетен на 1 май 2015.
  26. Dr. Oliver Diedrich. heise open – 15.01.07 – VirtualBox // Heise.de, 15 януари 2007. Посетен на 1 май 2015.
  27. Jason Perlow. Virtualization Smackdown 2: Oracle VM VirtualBox 3.2 vs. VMware Workstation 7.1 // ZDNET, 21 май 2010. Посетен на 1 май 2015.
  28. VirtualBox changelog // Архивиран от оригинала на 2010-02-05. Посетен на 1 май 2015.
  29. Chapter 4. Guest Additions // VirtualBox. Посетен на 1 май 2015.
  30. Chapter 6. Virtual networking // VirtualBox. Посетен на 1 май 2015.
  31. Chapter 3. Configuring Virtual Machines // VirtualBox. Посетен на 1 май 2015.
  32. VirtualBox 4.1.4 Manual – Chapter 7 Remote Virtual Machines // Oracle, 3 октомври 2011. Посетен на 1 май 2015.
  33. Python API to the VirtualBox VM // Sun Microsystems, 5 септември 2008. Архивиран от оригинала на 10 септември 2008. Посетен на 1 май 2015.
  34. #2973 (USB extremely slow with USB-2.0 (very similar to #464)) – Oracle VM VirtualBox // Oracle. Посетен на 1 май 2015.
  35. #4261 (Slow transfer speeds from USB disk) – Oracle VM VirtualBox // Oracle. Посетен на 1 май 2015.
  36. Live Raizo – Linux Distro for Networks // SourceForge. 7 март 2015. Посетен на 1 май 2015.
  37. Portable-VirtualBox // vbox.me. Посетен на 1 май 2015.
  38. Other versions // LinuxLive USB Creator. Посетен на 1 май 2015.


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

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​