====== L'Hyperviseur Oracle VM VirualBox ====== **Logo** de **Oracle VM VirualBox** : {{ :wiki:virtualisation_et_emulation:virtualbox_2024_logo.png?nolink&160 |}} {{ :wiki:virtualisation_et_emulation:virtualbox_logo.png?linkonly |Ancien Logo}} ===== Présentation de VirtualBox ===== **Oracle VirtualBox** (souvent appelé simplement **VirtualBox**) a été créé à l'origine par **InnoTek**, le 17 janvier 2007 sous le nom de **VirtualBox**, puis a été racheté par **Sun Microsystems** en février 2008, qui l'a renommé **Sun VirtualBox**, suite à l' acquisition de **Sun Microsystems** par **Oracle Corporation** en janvier 2010, **Sun VirtualBox** a été renommé **Oracle VirtualBox** (son nom complet est **Oracle VM VirtualBox**). **VirtualBox** est un **hyperviseur** de ''type 2'' (**hyperviseur hébergé**) qui dépend d'un **système d'exploitation** (**OS**) sur l'**ordinateur hôte** sur lequel on installe l'**hyperviseur**, comme un simple **logiciel**. Cet **hyperviseur** permet de **virtualiser** des **OS** à **architecture** de **processeur** **x86** comme l'**Intel x86_64/x86** ou **AMD** ''64 bits'' ou ''32 bits''. Depuis déjà un certain temps, il ne peut être installer uniquement sur un **OS** ''64 bits'' (**amd64** ou **x86_64**), les **processeurs** de tous les **PC** actuels. **VirtualBox** peut-être installé sur un nombre assez impressionnant d'**OS**, tel que **Linux**, **Windows**, **macOS**, **Oracle Solaris** et les **distros** **illumos** (genre **OpenIndiana**) et **FreeBSD**, il permet d'exécuter un large éventail d'**OS** ''invité'' tel que **Linux**, **Windows**, **macOS**, **Oracle Solaris** et ses **dérivés**, le **BSD**,... Comme tous les **hyperviseurs** il utilise les **ressources** de l'**ordinateur hôte**, **CPU**, **RAM**, **GPU**..., pour la **virtualisation**. La dernière version de **VirtualBox** est **Oracle VM VirtualBox 7.1.4** sortie le 15 octobre 2024. **VirtualBox** est certainement l'**hyperviseur** le plus utilisé par les ''particuliers'' et le plus ''populaire''. L'**hyperviseur** de base est sous **licence libre** **GNU GPLv3** mais le **Pack d'extensions** est sous **licence propriétaire**, **licence PUEL** plus précisément. Si vous débutez dans le **monde de la virtualisation** je vous suggère de vous orienter vers cet **hyperviseur** qui est accessible pour tous les **OS** ''populaires'' et relatvement facile à ''installer'' et ''configurer''. ==== Sites en Rapport à VirtualBox ==== === Site Officiel (en anglais) === * [[https://www.virtualbox.org/|Site Officiel VirtualBox]] * [[https://www.virtualbox.org/wiki/Downloads|Téléchargement]] * [[https://www.virtualbox.org/wiki/Documentation|Documentation]] * [[https://www.virtualbox.org/wiki/Community|Communauté]] Dans le section **Download**, je vous conseille fortement de télécharger et d'installer le **paquet** nommé **VirtualBox Extension Pack** qui permet d'avoir toutes les ''fonctionnalités'' de l'**hyperviseur** ! ===== Spécificités de VirtualBox ===== **VirtualBox** est relativement facile à installer sur chaque **OS** sur lequel il est disponible, sous **FreeBSD** vous ne trouverez pas de lien sur le **site** ''officiel'' mais vous avez la possibilité de l'installer directement par les **dépôts** **FreeBSD** avec le **gestionnaire de paquet** et sa **commande** **pkg**, pour l'installer en **root** via la **console**: ''pkg install virtualbox-ose virtualbox-ose-additions'', évidement il vous faut une **interface utilisateur graphique**. Par défaut, vous pouvez installer les **OS** : **Windows** (de **Windows 95** à **Windows 11**, vous pouvez également installer les version **Server**), **Linux** (toutes **distributions** confondues), **Solaris** (**Solaris 10** à **Solaris 11**) **distributions illumos** comme **OpenIndiana** et bien d'autres), les différents **BSD** (**FreeBSD**, **GhostBSD**, **NetBSD**, **OpenBSD** et plus encore), **IBM OS/2** (**OS/2 1.x**, **OS/2 Warp 3**, **OS/2 Warp 4**, **OS/2 Warp 4.5**, **eComStation**, **ArcaOS** et autres **OS/2**), **macOS** (**Mac OS X 10.6** à **macOS High Sierra**), les **DOS** (**MS-DOS**, **DR-DOS**, **FreeDOS**,...), **Netware**, **OS** basé sur **noyau L4**, **QNX**, **JRockitVE**,... En réalité cette liste est loin d'être ''exaustive'', il y moyen d'installer bien plus d'**OS** avec des **configurations** bien spécifiques. Pour installer un **OS** il suffit de le télécharger en **fichier** ''.iso'' ou ''.ISO'' ou des **images** de **disquette** (**floppy**) comme ''.img'', ''.dsk'', pour les vieux **OS**. Il y a également d'autres méthodes d'installation que les **fichiers** ''.iso'' cela sera traiter dans les [[wiki:virtualisation_et_emulation:virtualbox:tutoriels_sur_virtualbox|Tutos]]. **VirtualBox** intègre les ''fonctionnalités'' suivantes : * **Accélération matérielle** : **technologie** des **processeurs** **Intel** et **AMD** (**Intel VT-x** et **AMD-V**). * Support de **SMP** (**//Symmetric Multiprocessing//**, **multiprocesseur symétrique** en français). * **Pass-through matériel** : qui donne un accès direct au **matériel** de l'**hôte** comme les **ports USB**, les **disques durs** ou **les cartes réseau**. * Intégration entre l'**hôte** et l'**invité** : * Les **répertoires** et **fichiers** partagés entre l'**hôte** et l'**invité**. * Le **partage du presse-papiers** entre l'**hôte** et l'**invité**. * Un **transfert de fichiers** facilité entre l'**hôte** et l'**invité**. * Possibilité d'insérer des **périphériques USB** comme une **clé USB**, **dongle Wi-Fi** ou autres. * **Réseau** : connexion **réseau** à **internet** via **NAT** (**//Network Address Translation//**), **pont réseau** (**bridge**) ou via votre **réseau loacal** directement. * L' ''amorçage'' **PXE** (**//Pre-boot eXecution Environment//**) qui permet d'installer un **OS** via le **réseau**. * Vous avez la possibilité de faire des **snapshots** (**sauvegarde à un instant donné**) pour pouvoir réstaurer votre **OS** ''invité'' à un instant T. * Il est possible de **cloner** n'importe quelles **machines virtuelles**. * Dans le **menu** ''Fichier'' de l'**interface graphique** de **VirtualBox** il y a : * L'option ''Paramètres''. * L'option ''Importer''ou ''Exporter un appareil virtuel'' (**machine virtuelle**) via un **fichier** ''.ova'' propre à **VirtualBox** qui contient tout sur la **machine virtuelle**, y compris la **configuration** de celle-ci. Une façon simplifier d'installer un **OS** ''pré-configuré''. * L'option ''Outils''. * ''Rechercher des mises à jour'' * ''Réinitialiser tous les avertissements'' * et ''Quit'' pour cloturer la fenêtre de **VirtualBox** (quitter le **logiciel**). Côté **matériels**, vous avez par défaut le **matériel virtuel** suivant : * Les **disques de stockage** au **format** ''.vdi'' (propre à **VirtualBox**) mais vous pouvez utiliser les ''.vmdk'' de **VMware**, les ''.qcow2'' de **QEMU/KVM**, les ''.vhd'' de **Hyper-V** de **Microsoft**, les ''.img'' et j'en passe, que vous pouvez **chiffrer**. * **carte mère** avec **chipset** **PIIX3**, **ICH9**. * **périphérique de pointage** comme : **souris** de type **PS/2**, **tablette USB**, **USB MT TouchScreen and TouchPad**. * Les **cartes son** basés sur les **chipsets** de modèle **SoundBlaster 16**, **ICH AC97** et **Intel Audio HD**. * Les **cartes réseau** de modèle **AMD PCnet** (**PCnet-PCI**, **PCnet-PCI II**, **PCnet-Fast**), **Intel EtherExpress PRO/100 (82556)**, **Intel EtherExpress PRO/100B (82557)** et **EtherExpress PRO/100+ (82558, 82559)**. * Possiblité d'activer les **ports séries** de type **RS-232** et les **ports parallèles**. * Les **contrôleurs USB** de type **USB 1.1** (**OHCI**), **USB 2.0** (**OHCI** et **EHCI**), **USB 3.0** (**xHCI**). Les possibilités de **configuration** d'une **VM** (**machine virtuelle**) sont : * **Général** : * Activer ou désactiver le **partage du presse-papiers** et l'option **glisser-déposer** entre l'**hôte** et l'**invité**. * Donner une ''description'' à votre **OS**. * Activer le **chiffrement cryptographique** du ou des **disques**. * **Système** : * Le réglages de la **mémoire vive** (**RAM**) de l'**OS** ''invité''. * L'ordre d'**amorçage** des **supports d'installation** (**disquette**, **CD/DVD** via **image** ''.iso'', par le **réseau**). * La **configuration** du **chipset** de la **carte mère** comme **PIIX3** et **ICH9**. * Le choix du **module** **TPM** (**//Trusted Platform Module//**). * Le **réglage** du **système de pointage** : **Souris PS/2**, **Tablette USB** et **USB MT TouchScreen and TouchPad**. * Dans les **fonctions** avancées vous pouvez activer ou désactiver les **IO-APIC**, l'**horloge matérielle** en heure **UTC** (**//Coordinated Universal Time//**), activer le mode **UEFI** et le **Secure Boot**. * En ce qui concerne le **processeur**, le nombre de **coeur** (**core** en anglais) et le pourçentage de **ressources** que vous souhaitez alloués au **CPU** et activer **PAE/NX** pour les **OS** ''32 bits'' compatible. * Vous avez la possibilité de choisir parmi les **hyperviseurs** installés sur votre **ordinateur**, comme l'**hyperviseur** par défaut, **Hyper-V** et **KVM**. * **Affichage** : * Régler la **mémoire vive** **vidéo** que vous souhaitez allouée en **MB** (**mégabyte**). * Régler le nombre d'**écran**. * Régler la mise à l'échelle du GPU en pourçentage via **Scale Factor**. * Régler le **contrôleur graphique** (**VGA**, **SVGA**). * Activer le **serveur** de **bureau à distance**. * Activer l'**enregistreur vidéo** ou **audio** intégré à **VirtualBox** * **Stockage** : * Vous pouvez **paramètrer** des **contrôleur de stockage** de type **IDE**, **SATA**, **SCSI**. * Les **périphériques de stockage** ''virtuels'' disponibles sont : les **disquettes** (**floppy**), les **disques durs** de type : (**IDE**, **SATA** et **SCSI**), les **CD/DVD** au format **ISO**, les **disques** à **mémoire flash** avec **technologie** **PCIe** tel que **NVMe**, le **pilote** de **KVM** (**virtio-scsi**). * **Son** : * Vous avez la possibilité de choisir le ou les **pilotes audio** disponibles sur votre **ordinateur hôte** comme **ALSA**, **OSS**, **AC97**,... * Vous pouvez également choisir le **contrôleur audio** comme **SoundBlaster 16**, **ICH AC97** et **Intel Audio HD**. * Dans les ''fonctions'' avancées vous pouvez activer et désactiver la **sortie** et l'**entrée** **audio**. * **Réseau** : * Il vous est possible d' activer ''quatre'' **cartes réseau** sur votre **OS** ''virtualisé''. * Vous pouvez vous connecter à **Internet** ou à un **réseau** via **NAT**, par **pont réseau** (**bridge**), avec votre **réseau local**,... * **Ports séries** : * on peut activer jusqu'à ''4'' **ports séries** avec **VirtualBox**. * **USB** : * La possibilité d'activer un **contrôleur USB**. * Régler le **contrôleur USB** comme **USB 1.1**, **USB 2.0**, **USB 3.0**. * **Dossiers partagés** : * Possibilité d'ajouter n'importe quel **dossiers** (**répertoire**) de votre **OS** ''hôte''. * **Interface utilisateur** : * C'est à cette endroit que vous pouvez modifier se qui s'affiche dans l'**interface graphique** de **VirtualBox**. Sachez qu'il est tout à fait possible de contrôler **VirtualBox** via une **interface** en **ligne de commande** nommé **VBoxManage** et sa **comande** du même nom **vboxmanage** permettant d'avoir davantage de ''fonctionnalités'' mais plus austère pour un **utilisateur** ''novice'' que l'**interface graphique** (en tous cas sous **Windows** car pas de **commande** **man** mais vous pouvez tout de même entrer cette **commande** ''vboxmanage --help'' via votre **terminal** **Windows**). Pour exécuter cette **commande** sous **Windows**, vous pouvez utiliser l'**émulateur de terminal** ou plus simple **terminal** du nom de **Terminal Windows** mais aussi **ConEmu** dispo [[https://conemu.github.io/en/Downloads.html|ici]], **Cmder** un **fork** amélioré de **ConEmu** ou l'**invite de commande** par défaut (**cmd.exe**) mais **CMD** est très rudimentaire. Sous **Linux**, il y a pléthore d'**émulateurs de terminal** (**GNOME Terminal**, **Konsole** de **KDE**, **LXTerminal**,...). ===== Documentation Complémentaire sur VirtualBox ===== Les [[wiki:virtualisation_et_emulation:virtualbox:tutoriels sur VirtualBox]], documentation supplémentaire.