# Oracle VM VirtualBox

Oracle VM VirtualBox (anciennement VirtualBox) est un logiciel libre de virtualisation créé par la société Innotek (en) rachetée par Sun Microsystems et aujourd'hui publié par Oracle.

## Définition
### Machine hôt

La machine hôte représente la machine physique qui va « héberger » une ou plusieurs machines virtuelles.
VirtualBox est installé sur la machine hôte.
En anglais, on la nomme Host.

### Système hôt

Le système hôte représente le système d'exploitation (OS) (Windows, MacOS ou Linux) qui est installé sur la machine hôte.

### Machine invité

La machine invitée représente la machine virtuelle qui sera allouée et gérée par l'hyperviseur VirtualBox.
On l'appelle aussi parfois client mais ce terme est moins adapté, il ne faut pas le confondre avec le client d'un système client/serveur.
En anglais, on la nomme guest.

### Système invité

Le système invité représente le système d'exploitation (OS) qui est installé sur la machine virtuelle.
N'importe quel système d'exploitation peut être utilisé comme système invité sur VirtualBox.

### Suppléments invités

Les suppléments invité (Guest Additions) sont une sorte de pack logiciel à installer sur la machine virtuelle pour optimiser son fonctionnement et ajouter de nouvelles fonctionnalités (dossiers partagés, glisser-déposer, ajustement automatique de la résolution de l'écran, etc.). Les suppléments invité (Guest Additions) font partie de la licence GPLv2 donc libre d'utilisation.

## Fonctionnalités
### Hyperviseur de type 2

VirtualBox est un hyperviseur de type 2, c'est-à-dire qu'il doit être installé sur un système d'exploitation, et non directement sur un ordinateur en tant que système d'exploitation.

### Systèmes hôtes

VirtualBox peut être installé sur les systèmes hôtes suivants :
* Linux (en 32 et 64 bits ; en .deb, en .rpm et en source)
* macOS (10.10 Yosemite, 10.11 El Capitan, 10.12 Sierra, 10.13 High Sierra, 10.14 Mojave, 10.15 Catalina, 11 Big Sur, 12 Monterey, 13 Ventura, 14 Sonoma, 15 Sequoia (sauf puce PowerPC))
* Solaris (10 et 11 en 64 bits)
* Windows (XP, Vista, 7, 8, 8.1, 10 et 11 en 32 et 64 bits)
À partir de VirtualBox v5.x, Windows XP n'est plus supporté.
* Windows Server (2008, 2008R2, 2012,2012 R2, 2016 et 2019 en 64 bits)
* FreeBSD
* Genode

### Système invités

En tant qu'invité, il supporte :
* IBM OS/2 Warp ;
* Linux 2.x/3.x/4.x ;
    Debian, Red Hat/CentOS;
* FreeBSD, NetBSD, OpenBSD ;
* Mac OS X ;
* Windows, de 3.1 à 10 et pour les serveurs, de NT4 à 2019.

### Disque VDI

Le VDI est le format d'enregistrement par défaut des disques durs virtuels pour VirtualBox. Selon les choix de l'utilisateur lors de la création de ce disque, il peut avoir une taille fixe ou variable. La taille sera fixe si l'utilisateur a choisi « taille fixe » dans les options. Si l'utilisateur choisit 8 Go, le disque pèsera 8 Go et ce, sans possibilité de le modifier par la suite, même si cet espace se révèle insuffisant lors de l'utilisation de la machine virtuelle. Cependant si la taille est dynamiquement allouée, le disque occupera l'espace qu'il nécessite et il pourra augmenter cet espace (le disque nécessitera de l'espace supplémentaire lorsque sur le système virtuel, des logiciels ou des fichiers seront installés par exemple) jusqu'à la limite fixée par l'utilisateur. Dans l'autre sens, même si ensuite des fichiers sont supprimés réduisant alors la taille logique du disque, cette réduction ne se répercutera pas sur le fichier VDI qui gardera en permanence la taille la plus grande obtenue. Il est toutefois possible, par le biais d'instructions spécifiques de VirtualBox à faire exécuter en mode "commande", de recompacter un fichier VDI à sa taille "optimale".
Ces deux choix de stockage ont chacun avantages et inconvénients. Un disque de taille dynamiquement allouée utilise en gros simplement l'espace où sont écrites des données, au prix d'un léger surcoût en lecture/écriture, à la manière d'un logical volume manager (LVM) en Linux ou AIX. A contrario, une taille fixe occupe un espace fixe qui est mobilisé dès sa création, mais assure des performances proches d'un disque natif. En 2016 où une taille typique de disque est 1 To, et si l'on ne doit pas stocker des dizaines de machines virtuelles, 40 Go s'allouent typiquement en espace fixe.
Le VDI est récupérable facilement aussi comme fichier de disque dur virtuel : on copie aisément ce fichier, que l'on peut ensuite importer dans d'autres machines virtuelles devenant des copies conformes de la première. Cela permet une redondance des serveurs dans un réseau, et aussi des sauvegardes commodes.

### Pack d'extension

Le logiciel peut être étendu au moyen de packs d'extension. L'éditeur en fournit un qui ajoute notamment le support de l'USB 2.0 (EHCI), l'USB 3 (xHCI), la webcam, la connexion directe à l'invité par RDP, le Boot PXE ou encore le chiffrement des images disques avec l'algorithme AES. Il est fourni sous une licence différente : VPUEL pour VirtualBox Personal Use and Evaluation License.

### VBoxManage

VBoxManage est l'interface en ligne de commandes de VirtualBox. Cette interface intègre toutes les fonctions disponibles à partir de l'interface graphique (GUI) mais dispose également de commandes supplémentaires pour la gestion, le contrôle et la configuration des machines virtuelles. On peut par exemple démarrer et arrêter une machine virtuelle en ligne de commande.
Quelques exemples :
* Création d'une machine virtuelle avec enregistrement : VBoxManage createvm --name "SUSE 10.2" --register
* Modification de la quantité de mémoire vive (RAM) d'une machine virtuelle : VBoxManage modifyvm "Windows XP" --memory 512
* Démarrage d'une machine virtuelle : VBoxManage startvm "Ubuntu 15.04"
* Compactage (réduction à sa taille optimale) d'un disque VDI : VboxManage modifyhd "systeme.vdi" --compact

### Licence (GPL2, CDDL et VPUEL)

VirtualBox est libre d'utilisation pour sa partie principale mais les Add-on, quant à eux, sont disponibles uniquement pour un usage privé, à titre privé. En bref, il est interdit d'utiliser les Add-on en entreprise ou en université.
Cette spécificité d'exclusion de certains Add-on, mise en place par Oracle suite au rachat de SUN, est largement utilisé par l'éditeur dans sa stratégie d'audit de conformité ciblée sur les Entreprises privées. En effet, le logiciel VirtualBox est couramment utilisé à titre individuel par beaucoup de salariés qui travaillent dans l'IT et qui pensent à tort que le logiciel est libre d'utilisation alors que certaines fonctionnalités (comme le support de l'USB 2 par exemple) ne le sont pas, faisant ainsi peser un risque juridique et financier à leur employeur sans en avoir conscience.

## Historique

Après plusieurs années de développement, VirtualBox a été publié par InnoTek en Allemagne sous la licence GNU GPL v2 en janvier 2007. Le 12 février 2008, Sun Microsystems a annoncé un accord d'acquisition d'InnoTek.

### Versions 1.x
#### version 1.6

La version 1.6.0 de VirtualBox est sortie le 30 avril 2008, elle inclut les principales nouveautés suivantes :
* Prise en charge des hôtes Solaris et Mac OS X.
* Prise en charge du "Seamless windowing" pour les invités Linux et Solaris.
* Le supplément Client "Guest Additions" pour Solaris.
* Une API de service web.
* Contrôleur AHCI pour les disques durs SATA.
* Prise en charge expérimentale du PAE (Physical Address Extension).
Cette version n'est plus supportée.
Première version : v1.6.0 (30/04/2008)
Dernière version : v1.6.6 (26/08/2008)

### versions 2.x
#### version 2.0

La version 2.0.0 de VirtualBox est sortie le 4 septembre 2008, elle intègre notamment des fonctionnalités supplémentaires dont le support des hôtes 64 bits, une interface Qt4 (Qt3 dans les versions précédentes) qui améliore l'intégration sous KDE et l'utilisation de l'interface native sous Mac OS X.
Cette version n'est plus supportée.
Première version : v2.0.0 (04/09/2008)
Dernière version : v2.0.12 (20/10/2009)

#### version 2.1

La version 2.1.0 de VirtualBox est sortie le 17 décembre 2008. Cette version est une mise à jour importante, du fait des nouvelles fonctionnalités apportées, à savoir :
* le support de la virtualisation matérielle (support des instructions VT-x et AMD-V) sur les hôtes Mac OS X.
* le support expérimental d'invité 64 bit sur des hôtes 32 bit.
* l'amélioration du support de la virtualisation sur les processeurs Intel Nehalem.
* le support expérimental de l'accélération 3D via OpenGL.
* le support expérimental des contrôleurs SCSI LsiLogic et BusLogic.
* le support VMDK/VHD support incluant les "snapshots".
* un nouveau moteur de NAT, plus fiable et ayant de meilleures performances, ainsi que le support de l'echo ICMP (ping).
* une nouvelle mise en œuvre de l'interface réseau pour les hôtes Windows et Linux, avec une configuration facilitée.
Cette version n'est plus supportée.
Première version : v2.1.0 (17/12/2008)
Dernière version : v2.1.4 (16/02/2009)

#### version 2.2

La version 2.2.0 de VirtualBox est sortie le 8 avril 2009, elle inclut les nouvelles fonctionnalités suivantes :
* Importation et l'exportation des machines virtuelles au format OVF (Open Virtualization Format).
* Ajout du mode réseau "hôte seul" (Host-Only).
* Optimisations de l'hyperviseur avec des gains significatifs de performance lorsque le "niveau de commutation" est élevé.
* Augmentation de la taille maximale de la mémoire pour les machines virtuelles à 16 Go sur les hôtes 64 bits.
* VT-x / AMD-V sont maintenant activés par défaut lors de la création de nouvelles machines virtuelles.
* USB (OHCI & EHCI) est maintenant activé par défaut lors de la création de nouvelles machines virtuelles (GUI Qt seulement).
* Support expérimental de l'USB pour les hôtes OpenSolaris.
* Dossiers partagés pour les invités Solaris et OpenSolaris.
* Accélération 3D OpenGL pour les invités Linux et Solaris.
* Ajout de l'API C en plus du C++, du Java, du Python et des services web.
Cette version n'est plus supportée.
Première version : v2.2.0 (08/04/2009)
Dernière version : v2.2.4 (29/05/2009)

### versions 3.x
#### version 3.0

La version 3.0.0 de VirtualBox est sortie le 30 juin 2009. Les modifications les plus importantes sont :
* Les systèmes invités peuvent accéder à un maximum de 32 processeurs virtuels, mais seulement quand la machine hôte dispose des instructions VT-x ou AMD-V.
* Systèmes Windows invités : possibilité d’utiliser les applications et les jeux DirectX 8 et 9 (expérimental).
* Support d’OpenGL 2.0 pour les systèmes invités Windows, Linux et Solaris.
Cette version n'est plus supportée.
Première version : v3.0.0 (30/06/2009)
Dernière version : v3.0.14 (18/03/2010)

#### version 3.1

La version 3.1.0 de VirtualBox est sortie le 30 novembre 2009.
Cette version n'est plus supportée.
Première version : v3.1.0 (30/11/2009)
Dernière version : v3.1.8 (10/05/2010)

#### version 3.2

Le 20 avril 2009, Oracle Corporation rachète Sun Microsystems. La version 3.2.0, sortie le 18 mai 2010, est la première version officiellement publiée par Oracle Corporation. Le logiciel est renommé à cette occasion Oracle VM VirtualBox.
Cette version n'est plus supportée depuis juin 2015.
Première version : v3.2.0 (18/05/2010)
Dernière version : v3.2.28 (19/05/2015)

### versions 4.x
#### version 4.0

La version 4.0.0 de VirtualBox est sortie le 22 décembre 2010. Les modifications les plus importantes sont :
* Ajout de fonctionnalités, sous forme d'extensions.
* L'interface utilisateurs a été repensée (avec notamment une fonction de tri des machines virtuelles, une prévisualisation de la fenêtre client, et la prise en charge de raccourcis.vbox sur le bureau).
* Virtual Machine Manager n'est plus limité à une prise en charge de 1,5 ou 2 Go de mémoire vive du côté client sur les hôtes 32-bits.
* Des matériels virtuels supplémentaires sont ajoutés (puces Intel ICH9 et l'Intel HD Audio).
* La prise en charge de l'Open Virtualization Format (OVF) est améliorée.
* Un contrôle plus fin des ressources allouées aux machines virtuelles (en calcul comme en bande passante).
Cette version n'est plus supportée depuis décembre 2015.
Première version : v4.0.0 (22/12/2010)
Dernière version : v4.0.36 (11/11/2015)

#### version 4.1

La version 4.1.0 de VirtualBox, sortie le 19 juillet 2011, améliore le clonage des machines et l'accès à distance. Les modifications les plus importantes sont :
* Prise en charge du clonage des machines virtuelles : le clonage complet peut être effectué à partir de l'interface graphique (GUI) ou en ligne de commande (via VBoxManage). En revanche le clonage lié peut seulement être effectué en ligne de commande (via VBoxManage).
* GUI : amélioration de l'aide intuitive pour la création de nouveaux disques virtuels.
* GUI : nouvelle aide intuitive pour la copie des disques virtuels.
* GUI : conserve le rapport largeur/longueur (ratio) dans le mode "scale" (Hôtes Windows et OSX seulement).
* VMM : augmentation de la taille limite de la mémoire à 1TO pour les hôtes 64-bit.
* Prise en charge expérimentale du "PCI passthrough" pour les hôtes Linux.
* Invités Windows : prise en charge expérimentale des pilotes graphiques WDDM, supportant Windows Aero et prise en charge de Direct3D en utilisant une approche propre (Pas besoin d'installer en plus les pilotes des invités en mode "Safe").
* Guest Additions : le statut et les caractéristiques des modules peuvent désormais être appelés séparément à partir de l'interface.
* Réseau : nouveau "pilote générique" comme mode de raccordement réseau, qui permet d'offrir une architecte ouverte aux plug-ins (pour les implémentations des réseaux virtuels distribuables) de manière arbitraire et séparée.
* Réseau "Hôte seulement" : correction du plantage de l'hôte dans les noyaux inférieurs à la v2.6.29.
* Nouveau mode réseau "Tunnel UDP" : permet d'interconnecter des machines virtuelles qui tournent à partir de différents hôtes facilement et de manière transparente.
* Prise en charge expérimentale de la connexion à chaud pour les disques durs SATA (disponible via VBoxManage).
* Hôtes Solaris : nouveau pilote de réseau en pont basé sur le "Crossbow" pour Solaris 11 build 159 et supérieur.
Cette version n'est plus supportée depuis décembre 2015.
Première version : v4.1.0 (19/07/2011)
Dernière version : v4.1.44 (11/11/2015)

#### version 4.2

La version 4.2.0 de Virtualbox, sortie le 13 septembre 2012, permet de faire des groupes de machines, le démarrage automatique de machines au lancement de la machine hôte, ajoute un glisser-déposer avec les invités sous Linux. Liste des principales améliorations et nouveautés en détail :
* Amélioration de la prise en charge de Windows 8, et en particulier de la correction de plusieurs points relatifs à la 3D.
* GUI : groupement des machines virtuelles.
* GUI : mode expert pour les aides intuitives.
* GUI : permet de modifier certains paramètres pendant l'exécution.
* Prise en charge jusqu'à 36 cartes réseaux, en combinaison avec une configuration du Chipset ICH9.
* Contrôle des ressources : ajout de la limitation de la bande passante du flux de données des réseaux.
* Ajout de la possibilité de démarrer les machines virtuelles automatiquement lors du démarrage de l'hôte (sous Linux, OS X et Solaris).
* Ajout expérimental du "glisser/déposer" de l'hôte vers invités Linux. Le support d'invités supplémentaires et du "glisser/déposer" de l'invité vers l'hôte est planifié.
* Ajout de la prise en charge du "parallel port passthrough" sur les hôtes Windows.
* Amélioration des API pour le contrôle de l'invité.
Cette version n'est plus supportée depuis décembre 2015.
Première version : v4.2.0 (07/09/2012)
Dernière version : v4.2.36 (11/11/2015)

#### version 4.3

La version 4.3.0 de Virtualbox, sortie le 15 octobre 2013, inclut les nouvelles fonctionnalités suivantes :
* VMM : réécriture majeure du code pour le VT-x et l'AMD-V incluant la résolution de nombreux bugs et l'amélioration des performances.
* VMM : introduction d'un interpréteur d'instruction léger pour les situations non traitées par la virtualisation matérielle.
* GUI : mécanisme de gestion des messages étendu (nouvelles fenêtres "popup" non modales utilisées pour afficher des avertissements non critiques et de nouvelles informations à l'utilisateur).
* GUI : gestion des raccourcis clavier (la section des entrées des "préférences globales" est étendue avec la possibilité d'éditer les raccourcis clavier généraux pour la gestion de VirtualBox et des machines virtuelles).
* GUI : prise en charge de la capture vidéo (bug #4766).
* Ajout de l'émulation d'appareils tactiles.
* Ajout expérimental de la prise en charge de webcam (qui complète la liste actuelle des périphériques USB supportés).
* Ajout de l'émulation de lecteur CD-ROM SCSI (incluant le démarrage à partir d'un CDROM).
* VRDP : prise en charge de l'IPv6.
* Contrôle de l'invité : les sessions Invité peuvent maintenant s'exécuter dans des processus de session dédiés (nécessite au moins la version 4.3 des "Guest Additions").
* Contrôle de l'invité : prise en charge de l'interface implémentée IGuestFile.
* NAT : mode routeur virtuel (expérimental) : plusieurs VMs sont présentes sur le même réseau interne et partagent un service NAT.
Cette version n'est plus supportée depuis décembre 2015.
Première version : v4.3.0 (15/10/2013)
Dernière version : v4.3.40 (22/08/2016)

### Versions 5.x
#### Version 5.0

La version 5.0.0 de VirtualBox est sortie le 8 septembre 2015, elle inclut les nouvelles fonctionnalités suivantes :
* La prise en charge de la para-virtualisation pour les clients Windows et Linux afin d'améliorer la précision et la performance du comptage du temps.
* Augmente le nombre d'extensions de jeux d'instructions disponibles pour le client lors de l'exécution avec la virtualisation "hardware-assisted" et "nested paging". Ce qui inclut entre autres SSE 4.1, SSE4.2, AVX, AVX-2, AES-NI, POPCNT, rdrand et RDSEED.
* Contrôleur xHCI pour la prise en charge des périphériques USB 3.
* Le « glisser-déposer » est maintenant bidirectionnel pour les invités Windows, Linux et Solaris.
* Le chiffrement des images de disque.
* Les machines virtuelles peuvent maintenant être démarrées en mode séparé. Le processus principal de la VM est démarré en tâche de fond tandis que l'interface visuelle fonctionne comme un processus séparé qui peut être stoppé sans pour autant arrêter la machine virtuelle.
* GUI : support de la mise à l'échelle pour le "guest-content" de la VM (y compris l'accélération 3D).
* GUI : nouvelle page de paramètres de l'interface utilisateur pour la personnalisation de la barre d'état, la barre des menus et la mise à l'échelle du "guest-content".
* GUI : nouvel onglet des paramètres de chiffrement pour la personnalisation des options de chiffrement pour les images de disque.
* GUI : support du HiDPI incluant les icônes d'applications et la sortie HiDPI "unscaled" optionnelle sur Mac OS X (y compris l'accélération 3D).
* GUI : prise en charge du branchement à chaud pour les disques durs SATA.
* Nouvelle architecture audio modulaire, pour fournir une meilleure abstraction des "backends" audio de l'hôte.
* Support du framework réseau NDIS6 pour Windows (par défaut sur Vista et les versions ultérieures).
Cette version n'est plus supportée depuis mai 2017.
Première version : v5.0.0, 09/07/2015
Dernière version : v5.0.40 (28/04/2017)

#### Version 5.1

La version 5.1.0 de VirtualBox est sortie le 12 juillet 2016, elle inclut les nouvelles fonctionnalités suivantes :
* VMM : nouvelle Implémentation du contrôleur d'interruption APIC et I/O APIC qui permet d'améliorer les performances de manière significative dans certaines situations.
* VMM : ajout du support du débogage para-virtualisé d'Hyper-V pour les clients Windows.
* VMM : améliore l'émulation du mappage MMIO et des "shadow pagetable exits" sans avoir à revenir en mode utilisateur.
* GUI : migration globale vers Qt5.
* GUI : l'API "passive" des écouteurs d'événements améliore les performances et le temps de réponse de l'interface graphique de la machine virtuelle.
* Audio : ajout du support du HDA (High Definition Audio) pour les nouveaux clients Linux.
* Audio : ajout des "on-demand timers" qui devraient améliorer les performances globales et réduire la consommation du CPU.
* Audio : réglage plus fin du contrôle du volume pour l'émulation AC'97, qui prend maintenant en compte le contrôle du volume général.
* Amélioration du support pour Python 3.
Cette version n'est plus supportée depuis avril 2018.
Première version : v5.1.0 (12/07/2016)
Dernière version : v5.1.38 (09/05/2018)

#### Version 5.2

La version 5.2.0 de VirtualBox est sortie le 18 octobre 2017, elle inclut les nouvelles fonctionnalités suivantes :
* Export des VM vers "Oracle Cloud" (OPC).
* Installation en "arrière plan" des invités.
* Révision de l'interface de sélection des VM (Amélioration des outils / Gestion des outils globaux, nouvelles icônes).
* Ajout du support de l'audio lors des enregistrements vidéos (expérimental).
Première version : v5.2.0 (18/10/2017)
Dernière version : v5.2.42 (14/05/2020) MAJ le 10/06/2020.

### Versions 6.x
#### Version 6.0

La version 6.0.0 de VirtualBox est sortie le 18 décembre 2018, elle inclut les nouvelles fonctionnalités suivantes :
* Infrastructure Cloud Oracle pour l'export des VM.
* Virtualisation imbriquée (compatible uniquement avec les processeurs AMD).
* Déplacement des machines virtuelles (VM) ou des images disques vers un nouvel emplacement.
* Amélioration de l'import/export des machines au format OVF/OVA.
* Amélioration du clonage des machines virtuelles.
* Amélioration de l'interface utilisateur.
* Gestionnaire de contrôle des fichiers pour les invités. (transfert de fichiers entre l'hôte et l'invité).
* Amélioration de l'affichage pour les graphismes en 3D.
* Montage "FUSE" des images disque virtuelles (pour les hôtes Mac OS X et en ligne de commande).
* Amélioration de l'intégration avec Microsoft Hyper-V.
Première version : v6.0.0 (10/12/2019)
Dernière version : v6.0.22 (15/05/2020) MAJ le 10/06/2020.

#### Version 6.1

La version 6.1 de VirtualBox est sortie le 10 décembre 2019. Elle inclut les nouvelles fonctionnalités suivantes :
* Infrastructure pour l'import des VM depuis Oracle Cloud.
* Prise en charge étendue de l'export d'une VM vers Oracle Cloud.
* Prise en charge de la virtualisation matérielle imbriquée sur les processeurs Intel.
* Mise en place d'un support expérimental pour les transferts de fichiers via un presse-papiers partagé.
Première version : v6.1.0 (18/12/2018)

### Versions 7.x
#### Version 7.0

La version 7.0 de VirtualBox est sortie le 10 octobre 2022 :
* Les machines virtuelles peuvent désormais être entièrement chiffrées

## Galerie

* VirtualBox Manager - Écran d'accueil
* Liste des machines virtuelles
* Paramètres Système d'une machine Virtuelle
* Création d'une VM - Etape de Paramétrage d'un disque virtuel