Je commence à travailler avec Docker et après quelques heures à essayer de le faire fonctionner, j'ai découvert que mon BIOS le bloquait et que je devais ajuster les paramètres du BIOS. On m'a dit que le BIOS était en quelque sorte lié à la carte mère.
Comment le BIOS peut-il bloquer ce type de processus, annulant le système d'exploitation?
bios
virtualization
operating-systems
docker
Alvaro Joao
la source
la source
Réponses:
Ce n'est pas que le CPU bloque un programme; il n'a pas un concept d'applications à ce niveau bas. Le problème est que Docker sur les systèmes d'exploitation non Linux peut nécessiter une virtualisation matérielle. Vous n'avez pas spécifié votre système d'exploitation, mais j'ai fait un tout petit peu de surveillance et j'ai découvert que vous utilisez probablement Windows.
La virtualisation matérielle est une fonctionnalité du processeur qui, comme vous pouvez le deviner d'après son nom, permet au processeur d'aider à la virtualisation. Sur de nombreuses machines, vous devez l'activer dans le BIOS. C'est en partie pour éviter les problèmes de sécurité . Fondamentalement, vous ne pouvez pas démarrer un programme car il a tenté d'utiliser une fonctionnalité qui était effectivement absente au lieu d'être activement bloquée.
la source
a tiny bit of snooping
Ha..haLa réponse de Ben N est clairement la plus utile et la plus claire.
Pour ceux qui se demandent encore, voici cependant toute l'histoire.
La virtualisation est réalisée avec l'assistance matérielle du CPU. Puisqu'un système d'exploitation virtualisé interférerait avec celui de l'hôte, car ils se disputent les mêmes ressources, un mécanisme est nécessaire pour empêcher l'invité d'avoir un accès incontrôlé au matériel. Cela peut être dû à un logiciel, à des techniques lentes ou à l'aide du processeur.
La virtualisation assistée par matériel est implémentée avec des instructions spécifiques et facultatives , vous pouvez en lire plus dans les chapitres 23, 24, 25, 26, 27 et 28 du manuel Intel 3B, partie 3 . Le logiciel doit d'abord vérifier que ces instructions sont prises en charge, avant de tenter de les utiliser.
Pour des raisons de sécurité, le CPU a un registre spécial, c'est un MSR , appelé IA32_FEATURE_CONTROL qui contient des bits indiquant avec une fonctionnalité à activer ou désactiver.
Citant
Le point fondamental est qu'une fois le registre verrouillé, il ne peut pas être déverrouillé avant la mise sous tension .
Étant donné que le BIOS / UEFI vient en premier, il a le pouvoir de désactiver la virtualisation en effaçant les bits appropriés et en verrouillant le registre avant qu'un système d'exploitation puisse empêcher cela. Lorsque la fonctionnalité de virtualisation est désactivée de cette façon, le processeur signale que l'extension d'instruction facultative est manquante (et en fait si elle est utilisée) et le logiciel ne peut donc pas utiliser la virtualisation matérielle.
la source