Journal
Ce journal contient 4 entrées.
Réinitialiser les vbox guest additions sous linux mint
De nombreuses distributions linux embarquent désormais les vbox guest additions directement dans leurs dépôts de paquets. Dans ce cas, il est déconseillé d'installer soi-même les vbox guest additions (de l'aveu même du script d'installation).
Cependant, comme je suis curieux, j'ai tenté l'installation quand même et planté complètement mon système (Linux Mint) : copier-coller hôte-invité impossible, résolution figée, accélération 3D désactivée, etc.
Voilà la méthode que j'ai utilisé pour réparer tout ça (privilèges root requis).
1. On nettoie et on réinstalle
> apt-get autoremove --purge virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
> apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
2. On force la reconfiguration
> dpkg-reconfigure virtualbox-guest-dkms
3. On redémarre ou on recharge simplement les modules concernés
> modprobe -a vboxguest vboxsf vboxvideo

Cependant, comme je suis curieux, j'ai tenté l'installation quand même et planté complètement mon système (Linux Mint) : copier-coller hôte-invité impossible, résolution figée, accélération 3D désactivée, etc.
Voilà la méthode que j'ai utilisé pour réparer tout ça (privilèges root requis).
1. On nettoie et on réinstalle
> apt-get autoremove --purge virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
> apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
2. On force la reconfiguration
> dpkg-reconfigure virtualbox-guest-dkms
3. On redémarre ou on recharge simplement les modules concernés
> modprobe -a vboxguest vboxsf vboxvideo
Réseau interne sous VirtualBox
VirtualBox permet de créer différent types de réseaux pour vos VM :
- NAT : la VM communique avec l'extérieur grâce à un mécanisme de NAT (network address translation). Depuis l'extérieur, les requêtes de la VM ont l'air d'être envoyées par la machine hôte.
- Bridged : la VM est considérée comme une machine à part entière sur le LAN, elle pourra obtenir son IP directement à partir d'un serveur DHCP accessible depuis le LAN.
- Internal Network : la VM est isolée (ne peut pas communiquer avec l'hôte), mais peut communiquer avec les autres VM de l'hôte.
Le mode Internal Network est celui qui m'intèresse ici. Pour le mettre en place (VirtualBox 5.0.10), il faut :
0. Arrêter vos VMs ;)
1. Pour chaque VM, passer l'interface réseau virtuelle en mode Internal Network et, éventuellement, donner un nom de réseau (par défaut: intnet).
2. Soit configurer les VM avec une IP statique (dépend de l'OS virtuel, bien sur), soit demander à VirtualBox de mettre en place un DHCP pour le réseau interne. La mise en place d'un DHCP ne peut se faire qu'avec une commande :
> VBoxManage dhcpserver add --netname <nom du réseau> --ip <ip du DHCP> --netmask <masque> --lowerip <borne inférieure de la plage d'IP> --upperip <borne supérieure de la plage d'IP> --enable
Par exemple :
> VBoxManage dhcpserver add --netname intnet --ip 10.10.10.254 --netmask 255.255.255.0 --lowerip 10.10.10.1 --upperip 10.10.10.100 --enable
Note : il se peut que la VM n'arrive pas à récupérer une IP depuis le DHCP de VirtualBox. Ce problème se résoud en changeant l'adresse MAC de l'interface réseau virtuelle, forçant l'OS virtuel à râfraichir ses configurations réseaux.

- NAT : la VM communique avec l'extérieur grâce à un mécanisme de NAT (network address translation). Depuis l'extérieur, les requêtes de la VM ont l'air d'être envoyées par la machine hôte.
- Bridged : la VM est considérée comme une machine à part entière sur le LAN, elle pourra obtenir son IP directement à partir d'un serveur DHCP accessible depuis le LAN.
- Internal Network : la VM est isolée (ne peut pas communiquer avec l'hôte), mais peut communiquer avec les autres VM de l'hôte.
Le mode Internal Network est celui qui m'intèresse ici. Pour le mettre en place (VirtualBox 5.0.10), il faut :
0. Arrêter vos VMs ;)
1. Pour chaque VM, passer l'interface réseau virtuelle en mode Internal Network et, éventuellement, donner un nom de réseau (par défaut: intnet).
2. Soit configurer les VM avec une IP statique (dépend de l'OS virtuel, bien sur), soit demander à VirtualBox de mettre en place un DHCP pour le réseau interne. La mise en place d'un DHCP ne peut se faire qu'avec une commande :
> VBoxManage dhcpserver add --netname <nom du réseau> --ip <ip du DHCP> --netmask <masque> --lowerip <borne inférieure de la plage d'IP> --upperip <borne supérieure de la plage d'IP> --enable
Par exemple :
> VBoxManage dhcpserver add --netname intnet --ip 10.10.10.254 --netmask 255.255.255.0 --lowerip 10.10.10.1 --upperip 10.10.10.100 --enable
Note : il se peut que la VM n'arrive pas à récupérer une IP depuis le DHCP de VirtualBox. Ce problème se résoud en changeant l'adresse MAC de l'interface réseau virtuelle, forçant l'OS virtuel à râfraichir ses configurations réseaux.
8086tiny: A tiny PC emulator/virtual machine
Une machine virtuelle IBM-compatible 8086 de moins de 20Ko, qui peut tourner sous n'importe quelle architecture Intel 32-bit/64-bit (Windows, Mac OS X et Linux), Nexus 4/ARM (Android), iPad 3 et iPhone 5S (iOS), et Raspberry Pi (Linux).
Elle émule un clavier, un lecteur de disquette, un disque dur et une carte vidéo Hercules.
Au delà de l'exploit technique et de la fidélité quant à l'architecture originale (certaines fonctionnalités/comportements non documentés ont été implémentés), c'est vraiment un outil génial pour découvrir l'architecture des ordinateurs.

Elle émule un clavier, un lecteur de disquette, un disque dur et une carte vidéo Hercules.
Au delà de l'exploit technique et de la fidélité quant à l'architecture originale (certaines fonctionnalités/comportements non documentés ont été implémentés), c'est vraiment un outil génial pour découvrir l'architecture des ordinateurs.
LLVM - Low Level Virtual Machine
J'aime beaucoup l'idée derrière LLVM (Low Level Virtual Machine). Il s'agit d'une boîte à outils pour la création de compilateurs, et qui repose, notamment, sur un langage intermédiaire (LLVM IR), un peu comme le bytecode Java ou le CIL de .NET. Les outils de LLVM sont capables d'effectuer des optimisations très sophistiqués sur ce langage intermédiaire et peuvent ensuite le transformer en code machine, comme le ferait un compilateur à la volée (Just-In-Time compiler).
Tout l'intérêt réside dans l'existence de bridge qui transforment des langages comme le C, le C++ ou encore l'Objective-C en code LLVM (des briges pour le bytecode Java et le CIL .NET sont en cours de développement).
Ainsi, d'un langage quelconque (si le bridge existe), on obtient du code LLVM qui (i) va pouvoir bénéficier des optimisations spécifiques à LLVM IR, (ii) va pouvoir être transformé en code machine pour de nombreuses architectures.

Tout l'intérêt réside dans l'existence de bridge qui transforment des langages comme le C, le C++ ou encore l'Objective-C en code LLVM (des briges pour le bytecode Java et le CIL .NET sont en cours de développement).
Ainsi, d'un langage quelconque (si le bridge existe), on obtient du code LLVM qui (i) va pouvoir bénéficier des optimisations spécifiques à LLVM IR, (ii) va pouvoir être transformé en code machine pour de nombreuses architectures.
Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.