Ich fange an, mit Docker zu arbeiten, und nachdem ich einige Stunden lang versucht hatte, es zum Laufen zu bringen, stellte ich fest, dass mein BIOS es blockierte und dass ich die BIOS-Einstellungen anpassen musste. Mir wurde gesagt, dass das BIOS irgendwie mit dem Motherboard zusammenhängt.
Wie kann das BIOS diese Art von Prozess blockieren und das Betriebssystem außer Kraft setzen?
bios
virtualization
operating-systems
docker
Alvaro Joao
quelle
quelle
Antworten:
Es ist nicht so, dass die CPU ein Programm blockiert. Es gibt kein Konzept für Apps auf diesem niedrigen Niveau. Das Problem ist, dass Docker auf Nicht-Linux-Betriebssystemen eine Hardwarevirtualisierung erfordern kann. Sie haben Ihr Betriebssystem nicht angegeben, aber ich habe ein bisschen geschnüffelt und festgestellt, dass Sie wahrscheinlich Windows verwenden.
Hardwarevirtualisierung ist eine CPU-Funktion, mit der die CPU, wie der Name vermuten lässt, bei der Virtualisierung helfen kann. Auf vielen Rechnern müssen Sie es im BIOS aktivieren. Dies dient zum Teil der Vermeidung von Sicherheitsproblemen . Grundsätzlich konnte ein Programm nicht gestartet werden, da versucht wurde, eine Funktion zu verwenden, die effektiv nicht vorhanden war und nicht aktiv blockiert wurde.
quelle
a tiny bit of snooping
Ha..haDie Antwort von Ben N ist eindeutig die nützlichste und klarste.
Für diejenigen, die sich noch wundern, ist hier jedoch die ganze Geschichte.
Die Virtualisierung erfolgt mit Hardware-Unterstützung der CPU. Da ein virtualisiertes Betriebssystem das Host-Betriebssystem stören würde, da es um dieselben Ressourcen konkurriert, ist ein Mechanismus erforderlich, um zu verhindern, dass der Gast unkontrollierten Zugriff auf die Hardware hat. Dies kann mit Software, langsamen Techniken oder mit Unterstützung der CPU geschehen.
Die hardwaregestützte Virtualisierung wird mit speziellen optionalen Anweisungen implementiert. Informationen hierzu finden Sie in den Kapiteln 23, 24, 25, 26, 27 und 28 des Intel Manual 3B Part 3 . Die Software muss zuerst prüfen, ob diese Anweisungen unterstützt werden, bevor sie verwendet werden.
Aus Sicherheitsgründen hat die CPU ein spezielles Register, es ist ein MSR mit dem Namen IA32_FEATURE_CONTROL , das Bits enthält, die mit der Funktion zum Aktivieren oder Deaktivieren angeben .
Zitieren
Der grundlegende Punkt ist, dass das einmal gesperrte Register erst nach dem Einschalten entsperrt werden kann .
Da BIOS / UEFI an erster Stelle steht, kann es die Virtualisierung deaktivieren, indem die entsprechenden Bits gelöscht und das Register gesperrt werden, bevor ein Betriebssystem dies verhindern kann. Wenn die Virtualisierungsfunktion auf diese Weise deaktiviert wird, meldet die CPU, dass die optionale Befehlserweiterung fehlt (und tatsächlich fehlerhaft ist, wenn sie verwendet wird), und die Software kann die Hardwarevirtualisierung daher nicht verwenden.
quelle