Zaczynam pracować z Dockerem i po kilku godzinach próbowania go uruchomić, dowiedziałem się, że mój BIOS go blokuje i że muszę dostosować ustawienia BIOS-u. Powiedziano mi, że BIOS jest w jakiś sposób związany z płytą główną.
W jaki sposób BIOS może zablokować ten proces, unieważniając system operacyjny?
bios
virtualization
operating-systems
docker
Alvaro Joao
źródło
źródło
Odpowiedzi:
To nie jest tak, że CPU blokuje program; nie ma koncepcji aplikacji na tak niskim poziomie. Problem polega na tym, że Docker w systemach operacyjnych innych niż Linux może wymagać wirtualizacji sprzętu. Nie określiłeś swojego systemu operacyjnego, ale zrobiłem trochę szpiegowania i odkryłem, że prawdopodobnie używasz systemu Windows.
Wirtualizacja sprzętowa to funkcja procesora, która, jak można się domyślić na podstawie nazwy, pozwala procesorowi pomóc w wirtualizacji. Na wielu komputerach musisz włączyć to w BIOS-ie. Ma to częściowo na celu zapobieganie problemom bezpieczeństwa . Zasadniczo nie można uruchomić programu, ponieważ próbował użyć funkcji, która była faktycznie nieobecna, a nie aktywnie blokowana.
źródło
a tiny bit of snooping
Ha..haOdpowiedź Ben N jest zdecydowanie najbardziej użyteczna i jasna.
Dla tych, którzy wciąż się zastanawiają, oto pełna historia.
Wirtualizację osiąga się dzięki sprzętowej pomocy procesora. Ponieważ zwirtualizowany system operacyjny zakłóca działanie hosta, ponieważ konkurują one o te same zasoby, potrzebny jest mechanizm, aby powstrzymać gościa przed niekontrolowanym dostępem do sprzętu. Można to zrobić za pomocą oprogramowania, spowolnienia, technik lub pomocy procesora.
Wirtualizacja wspomagana sprzętowo jest realizowana za pomocą konkretnych, opcjonalnych instrukcji, o których można przeczytać w rozdziałach 23, 24, 25, 26, 27 i 28 instrukcji Intel 3B część 3 . Oprogramowanie musi najpierw sprawdzić, czy instrukcje są obsługiwane, zanim spróbuje ich użyć.
Ze względów bezpieczeństwa CPU ma specjalny rejestr, jest to MSR o nazwie IA32_FEATURE_CONTROL, który przechowuje informacje z funkcją włączania lub wyłączania.
Cytowanie
Podstawową kwestią jest to, że po zablokowaniu rejestru nie można go odblokować do momentu włączenia zasilania .
Ponieważ BIOS / UEFI jest na pierwszym miejscu, może wyłączyć wirtualizację, usuwając odpowiednie bity i blokując rejestr, zanim jakikolwiek system operacyjny może temu zapobiec. Gdy funkcja wirtualizacji jest wyłączona w ten sposób, procesor zgłasza, że brakuje opcjonalnego rozszerzenia instrukcji (aw rzeczywistości jeśli wystąpi błąd, a oprogramowanie nie może korzystać z wirtualizacji sprzętowej).
źródło