X86 virtualizationx86 virtualization is the use of hardware-assisted virtualization capabilities on an x86/x86-64 CPU. In the late 1990s x86 virtualization was achieved by complex software techniques, necessary to compensate for the processor's lack of hardware-assisted virtualization capabilities while attaining reasonable performance. In 2005 and 2006, both Intel (VT-x) and AMD (AMD-V) introduced limited hardware virtualization support that allowed simpler virtualization software but offered very few speed benefits.
Machine virtuellethumb|Machine virtuelle des assistants personnels Palm. En informatique, une machine virtuelle (anglais virtual machine, abr. VM) est d'un appareil informatique créée par un logiciel d'émulation ou instanciée sur un hyperviseur. Le logiciel d'émulation simule la présence de ressources matérielles et logicielles telles que la mémoire, le processeur, le disque dur, voire le système d'exploitation et les pilotes, permettant d'exécuter des programmes dans les mêmes conditions que celles de la machine simulée.
X86La famille x86 regroupe les microprocesseurs compatibles avec le jeu d'instructions de l'Intel 8086. Cette série est nommée IA-32 (pour Intel architecture 32 bits) par Intel pour ses processeurs à partir du Pentium. Un constructeur de microprocesseur pour PC doit maintenir une compatibilité descendante avec ce jeu d'instructions s'il veut que les logiciels déjà écrits fonctionnent sur les nouveaux microprocesseurs. Le nom est un terme générique pour la famille de processeurs Intel, le "x" correspondant à plusieurs valeurs, depuis le 8086, en passant par 80286, 80386 ou 80486.
VirtualisationLa virtualisation consiste, en informatique, à exécuter sur une machine hôte, dans un environnement isolé, des systèmes d'exploitation — on parle alors de virtualisation système — ou des applications — on parle alors de virtualisation applicative. Ces ordinateurs virtuels sont appelés serveur privé virtuel (Virtual Private Server ou VPS) ou encore environnement virtuel (Virtual Environment ou VE).
X64x86-64, ou x64, est une extension du jeu d'instructions x86 d'Intel, introduite par la société AMD avec la gamme AMD64. Intel utilisera cette extension en l'appelant initialement EM64T renommé aujourd'hui en Intel 64. Cette extension permet la gestion des nombres sur 64 bits, avec pour corollaire un adressage mémoire bien au-delà de 4 Go. À cela s'ajoute le doublement (de 8 à 16) du nombre de registres généralistes et vectoriels (SSE). Long Mode : mode 64 bits natif avec compatibilité 32 bits (des programmes non recompilés peuvent être utilisés sans perte de performance notable).
Comparison of platform virtualization softwarePlatform virtualization software, specifically emulators and hypervisors, are software packages that emulate the whole physical computer machine, often providing multiple virtual machines on one physical platform. The table below compares basic information about platform virtualization hypervisors. Providing any virtual environment usually requires some overhead of some type or another. Native usually means that the virtualization technique does not do any CPU level virtualization (like Bochs), which executes code more slowly than when it is directly executed by a CPU.
Hardware-assisted virtualizationIn computing, hardware-assisted virtualization is a platform virtualization approach that enables efficient full virtualization using help from hardware capabilities, primarily from the host processors. A full virtualization is used to emulate a complete hardware environment, or virtual machine, in which an unmodified guest operating system (using the same instruction set as the host machine) effectively executes in complete isolation. Hardware-assisted virtualization was added to x86 processors (Intel VT-x, AMD-V or VIA VT) in 2005, 2006 and 2010 (respectively).
Hardware virtualizationHardware virtualization is the virtualization of computers as complete hardware platforms, certain logical abstractions of their componentry, or only the functionality required to run various operating systems. Virtualization hides the physical characteristics of a computing platform from the users, presenting instead an abstract computing platform. At its origins, the software that controlled virtualization was called a "control program", but the terms "hypervisor" or "virtual machine monitor" became preferred over time.
VirtualPCVirtualPC est un logiciel propriétaire gratuit d'émulation et de virtualisation développé par Microsoft. Il permet d'émuler un système d'exploitation sur une architecture matérielle différente de celle à laquelle il était initialement destiné. Il permet également de faire fonctionner en même temps plusieurs systèmes d'exploitation différents sur une même machine physique. En , Microsoft a annoncé que la version Macintosh ne serait pas portée sur les Macintoshs utilisant les processeurs Intel, la version Macintosh n'est donc effectivement plus maintenue, étant donné que les Macintoshs utilisant des PowerPC ne sont plus fabriqués.
Full virtualizationIn computer science, full virtualization (fv) employs techniques used to create instances of an environment, as opposed to simulation, which models the environment; or emulation, which replicates the target environment such as certain kinds of virtual machine environments. Full virtualization requires that every salient feature of the hardware be reflected into one of several virtual machines – including the full instruction set, input/output operations, interrupts, memory access, and whatever other elements are used by the software that runs on the bare machine, and that is intended to run in a virtual machine.
Translation de codeEn informatique, la translation de code est une technique d'émulation consistant à traduire (de l'anglais « to translate », traduire) le jeu d'instructions d'une architecture source vers le jeu d'instructions d'une architecture destination. On distingue deux types de translation de code : la translation statique, dans ce cas un fichier exécutable de la machine source est intégralement traduit en un fichier exécutable de la machine destination ; la translation dynamique (ou compilation à la volée), dans ce cas les instructions de la machine source sont traduites en instructions de la machine cible au moment même de leur exécution.
Mode virtuel 8086Le mode virtuel 8086 () est un mode d'exécution particulier pour les processeurs de la famille x86. Ce mode fut créé avec l'apparition du processeur Intel 80386 en 1985 et est disponible sur toutes les versions ultérieures des processeurs Intel de la famille x86. Le mode virtuel 8086, aussi appelé Virtual 8086 ou V86, permet au processeur de se comporter comme un processeur 8086 ou 8088 pour lesquels n'existait que le mode réel.
VMwareVMware est une société informatique américaine fondée en 1998, filiale d'EMC Corporation depuis 2004 (racheté par Dell le ), qui propose plusieurs produits propriétaires liés à la virtualisation d'architectures x86. C'est aussi par extension le nom d'une gamme de logiciels de virtualisation. 1999 : création de la société à Palo Alto (Californie) 1999 : VMware Workstation 2.0 2000 : IBM, Dell et Compaq deviennent partenaires 2001 : VMware GSX Server 1.0 et ESX Server 1.
X86 assembly languagex86 assembly language is the name for the family of assembly languages which provide some level of backward compatibility with CPUs back to the Intel 8008 microprocessor, which was launched in April 1972. It is used to produce object code for the x86 class of processors. Regarded as a programming language, assembly is machine-specific and low-level. Like all assembly languages, x86 assembly uses mnemonics to represent fundamental CPU instructions, or machine code.
ÉmulationEn informatique, l'émulation consiste à substituer à un élément de matériel informatique un logiciel. thumb|Capture d'écran de Qemu Launcher. « Émuler » signifie « simuler, sur un ordinateur, le comportement de ». L'émulation est donc une imitation du comportement physique d'un matériel par un logiciel, contrairement à la simulation, qui vise à imiter un modèle abstrait. L'émulateur reproduit le comportement d'un modèle dont toutes les variables sont connues, alors que le simulateur tente de reproduire un modèle mais en devant extrapoler une partie des variables qui lui sont inconnues (exemple : la simulation du comportement d'un trou noir).
HyperviseurUn hyperviseur est une plate-forme de virtualisation qui permet à plusieurs systèmes d’exploitation de fonctionner en parallèle dans une seule machine physique. Les hyperviseurs sont classés actuellement en deux catégories : Un hyperviseur de Type 1, natif, voire « bare metal » (littéralement « métal nu »), est un logiciel qui s'exécute directement sur une plateforme matérielle ; cette plateforme est alors considérée comme outil de contrôle du système d'exploitation.
Segmentation (informatique)En informatique, la segmentation est une technique de découpage de la mémoire. Elle est gérée par l'unité de segmentation de l'unité de gestion mémoire (dite MMU, Memory Management Unit), utilisée sur les systèmes d'exploitation modernes, qui divise la mémoire physique (dans le cas de la segmentation pure) ou la mémoire virtuelle (dans le cas de la segmentation avec pagination) en segments caractérisés par leur adresse de début et leur taille (décalage).
Processeur 64 bitsthumb|Un processeur AMD. Un processeur est un processeur dont la largeur des registres est de sur les nombres entiers. Les processeurs ne peuvent normalement pas adresser plus de () de mémoire centrale, tandis que les processeurs peuvent en adresser (). C'est pourquoi dès qu'il y a plus de de RAM sur une machine, la mémoire au-delà de ce seuil ne sera directement adressable qu'en mode . Diverses techniques contournent cette limitation sans franchir le pas du mode .
Système d'exploitationEn informatique, un système d'exploitation (souvent appelé OS — de l'anglais operating system — ou parfois SE — en français) est un ensemble de programmes qui dirige l'utilisation des ressources d'un ordinateur par des logiciels applicatifs. Il reçoit des demandes d'utilisation des ressources de l'ordinateur de la part des logiciels applicatifs. Le système d'exploitation gère les demandes ainsi que les ressources nécessaires évitant les interférences entre les logiciels.
Hackintoshvignette|Hackintosh sous MacOS X Yosemite Un hackintosh, mot-valise provenant de la contraction de "hacking" (bidouillage/piratage) et de "Macintosh" (la marque la plus connue d'Apple), désigne un ordinateur construit à partir de matériel standard sous l'architecture x64 (x86 jusqu'à OS X 10.5 Léopard) non homologué par Apple mais permettant, grâce à quelques modifications du système, d'utiliser macOS comme système d'exploitation principal.