Dlaczego systemy zazwyczaj domyślnie wyłączają wirtualizację w ustawieniach BIOS-u?

81

Nie widziałem jeszcze systemu, którego domyślna konfiguracja umożliwia MMU i ukierunkowaną wirtualizację I / O. Często wymaga to ponownego uruchomienia i przejścia do BIOS-u, aby go włączyć, jeśli chcesz, np. 64-bitowa obsługa maszyn wirtualnych.

Czy istnieje jakiś znaczny narzut procesora, który występuje, jeśli jest włączony i nie korzystasz z wirtualizacji? Jeśli nie, to z jakiego powodu jest domyślnie wyłączony?

John Feminella
źródło

Odpowiedzi:

52

Od pewnego czasu istniały niektóre rootkity typu proof-of-concept, takie jak Blue Pill , które mogły posiadać system z VT. Po tym odkryciu większość dostawców zaczęła wysyłać swoje jednostki z wyłączonym VT jako ogólny środek bezpieczeństwa.

MDMarra
źródło
7
+1 Osoby korzystające z VT na komputerze stacjonarnym / laptopie są wyjątkiem. Ta maszyna podatna na wirusy jest regułą.
Chris S
Nagle zastanawiam się nad tym nowym, lśniącym, nowym, potężnym urządzeniem deweloperskim, które obsługuje kilka maszyn wirtualnych z włączoną wirtualizacją sprzętową. Nie potrzebuję wirtualizacji, ale wydaje mi się, że na dłuższą metę zaoszczędziłbym czasu, nie musiałbym go przerabiać co kilka miesięcy. Jak duży jest to problem?
Paperjam
2
Praktycznie nie istnieje (jak na ten komentarz). Niebieska pigułka była dowodem koncepcji. Nie wiem nic takiego na wolności.
MDMarra
1
Oto ocena problemu bezpieczeństwa przeprowadzona przez Microsoft, w tym zalecenie domyślnego wyłączenia VT w systemach ról klienta: msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx
Jpsy
3
Artykuł Microsoftu nie jest już dostępny na ich stronie internetowej, ale możesz go przeczytać w archiwum internetowym, jeśli chcesz.
Josh Kelley,
5

Wszystkie kupowane przez nas bloki serwerów mają domyślnie włączoną wirtualizację. Może to być spowodowane tym, że nasz dostawca podjął decyzję handlową, aby zaoszczędzić na tak wielu połączeniach z pomocą techniczną.

Nie jest wyłączany z powodu trafienia procesora, ale w zależności od tego, do czego jest używany. Domyślnie może być wyłączone, ponieważ włączenie tych funkcji może wpłynąć na dostęp urządzeń peryferyjnych.

Sirch
źródło
4
Jaki dostęp peryferyjny może to mieć wpływ? Nigdy wcześniej tego nie słyszałem.
MDMarra
Czy mówisz o VT-d, kiedy wspomniałeś o dostępie peryferyjnym?
Zoredache
Nie, to był MMU ... Pamiętam, jak ostatnio ktoś o tym gadał. Ma to coś wspólnego z Rasberry Pi.
Sirch,
2

Zauważ, że zgodnie z tym innym wątkiem wydaje się, że ma to również wpływ na wydajność https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off

Wydaje mi się to istotne, ponieważ zmniejszony zestaw instrukcji jest bardziej wydajny. Po prostu nie pomyślałbym, że zmiana opcji systemu BIOS może bezpośrednio wpłynąć na to.

Nie mam pojęcia, czy wpływ jest znaczący, czy nie, ale biorąc pod uwagę tę i potencjalną wadę bezpieczeństwa, wyłączenie tak rzadko używanej funkcji domyślnie wydaje mi się dobrym wyborem.

Balmipour
źródło
2
Kąt wydajności od powiązanej odpowiedzi nie ma sensu. Pamięć podręczna instrukcji zawiera instrukcje programu. Jeśli program nie korzysta z instrukcji wirtualizacji, nie ma to wpływu na tę pamięć podręczną. Ponadto nie ma raportu, że istnieje osobna jednostka wykonawcza, która obsługuje wirtualizację, ani część dekodera instrukcji, którą można obejść, więc nie powinno być żadnej różnicy wydajności.
Nimrod,
1

innym powodem jest to, że większość funkcji jądra użytkownika (jak gettimeofday) jest przenoszonych w VDSO.

czasami w trakcie wirtualizacji ta szybka ścieżka nie może zostać włączona.

więc system nie może:

uzyskać szybką realizację tych funkcji

unikaj kosztownej zmiany z przestrzeni użytkownika na jądro i wróć

Massimo
źródło
0

Oprócz problemów bezpieczeństwa podniesionych w odpowiedzi na @MDMarra, należy wziąć pod uwagę dwa dodatkowe punkty:

  1. wszelkie włączone, opcjonalne funkcje mają niewielkie prawdopodobieństwo nieprzyjemnych i nieoczekiwanych interakcji z innymi funkcjami, co wymaga dodatkowej weryfikacji. Producenci komputerów nie lubią wydawać zasobów na rzadko używane funkcje, a wirtualizacja po stronie klienta jest jedną z nich.

  2. Podejrzewam, że z powodu # 1, podstawowe oprogramowanie klienckie Intel / BLOB BIOS ma wyłączony VT. Dlatego każdy sprzedawca wysyłający klienta z obsługą VT musi dostosować tę opcję podczas przygotowywania oprogramowania układowego.

To powiedziawszy, jesteśmy teraz w 2019 roku; Widzę więcej klientów z domyślnie włączoną funkcją VT. Serwery to zupełnie inna sprawa: nie tylko zawsze miałem włączony VT, ale VT-d jest często aktywny.

Shodanshok
źródło