VirtualBox - VirtualBox

VirtualBox
Logo VirtualBox dal 2010
Logo VirtualBox dal 2010
VirtualBox 6.1.16 con Ubuntu 20.10 20210128 10 03 15.png
Esecuzione di Ubuntu 20.10 con Oracle VM VirtualBox su Windows 10
Autori originali Innotek
Sviluppatore/i Oracle Corporation
Versione iniziale 17 gennaio 2007 ; 14 anni fa ( 2007-01-17 )
Rilascio stabile
6.1.26 / 28 luglio 2021 ; 2 mesi fa ( 2021-07-28 )
Repository
Scritto in C , C++ , Assemblaggio x86 , Python
Sistema operativo Windows , macOS (solo Mac basati su Intel ), Linux e Solaris
piattaforma solo x86-64 (versione serie 5.xe precedenti funzionano su IA-32 )
Tipo Hypervisor
Licenza Pacchetto base ( supporto USB solo per USB 1.1 ): GNU General Public License versione 2 (opzionalmente CDDL per la maggior parte dei file della distribuzione sorgente), "Extension Pack" (incluso supporto USB 3.0 ): PUEL
Sito web www .virtualbox .org Modificalo su Wikidata

Oracle VM VirtualBox (precedentemente Sun VirtualBox , Sun xVM VirtualBox e Innotek VirtualBox ) è un hypervisor ospitato gratuito e open source per la virtualizzazione x86 , sviluppato da Oracle Corporation . Creato da Innotek, è stato acquisito da Sun Microsystems nel 2008, a sua volta acquisita da Oracle nel 2010.

VirtualBox può essere installato su Windows , macOS (fino a 10.15 Catalina , nessun supporto ufficiale di macOS 11 Big Sur e versioni successive nonostante la sua disponibilità per Mac basati su Intel), Linux , Solaris e OpenSolaris . Ci sono anche porting per FreeBSD e Genode . Supporta la creazione e la gestione di macchine virtuali guest che eseguono Windows, Linux, BSD , OS/2 , Solaris, Haiku e OSx86 , nonché la virtualizzazione limitata di guest macOS su hardware Apple. Per alcuni sistemi operativi guest è disponibile un pacchetto "Guest Additions" di driver di dispositivo e applicazioni di sistema, che tipicamente migliora le prestazioni, soprattutto quelle grafiche e permette di modificare automaticamente la risoluzione del SO guest quando la finestra della macchina virtuale sull'host Il sistema operativo viene ridimensionato.

Licenza

Il pacchetto principale è, dalla versione 4 nel dicembre 2010, software libero sotto GNU General Public License versione 2 (GPLv2). Il "Pacchetto di estensione VirtualBox VirtualBox Oracle VM" separato che fornisce supporto per dispositivi USB 2.0 e 3.0, Remote Desktop Protocol (RDP), crittografia del disco, avvio NVMe e Preboot Execution Environment (PXE) è soggetto a una licenza proprietaria , denominata Licenza per uso personale e valutazione (PUEL) , che consente l'utilizzo gratuito del software per uso personale, didattico o di valutazione. A partire dalla versione 5.1.30 di VirtualBox, Oracle definisce l'uso personale come l'installazione del software su un singolo computer host per scopi non commerciali. A differenza di alcuni software che utilizzano una licenza proprietaria, il "Pacchetto di estensione VirtualBox Oracle VM VirtualBox" non è disponibile come sorgente poiché include componenti closed-source, che non rendono il codice sorgente disponibile pubblicamente.

Prima della versione 4, c'erano due diversi pacchetti del software VirtualBox. Il pacchetto completo è stato offerto gratuitamente sotto il PUEL, con licenze per altre distribuzioni commerciali acquistabili da Oracle. Un secondo pacchetto chiamato VirtualBox Open Source Edition (OSE) è stato rilasciato sotto GPLv2. Questo ha rimosso gli stessi componenti proprietari non disponibili sotto GPLv2.

La creazione del BIOS per VirtualBox dalla versione 4.2 richiede l'uso del compilatore Open Watcom , per il quale la Sybase Open Watcom Public License è approvata come "Open Source" dalla Open Source Initiative ma non come "gratuita" dalla Free Software Foundation o sotto le linee guida per il software libero Debian .

Sebbene VirtualBox disponga del supporto sperimentale per i guest macOS, il contratto di licenza con l'utente finale di macOS non consente l'esecuzione del sistema operativo su hardware non Apple e questo viene applicato all'interno del sistema operativo tramite chiamate all'Apple System Management Controller (SMC) in tutte le macchine Apple, che verifica l'autenticità dell'hardware.

Ambiente emulato

Esecuzione di Ubuntu Live CD sotto VirtualBox su Ubuntu

Gli utenti di VirtualBox possono caricare più SO guest in un singolo sistema operativo host (OS host). Ogni guest può essere avviato, messo in pausa e arrestato in modo indipendente all'interno della propria macchina virtuale (VM). L'utente può configurare in modo indipendente ciascuna VM ed eseguirla con una scelta di virtualizzazione basata su software o virtualizzazione assistita da hardware se l'hardware host sottostante lo supporta. Il sistema operativo host e i sistemi operativi guest e le applicazioni possono comunicare tra loro tramite una serie di meccanismi, inclusi appunti comuni e una struttura di rete virtualizzata. Le VM guest possono anche comunicare direttamente tra loro se configurate per farlo.

Virtualizzazione basata su software

La funzionalità è stata abbandonata a partire da VirtualBox 6.1.

Versione 6.0 e precedenti

In assenza di virtualizzazione assistita da hardware, VirtualBox adotta un approccio di virtualizzazione standard basato su software . Questa modalità supporta i sistemi operativi guest a 32 bit che vengono eseguiti negli anelli 0 e 3 dell'architettura ad anello Intel .

  • Il sistema riconfigura il codice del sistema operativo guest, che normalmente verrebbe eseguito nell'anello 0, per essere eseguito nell'anello 1 sull'hardware host. Poiché questo codice contiene molte istruzioni privilegiate che non possono essere eseguite in modo nativo nell'anello 1, VirtualBox utilizza un Code Scanning and Analysis Manager (CSAM) per eseguire la scansione ricorsiva del codice dell'anello 0 prima della sua prima esecuzione per identificare le istruzioni problematiche e quindi chiama il Patch Manager (PATM) per eseguire patch in situ . Questo sostituisce l'istruzione con un salto a un frammento di codice compilato equivalente sicuro per la macchina virtuale nella memoria dell'hypervisor.
  • Il codice in modalità utente guest, in esecuzione nell'anello 3, viene generalmente eseguito direttamente sull'hardware host nell'anello 3.

In entrambi i casi, VirtualBox utilizza CSAM e PATM per ispezionare e correggere le istruzioni incriminate ogni volta che si verifica un errore. VirtualBox contiene anche un ricompilatore dinamico , basato su QEMU per ricompilare interamente qualsiasi codice in modalità reale o protetta (ad esempio codice BIOS, un guest DOS o qualsiasi avvio del sistema operativo).

Utilizzando queste tecniche, VirtualBox può raggiungere prestazioni paragonabili a quelle di VMware .

Virtualizzazione assistita da hardware

VirtualBox supporta sia Intel 's VT-x e AMD ' s AMD-V di virtualizzazione hardware-assisted. Facendo uso di queste strutture, VirtualBox può eseguire ogni VM guest nel proprio spazio di indirizzi separato; il codice dell'anello 0 del sistema operativo guest viene eseguito sull'host all'anello 0 in modalità non root VMX anziché nell'anello 1.

A partire dalla versione 6.1, VirtualBox supporta solo questo metodo. Fino ad allora, VirtualBox supportava in modo specifico alcuni guest (inclusi guest a 64 bit, guest SMP e alcuni sistemi operativi proprietari) solo su host con virtualizzazione assistita da hardware .

Virtualizzazione dei dispositivi

VirtualBox emula i dischi rigidi in tre formati: il VDI nativo (Virtual Disk Image), il VMDK di VMware e il VHD di Microsoft Windows . Supporta quindi i dischi creati da altri software hypervisor. VirtualBox può anche connettersi a target iSCSI e a partizioni non elaborate sull'host, utilizzando entrambi come dischi rigidi virtuali. VirtualBox emula i controller IDE (controller PIIX4 e ICH6), SCSI , SATA (controller ICH8M) e SAS a cui è possibile collegare i dischi rigidi.

VirtualBox supporta l' Open Virtualization Format (OVF) dalla versione 2.2.0 (aprile 2009).

Sia le immagini ISO che i dispositivi fisici collegati all'host possono essere montati come unità CD o DVD. VirtualBox supporta l'esecuzione di sistemi operativi da CD e DVD live .

Per impostazione predefinita, VirtualBox fornisce supporto grafico tramite una scheda grafica virtuale personalizzata compatibile con VESA . Le Guest Additions per guest Windows, Linux, Solaris, OpenSolaris o OS/2 includono uno speciale driver video che aumenta le prestazioni video e include funzionalità aggiuntive, come la regolazione automatica della risoluzione del guest quando si ridimensiona la finestra della VM o la composizione del desktop tramite WDDM virtualizzato autisti .

Per una scheda di rete Ethernet , VirtualBox virtualizza queste schede di interfaccia di rete :

  • AMD PCnet PCI II (Am79C970A)
  • AMD PCnet-Fast III (Am79C973)
  • Intel Pro/1000 MT Desktop (82540EM)
  • Server Intel Pro/1000 MT (82545EM)
  • Server Intel Pro/1000 T (82543GC)
  • Adattatore di rete paravirtualizzato (virtio-net)

Le schede di rete emulate consentono l'esecuzione della maggior parte dei sistemi operativi guest senza la necessità di trovare e installare driver per l'hardware di rete poiché vengono forniti come parte del sistema operativo guest. È disponibile anche uno speciale adattatore di rete paravirtualizzato, che migliora le prestazioni di rete eliminando la necessità di abbinare un'interfaccia hardware specifica, ma richiede un supporto driver speciale nel guest. (Molte distribuzioni di Linux vengono fornite con questo driver incluso.) Per impostazione predefinita, VirtualBox utilizza NAT attraverso il quale può funzionare il software Internet per utenti finali come Firefox o ssh . È inoltre possibile configurare il collegamento in rete tramite un adattatore di rete host o reti virtuali tra ospiti. È possibile collegare contemporaneamente fino a 36 schede di rete, ma solo quattro sono configurabili tramite l'interfaccia grafica.

Per una scheda audio, VirtualBox virtualizza i dispositivi Intel HD Audio, Intel ICH AC'97 e SoundBlaster 16 .

Viene emulato un controller USB 1.1 in modo che qualsiasi dispositivo USB collegato all'host possa essere visto nel guest. Il pacchetto di estensione proprietario aggiunge un controller USB 2.0 o USB 3.0 e, se VirtualBox funge da server RDP, può anche utilizzare dispositivi USB sul client RDP remoto come se fossero collegati all'host, anche se solo se il client supporta questo VirtualBox -estensione specifica (Oracle fornisce client per thin client Solaris, Linux e Sun Ray che possono farlo e ha promesso il supporto per altre piattaforme nelle versioni future).

Set di funzioni

  • Istantanee
  • Modalità Seamless: la capacità di eseguire applicazioni virtualizzate fianco a fianco con normali applicazioni desktop
  • Appunti condivisi
  • Cartelle condivise
  • Driver e utilità speciali per facilitare il passaggio da un sistema all'altro
  • Interazione da riga di comando (oltre alla GUI)
  • API pubbliche ( Java , Python , SOAP , XPCOM ) per controllare la configurazione e l'esecuzione della VM
  • Paginazione annidata per AMD-V e Intel VT (solo per processori che supportano SLAT e con SLAT abilitato)
  • Supporto limitato per l' accelerazione grafica 3D (incluso OpenGL fino a (ma non incluso) 3.0 e Direct3D 9.0c tramite la traduzione da Direct3D a OpenGL di Wine )
  • Supporto SMP (fino a 32 CPU virtuali per macchina virtuale), dalla versione 3.0
  • Teletrasporto (alias Migrazione dal vivo )
  • Accelerazione dell'uscita video 2D (da non confondere con l'accelerazione della decodifica video), dalla versione 3.1
  • EFI è supportato dalla versione 3.1 (i guest Windows 7 non sono supportati)
Funzionalità di emulazione dello spazio di archiviazione
Supporto per l'archiviazione
  • Accesso al disco rigido non elaborato: consente alle partizioni del disco rigido fisico sul sistema host di apparire nel sistema guest
  • Supporto del formato VMware Virtual Machine Disk ( VMDK ) – consente lo scambio di immagini disco con VMware
  • Supporto Microsoft VHD
  • Dischi QEMU qed e qcow
  • Dischi in formato HDD (solo versione 2; le versioni 3 e 4 non sono supportate) utilizzati dai prodotti di virtualizzazione Parallels
Dalla versione 3.2
  • Supporto guest per Mac OS X Server – sperimentale
  • Memoria in mongolfiera (non disponibile sugli host Solaris)
  • Deduplicazione RAM (Page Fusion) per guest Windows su host a 64 bit
  • Collegamento a caldo della CPU per Linux (aggiunta e rimozione a caldo) e alcuni guest Windows (solo aggiunta a caldo)
  • Eliminazione di snapshot mentre la VM è in esecuzione
  • Configurazioni guest multi-monitor nella GUI , per guest Windows
  • Emulazione del controller SAS LSI Logic
  • Accelerazione video Remote Desktop Protocol (RDP) tramite un'estensione non gratuita
  • Esegui e controlla le applicazioni guest dall'host, per implementazioni software automatizzate
Dalla versione 4.0
  • La separazione PUEL/OSE è stata abbandonata a favore di un prodotto base open source e di un pacchetto di estensione closed source che può essere installato sopra il prodotto base. Come parte di questa modifica, i componenti aggiuntivi di VirtualBox sono stati resi open source (installatori, documentazione, driver di dispositivo)
  • Emulazione del codec audio Intel HD
  • Emulazione del chipset Intel ICH9
  • Un nuovo schema di archiviazione della VM in cui tutti i dati della VM sono archiviati in un'unica cartella per migliorare la portabilità della VM
  • Diversi miglioramenti dell'interfaccia utente, tra cui un nuovo look con l'anteprima della VM e la modalità di ridimensionamento
  • Su host a 32 bit, ciascuna VM può utilizzare più di 1,5 GB di RAM
  • Oltre a OVF , è supportato il formato OVA a file singolo
  • L'utilizzo della CPU e la larghezza di banda I/O possono essere limitati per VM
  • Supporto per immagini Apple DMG (DVD)
  • Configurazioni guest multi-monitor per guest Linux/Solaris (in precedenza solo Windows)
  • Ridimensionamento di formati immagine disco da Oracle, VDI (immagine disco VirtualBox) e Microsoft, VHD (disco rigido PC virtuale)
Dalla versione 4.1
  • Supporto Windows Aero (sperimentale)
  • Clonazione di macchine virtuali
Dalla versione 4.2
  • Gruppi di macchine virtuali: consente la gestione di un gruppo di macchine virtuali come una singola unità (accenderle o spegnerle, scattare istantanee, ecc.)
  • Alcune impostazioni della VM possono essere modificate durante l'esecuzione della VM
  • Supporta fino a 36 NIC nel caso del chipset ICH9
  • Supporto per la limitazione della larghezza di banda I/O di rete
  • Può eseguire automaticamente le macchine virtuali all'avvio del sistema host (tranne su host Windows)
Dalla versione 4.3
  • Supporto per l'acquisizione di video VM
  • Supporto del dispositivo touch dell'host (la GUI passa gli eventi touch dell'host al guest)/virtualizzazione USB di tali dispositivi
Dalla versione 5.0
  • Supporto della paravirtualizzazione per gli ospiti Windows e Linux per migliorare la precisione e le prestazioni del mantenimento del tempo
  • Controller USB3 basato sull'implementazione hardware di Intel. È supportato da qualsiasi versione di Windows a partire da Windows 8 , da qualsiasi kernel Linux a partire dalla 2.6.31 e da Mac OS X a partire dalla versione 10.7.4.
  • Supporto drag and drop bidirezionale per guest Windows, Linux e Solaris
  • Crittografia dell'immagine del disco VM tramite un'estensione non gratuita
  • Ridimensionamento dell'output della macchina virtuale e supporto per display HiDPI
  • Collegamento a caldo di dischi SATA tramite GUI
  • Acquisizione del traffico USB
  • Le VM possono essere disconnesse da una sessione GUI ed eseguite in background
  • Istruzioni AVX , AVX-2, AES-NI , SSE 4.1/4.2 (se supportate dalla CPU host)
Dalla versione 6.0
  • Supporto per l'esportazione di macchine virtuali in Oracle Cloud
  • Un file manager che consente di controllare il file system ospite e copiare file da/verso esso
  • Driver GPU VMSVGA per host Linux
  • Supporto per la configurazione dei diffusori surround
  • Supporto per virtualizzazione nidificata assistita da hardware su CPU AMD
Dalla versione 6.1
  • Supporto per l'importazione di macchine virtuali da Oracle Cloud
  • Aggiunto il supporto per la virtualizzazione nidificata per le CPU Intel (era già disponibile per le CPU AMD) a partire da Intel Core i5 Broadwell
  • Supporto sperimentale per i trasferimenti di file tramite drag-n-drop solo per host e guest Windows (disabilitato per impostazione predefinita, deve essere abilitato utilizzando VBoxManage)
  • Supporto per virtio-scsi per dischi rigidi e unità ottiche, incluso il supporto per l'avvio
  • Supporto per host con fino a 1024 CPU
  • Supporto DXVA (decodifica video con accelerazione hardware) per gli ospiti Windows
  • Supporto NVRAM per EFI che migliora la compatibilità con molti sistemi operativi guest
  • Tastiera software per l'immissione di qualsiasi chiave per un ospite
  • Monitoraggio dell'utilizzo della CPU ospite
  • Supporto interrotto per la virtualizzazione della CPU software: ora è necessaria una CPU con supporto per la virtualizzazione hardware
  • Supporto interrotto per passthrough PCI per host Linux

Limitazioni

  • L'accelerazione grafica 3D per i guest Windows precedenti a Windows 7 è stata rimossa nella versione 6.1. Ciò ha interessato Windows XP e Windows Vista.
  • VirtualBox ha una velocità di trasferimento molto bassa da e verso i dispositivi USB2 .
  • Nonostante sia un prodotto open source, alcune delle sue funzionalità sono disponibili solo in forma binaria con una licenza commerciale (vedi "VirtualBox Extension Pack" di seguito).
  • Il pass-through dei dispositivi USB3 non è supportato dai vecchi sistemi operativi guest come Windows Vista e Windows XP a causa della mancanza di driver, tuttavia a partire dalla versione 5.0 VirtualBox offre un controller sperimentale Renesas uPD720201 xHCI USB3 che consente di utilizzare USB3 in questi sistemi operativi attraverso la modifica manuale della configurazione File.
  • Le aggiunte guest per macOS non sono al momento disponibili.
  • Le aggiunte guest per Windows 9x ( Windows 95 , 98 e ME ) non sono disponibili. Ciò si traduce in prestazioni scadenti a causa della mancanza di accelerazione grafica con la modalità colore a 16 bit predefinita ( è disponibile un software esterno di terze parti per abilitare il supporto per la modalità colore a 32 bit, con conseguente miglioramento delle prestazioni).
  • Il supporto EFI è incompleto, ad esempio l'avvio EFI per un guest Windows 7 non è supportato. Manca l'avvio UEFI sicuro per i sistemi operativi guest.
  • Sono supportate solo le versioni precedenti di DirectX e OpenGL passthrough (la funzione può essere abilitata utilizzando l'opzione Accelerazione 3D per ciascuna VM individualmente).
  • La RAM video è limitata a 128 MiB (256 MiB con accelerazione video 2D abilitata) a causa di difficoltà tecniche (la semplice modifica della GUI per consentire all'utente di allocare più RAM video a una VM o la modifica manuale del file di configurazione di una VM non funzionerà e risulterà in un errore fatale ).
  • Windows 95/98/98SE/ME non può essere installato o funzionare in modo inaffidabile con le moderne CPU (AMD Zen o successive) e la virtualizzazione assistita da hardware (VirtualBox 6.1 e successive). Ciò è dovuto al fatto che questi sistemi operativi non sono stati codificati correttamente.

Pacchetto di estensione VirtualBox

Alcune funzionalità richiedono l'installazione del "VirtualBox Extension Pack" closed-source :

  • Supporto per un controller USB 2.0/3.0 virtuale (EHCI/xHCI)
  • VirtualBox RDP : supporto per il protocollo di connessione remota proprietario sviluppato da Microsoft e Citrix Systems .
  • Avvio PXE per schede Intel.
  • Crittografia dell'immagine del disco della macchina virtuale
  • Supporto per fotocamera / webcam

Sebbene VirtualBox stesso sia gratuito e distribuito con una licenza open source, VirtualBox Extension Pack è concesso in licenza con la licenza per uso personale e valutazione di VirtualBox (PUEL). L'uso personale è gratuito, ma gli utenti commerciali devono acquistare una licenza. Oracle controlla regolarmente i file di registro per i download del pacchetto di estensione VirtualBox da indirizzi IP non residenziali e contatta gli utenti senza licenza per imporre la conformità.

Mentre le Guest Additions sono installate all'interno di ogni macchina virtuale guest adatta, l'Extension Pack è installato sull'host che esegue VirtualBox.

Supporto del sistema operativo host

I sistemi operativi supportati includono:

Storia

Logo di VirtualBox OSE, 2007–2010

VirtualBox è stato offerto per la prima volta da Innotek GmbH di Weinstadt , Germania , con una licenza software proprietaria , rendendo disponibile una versione del prodotto gratuitamente per uso personale o di valutazione, soggetta alla licenza per uso personale e valutazione di VirtualBox (PUEL). Nel gennaio 2007, sulla base del consiglio di LiSoG , Innotek GmbH ha rilasciato VirtualBox Open Source Edition (OSE) come software gratuito e open source , soggetto ai requisiti della GNU General Public License (GPL), versione 2.

Innotek GmbH ha anche contribuito allo sviluppo del supporto OS/2 e Linux nella virtualizzazione e nelle porte OS/2 dei prodotti Connectix che sono stati successivamente acquisiti da Microsoft . Nello specifico, Innotek ha sviluppato il codice "aggiunte" sia in Windows Virtual PC che in Microsoft Virtual Server , che consente varie interazioni tra host e sistema operativo come appunti condivisi o ridimensionamento dinamico della finestra.

Sun Microsystems ha acquisito Innotek nel febbraio 2008.

Oracle Corporation ha acquisito Sun nel gennaio 2010 e ha rinominato il prodotto come "Oracle VM VirtualBox".

A dicembre 2019, VirtualBox ha iniziato a supportare solo la virtualizzazione assistita da hardware , abbandonando il supporto per quella basata su software .

Guarda anche

Appunti

Riferimenti

link esterno