Architecture Bac à sable Windows

Bac à sable Windows bénéficie de la nouvelle technologie de conteneur dans Windows pour obtenir une combinaison de sécurité, de densité et de performances qui n’est pas disponible dans les machines virtuelles traditionnelles.

Image générée dynamiquement

Au lieu d’exiger une copie distincte de Windows pour démarrer le bac à sable, la technologie d’image de base dynamique utilise la copie de Windows déjà installée sur l’hôte.

La plupart des fichiers de système d’exploitation sont immuables et peuvent être partagés librement avec Bac à sable Windows. Un petit sous-ensemble de fichiers de système d’exploitation étant mutables et ne pouvant pas être partagés, l’image de base du bac à sable en contient des copies vierges. Une image Windows complète peut être construite à partir d’une combinaison des fichiers immuables partageables sur l’hôte et des copies vierges des fichiers mutables. À l’aide de ce schéma, Bac à sable Windows dispose d’une installation Complète de Windows à partir de laquelle démarrer sans avoir à télécharger ou stocker une copie supplémentaire de Windows.

Avant l’installation de Bac à sable Windows, le package d’image de base dynamique est stocké sous la forme d’un package compressé de 30 Mo. Une fois installée, l’image de base dynamique occupe environ 500 Mo d’espace disque.

Un graphique compare l’échelle de l’image dynamique des fichiers et établit des liens avec le système de fichiers hôte.

Gestion de la mémoire

Les machines virtuelles traditionnelles répartissent les allocations de mémoire de l’hôte de taille statique. Lorsque les besoins en ressources changent, les machines virtuelles classiques disposent de mécanismes limités pour ajuster leurs besoins en ressources. En revanche, les conteneurs collaborent avec l’hôte pour déterminer dynamiquement la façon dont les ressources de l’hôte sont allouées. Cette méthode est similaire à la façon dont les processus sont normalement en concurrence pour la mémoire sur l’hôte. Si l’hôte est soumis à une sollicitation de la mémoire, il peut récupérer de la mémoire du conteneur comme il le ferait avec un processus.

Un graphique compare le partage de mémoire dans Bac à sable Windows à une machine virtuelle traditionnelle.

Partage de mémoire

Étant donné que Bac à sable Windows exécute la même image de système d’exploitation que l’hôte, il est amélioré d’utiliser les mêmes pages de mémoire physique que l’hôte pour les fichiers binaires du système d’exploitation via une technologie appelée « carte directe ». Par exemple, quand ntdll.dll est chargé en mémoire dans le bac à sable, il utilise les mêmes pages physiques que ces pages du binaire lorsqu’elle est chargée sur l’hôte. Le partage de mémoire entre l’hôte et le bac à sable entraîne un encombrement mémoire plus faible par rapport aux machines virtuelles traditionnelles, sans compromettre les secrets de l’hôte précieux.

Un graphique compare l’empreinte mémoire dans Bac à sable Windows par rapport à une machine virtuelle traditionnelle.

Planificateur de noyau intégré

Avec les machines virtuelles ordinaires, l’hyperviseur Microsoft contrôle la planification des processeurs virtuels s’exécutant sur les machines virtuelles. Bac à sable Windows utilise une nouvelle technologie appelée « planification intégrée », qui permet au planificateur hôte de décider quand le bac à sable obtient des cycles de processeur.

Un graphique compare la planification dans Bac à sable Windows à une machine virtuelle traditionnelle.

Bac à sable Windows utilise une stratégie unique qui permet aux processeurs virtuels du bac à sable d’être planifiés comme des threads hôtes. Dans ce schéma, les tâches à priorité élevée sur l’hôte peuvent préempter un travail moins important dans le bac à sable. Cette préemption signifie que le travail le plus important est hiérarchisé, que ce soit sur l’hôte ou dans le conteneur.

Virtualisation GPU WDDM

L’accélération matérielle du rendu est essentielle à une expérience utilisateur fluide et réactive, en particulier pour les cas d’usage gourmands en graphiques. Microsoft collabore avec ses partenaires de l’écosystème graphique pour intégrer des fonctionnalités de virtualisation graphique modernes directement dans DirectX et Windows Display Driver Model (WDDM), le modèle de pilote utilisé par Windows.

Cette fonctionnalité permet aux programmes exécutés à l’intérieur du bac à sable de concurrencer les ressources GPU avec les applications qui s’exécutent sur l’hôte.

Un graphique illustre l’utilisation du noyau graphique dans le bac à sable géré avec les applications sur l’hôte.

Pour tirer parti de ces avantages, un système avec un GPU et des pilotes graphiques compatibles (WDDM 2.5 ou version ultérieure) est nécessaire. Les systèmes incompatibles restituent des applications dans Bac à sable Windows avec la technologie de rendu basée sur le processeur de Microsoft, la plateforme WARP (Windows Advanced Rasterization Platform).

Transmission directe de la batterie

Bac à sable Windows est également conscient de l’état de la batterie de l’hôte, ce qui lui permet d’optimiser sa consommation d’énergie. Cette fonctionnalité est essentielle pour la technologie utilisée sur les ordinateurs portables, où l’autonomie de la batterie est souvent critique.