Cours théoriques
Machine virtuelle pour le cours INFOH304
Qu'est-ce qu'une machine virtuelle?
Une machine virtuelle est une simulation (ou plus exactement une émulation) d'un ordinateur par un autre ordinateur. En installant par exemple Linux sur une machine virtuelle émulée par votre ordinateur Windows, vous pourrez alors accéder à un système Linux dans une fenêtre du système Windows. Dans ce cas, la machine virtuelle Linux est appelée "invitée" (guest), et la machine réelle Windows "hôte" (host).
Pourquoi une machine virtuelle?
Une fois installée sur votre ordinateur, vous pourrez utiliser la machine virtuelle:
- aux cours théoriques: pour directement tester des bouts de code
- aux travaux pratiques: pour effectuer les exercices sur votre propre ordinateur plutôt que sur les machines de la salle
- à la maison: pour réviser les exercices et éventuellement préparer votre projet
L'avantage d'une machine virtuelle est que quel que soit le système installé sur votre ordinateur, vous vous retrouverez tous avec la même configuration, ce qui facilite le support technique.
Un désavantage est que cela occupe de l'espace disque et peut ralentir l'ordinateur vu qu'il doit exécuter deux systèmes d'exploitation en même temps. La machine virtuelle a été conçue pour rester légère et donc fonctionnelle sur tout ordinateur qui ne soit pas trop ancien, mais si vous préférez néanmoins vous en passer, vous trouverez des instructions pour installer le compilateur gcc directement sur votre ordinateur en bas de cette page.
Installation de la machine virtuelle
- Assurez-vous d'avoir au moins 10Go de libre sur votre disque dur
- Téléchargez et installez l'outil de virtualisation VirtualBox, ainsi que le VirtualBox Extension Pack disponible à la même adresse:
- VirtualBox (Windows/Mac/Linux)
- Remarque: La machine virtuelle est configurée pour la version 6.1.26, si vous installez une version différente vous devrez réinstaller les "Additions Invité" (voir plus bas) pour profiter de toutes les fonctionnalités
- Téléchargez l'image de la machine virtuelle
- padi-vm.ova ou padi-vm.ova (lien alternatif)
- Empreinte MD5 (pour vérifier l'intégrité du fichier, voir plus bas)
ec9f53d74f0c266e32750f426677e82a
- Double-cliquez sur le fichier "padi-vm.ova" pour l'ouvrir avec VirtualBox
- Cliquez sur "Importer" et attendez quelques minutes que l'importation se termine
- Dans la fenêtre "Oracle VM VirtualBox", cliquez sur "Démarrer" pour faire démarrer votre nouvelle machine virtuelle (nommée "padi-vm").
- Si la machine virtuelle vous demande un mot de passe pour vous connecter, les identifiants sont les suivants:
- Nom d'utilisateur: student
- Mot de passe: ulb
- Vous pouvez maintenant supprimer le fichier "padi-vm.ova" si vous désirez récupérer 2,5Go d'espace disque.
Problèmes fréquents
J'obtiens une erreur quand j'essaye d'installer la machine virtuelle ou de la lancer
- Vérifiez que vous avez bien installé le VirtualBox Extension Pack disponible à la même adresse que le programme lui-même:
- VirtualBox (Windows/Mac/Linux)
- Une fois le fichier téléchargé (extension .vbox-extpack), il suffit de double-cliquer dessus pour l'installer dans VirtualBox.
- Vérifiez qu'il n'y a pas une option "Virtualization" de désactivée dans le BIOS de votre ordinateur. Pour accéder au BIOS:
- Redémarrer l'ordinateur et appuyer sur la touche indiquée à l'écran dès qu'il s'allume (souvent F2, F10 ou "suppr")
- Sous Windows 10, vous pouvez également accéder au BIOS via "Démarrer → Paramètres → Mises à jour et sécurité → Récupération" en cliquant sur le bouton "Redémarrer maintenant" dans la section "Démarrage avancé"
- Si la machine plante au démarrage, voici deux causes fréquentes :
- Il se peut qu'il y ait un conflit entre un pilote de la machine virtuelle et l'hôte. Essayer par exemple de désactiver la carte son de la machine virtuelle en allant dans ses paramètres → onglet "Son" → Décocher la case "Activer le son".
- Le fichier padi-vm.ova a été mal téléchargé et est corrompu. Pour vérifier l'intégrité du fichier, vous pouvez calculer son empreinte MD5 avec la commande "FCIV -md5 padi-vm.ova" (Windows), "md5 padi-vm.ova" (MacOS) ou "md5sum padi-vm.ova" (Linux) et la comparer avec l'empreinte correcte renseignée juste sous les liens plus haut dans cette page. Si les empreintes diffèrent, c'est que le fichier téléchargé est corrompu et qu'il faut le retélécharger.
- Si vous utilisez MacOS (en particulier à partir de la version 10.13 High Sierra) et que vous obtenez un message indiquant "Kernel driver not installed (rc=-1908)"
- Ouvrez les "Préférences Système" (icône engrenage), puis "Sécurité et confidentialité"
- Sous l'onglet "Général", il devrait y avoir un message indiquant qu'un logiciel développé par Oracle America, Inc a été bloqué: cliquez sur "Autoriser"
- Relancez la machine virtuelle depuis VirtualBox
- Attention: le message en question n'apparaît que pendant 30 minutes après la première apparition de cette erreur. Si le message n'apparaît plus, veuillez redémarrer votre machine et réessayer.
La machine virtuelle me demande un identifiant et un mot de passe
Utilisez l'identifiant suivant:
- Identifiant: student
- Mot de passe: ulb
Installation des "Additions Invité"
La machine virtuelle a été configurée pour la dernière version de VirtualBox disponible au début de l'année académique, soit la version 6.1.26. Si vous installez une version différente (ou mettez à jour VirtualBox suite à la parution d'une nouvelle version), vous perdrez certaines options d'intégration entre la machine hôte et la machine invitée (dossiers partagés, copier-coller de texte et glisser-déposer de fichiers d'une machine à l'autre). Pour les récupérer, suivez les instructions suivantes:
- Dans la barre d'outils de VirtualBox, cliquez sur "Périphériques" puis "Insérer l'image CD des Additions Invité"
- Via la fenêtre qui s'ouvre dans la machine virtuelle, autorisez l'exécution automatique en cliquant sur "Valider" puis "Lancer"
- Entrez le mot de passe "ulb"
- Attendez la fin de l'installation et redémarrez la machine virtuelle
J'ai pu installer VirtualBox mais la machine virtuelle plante ou ralentit fortement l'ordinateur
Ces symptômes peuvent survenir si votre ordinateur est relativement ancien et donc pas assez puissant pour faire tourner la machine virtuelle en plus du système d'exploitation de la machine hôte.
La machine virtuelle utilise 1Go de RAM. Mac OS et Windows demandent un minimum de 2Go de RAM pour fonctionner (voire plus pour les dernières versions), donc globalement votre ordinateur devrait disposer d'au moins 3Go pour faire tourner la machine virtuelle en plus du système d'exploitation de la machine hôte, et un peu plus pour éviter des ralentissements excessifs.
Si vous êtes dans ce cas, une solution est de ne pas utiliser VirtualBox mais plutôt d'installer gcc directement dans votre système d'exploitation hôte. Vous trouverez des instructions à cet effet à la fin de cette page.
Je ne sais pas comment transférer des fichiers vers la machine virtuelle
Il y a différentes options:- Le plus simple est d'ouvrir une fenêtre Firefox dans la machine virtuelle pour accéder à l'université virtuelle (des signets ont déjà été créés) et télécharger directement les fichiers dans la machine virtuelle
- Vous pouvez effectuer un "glisser-déposer" d'un fichier depuis une fenêtre de la machine hôte vers une fenêtre de la machine invitée. Attention: suite à un bug il se peut que les fichiers ne se retrouvent pas à l'endroit où vous les avez déposés mais dans le dossier "/tmp/VirtualBox Dropped Files".
- Vous pouvez créer un dossier partagé pour accéder directement à un dossier de la machine hôte depuis la machine invitée (voir ci-dessous)
Mon clavier n'est pas bien configuré
Par défaut, la machine est configurée pour un clavier AZERTY belge. Si votre clavier a une agencement différent des touches, vous pouvez le reconfigurer de la manière suivante:
- Cliquez sur menu en bas à gauche, puis "Paramètres système - Centre de contrôle" (troisième icône du menu à gauche en partant du haut), puis "Clavier" (dans le menu "Matériel"
- Dans l'onglet "Agencements", cliquez sur le "+", sélectionnez l'agencement correspondant à votre clavier et cliquez sur "Ajouter"
- En cliquant en bas à droite de l'écran (à côté de l'heure) sur "be", vous pouvez passer d'un agencement à l'autre
- Si le nouvel agencement est correct, vous pouvez supprimer l'agencement "Belge" pour éviter qu'il ne soit sélectionné
- Certains caractères ne sont pas présents sur un clavier AZERTY Mac, comme les accolades
- Vous pouvez les taper en combinant la touche "alt-option" de droite avec d'autres touches, par exemple "alt-ç" pour "{" (voir ci-dessous pour tous les caractères disponibles)
Divers
Accès aux fichiers de la machine hôte
- Dans la fenêtre "Oracle VM VirtualBox", cliquez sur "Configuration", puis "Dossiers partagés"
- Cliquez sur l'icône "+" à droite
- Dans "Chemin du dossier", choisissez le dossier de la machine hôte que vous voulez partager avec la machine virtuelle
- Cochez les options "Montage automatique" et "Configuration permanente"
- Cliquez sur "OK", puis encore "OK"
Au prochain démarrage de la machine virtuelle, votre dossier partagé sera disponible au chemin "/media/sf_nom_du_dossier" (un lien apparaîtra sur le bureau de la machine virtuelle). Notez que vous pouvez créer plusieurs dossiers partagés via cette méthode.
Accès aux fichiers de votre compte ULB
Méthode automatique
Cette méthode vous reconnecte automatiquement au serveur de fichiers de l'ULB à chaque démarrage de la machine virtuelle.
- Double-cliquez sur le lien "Configuration ULB" sur le bureau de la machine virtuelle
- Entrez votre nom d'utilisateur ULB (la partie avant "@ulb.ac.be" de votre adresse email)
- Entrez votre mot de passe
Le lien "Dossier ULB" créé sur le bureau vous donne alors accès aux fichiers de votre compte ULB (en pratique, celui-ci correspond au chemin "/media/ULB/votre_login_ulb")
Pour changer de compte ULB (en cas de partage de votre machine virtuelle avec un autre étudiant), il suffit de répéter la procédure avec un autre nom d'utilisateur.
Attention: Pour configurer et utiliser l'accès à votre compte ULB, votre ordinateur doit bien-sûr être connecté à internet.
Méthode manuelle
En cas de modification de la configuration du serveur de fichiers de l'ULB, il se peut que la méthode automatique ne fonctionne plus. Dans ce cas, vous pouvez utiliser la méthode manuelle suivante (il faudra réitérer ces étapes à chaque démarrage de la machine virtuelle).
- Cliquez sur Menu → Dossier Personnel → Fichier → Se connecter à un serveur
- Remplissez la boite de dialogue avec les informations suivantes, où USERNAME est votre nom d'utilisateur ULB (la partie avant "@ulb.ac.be" de votre adresse email)
- Serveur: nestor.ulb.ac.be
- type: SSH
- Répertoire: /u/USERNAME
- Nom d'utilisateur: USERNAME
- Mot de passe: votre mot de passe ULB
Eteindre la machine virtuelle
Pour éteindre la machine virtuelle, vous pouvez soit:
- Fermer la fenêtre dans laquelle s'affiche la machine virtuelle, puis choisir "Envoyer le signal d'extinction".
- Cliquer sur Menu (dans la machine virtuelle), puis "Quitter", puis "Eteindre".
Intégration entre la machine hôte et la machine virtuelle
- Vous pouvez transférer des fichiers de la machine hôte vers la machine virtuelle en faisant un "glisser-déposer" avec la souris d'une fenêtre vers l'autre (comme vous le feriez entre deux fenêtres de la machine hôte). Attention: suite à un bug il se peut que les fichiers transférés depuis la machine hôte vers la machine virtuelle ne se retrouvent pas à l'endroit où vous les avez déposés mais dans le dossier "/tmp/VirtualBox Dropped Files".
- Vous pouvez aussi "copier-coller" du texte d'une machine à l'autre, les "presse-papiers" étant synchronisés.
Utilisation avancée
- Dans la machine virtuelle, le dossier ULB correspond au chemin "/media/ULB", et le dossiers partagés de la machine hôte au chemin "/media/sf_nom_du_dossier".
- Le nom d'utilisateur de la machine virtuelle est "student" et le mot de passe "ulb". Cet utilisateur a les droits administrateurs et peut donc utiliser la commande sudo. Ne l'utilisez que si vous savez ce que vous faites!
Alternative: installer gcc directement sur votre ordinateur
Dans certains cas, vous pourriez préférer travailler directement sur votre système plutôt que passer par une machine virtuelle. Cela pourrait être le cas si vous n'avez pas suffisamment d'espace disque, si votre machine est trop peu puissante pour émuler la machine virtuelle sans ralentissement (cela ne devrait arriver que pour des machines assez anciennes), ou tout simplement si vous ne voyez pas l'intérêt de passer par une machine virtuelle.
Notez néanmoins que vu la complexité à gérer un parc d'installations hétérogène, nous ne fournirons du support technique que pour la solution conseillée utilisant la machine virtuelle. Si vous désirez tout de même vous en passer, voici quelques liens pour installer le compilateur gcc, qui est le strict minimum pour pouvoir suivre le cours (la version installée sur la machine virtuelle est gcc 4.9.2, mais toute version relativement récente devrait faire l'affaire).
Windows 10
Les dernières versions de Windows 10 permettent d'installer directement un sous-système Linux Ubuntu dans Windows, et c'est sans doute la solution la plus simple pour obtenir un environnement similaire à la machine virtuelle Linux.
Voici les étapes à suivre (voir ici pour des détails)
- Vérifiez que votre Windows 10 est à jour
- Menu Windows -> Paramètres (icône "Engrenage") -> Système -> Information Système
- Si votre installation est plus ancienne que la version 1607 (juillet 2016), procédez à une mise à jour de Windows
- Installez le sous-système Windows pour Linux
- Lancez l'application PowerShell en tant qu'administateur et tapez la commande suivante dans la console:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart - Ouvrez le Windows Store, cherchez, installez puis lancez "Ubuntu"
- Configurez Ubuntu en suivant les instructions suivantes
- Choisissez un nom d'utilisateur et un mot de passe
- Tapez les commandes suivantes dans le terminal:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential openjdk-8-jdk gnuplot-x11 freeglut3 freeglut3-dev libxmlrpc-c* libboost-dev
echo "export DISPLAY=:0.0" >> ~/.bashrc
- Choisissez un nom d'utilisateur et un mot de passe
- La prochaine fois, vous pouvez lancer Ubuntu via la barre de recherche (icône "Loupe") -> Recherchez "Bash on Ubuntu on Windows"
- Certaines séances nécessitent un serveur X pour afficher des fenêtre graphiques. Une solution est d'installer Xming
A partir de maintenant, vous pouvez utiliser gcc directement dans ce terminal. Notez que votre dossier personnel Windows se trouve au chemin suivant: /mnt/c/Users/"Votre nom d'utilisateur Windows"
Pour éditer vos fichiers de code, vous pouvez installer Geany, le même programme qui est fourni avec la machine virtuelle: Geany for Windows
Veuillez néanmoins noter que la version Windows n'inclut pas de terminal, vous devez donc toujours passer par "Bash on Ubuntu on Windows" pour compiler et exécuter votre programme.
Autres versions de Windows
Les solutions suivantes permettent d'installer gcc sur toute version de Windows:Mac OS
- Xcode Command Line Tools (OS X >=10.9 "Mavericks")
- Xcode complet (OS X <=10.8, nécessite ensuite d'installer les "command line tools")
- Macports (installer le port gcc49)
Pour éditer vos fichiers de code, vous pouvez installer Geany, le même programme qui est fourni avec la machine virtuelle: Geany for Mac OS
Linux
- Toutes les distributions proposent des paquets contenant gcc.
- Pour les dérivés de Ubuntu, vous pouvez installer les paquets suivants:
- build-essential geany libvte9 openjdk-8-jdk gnuplot-x11 freeglut3 freeglut3-dev libxmlrpc-c* libboost-dev git