Maszyna wirtualna oparta na jądrze

Maszyna wirtualna oparta na jądrze Opis obrazu png Kvmbanner-logo2 1.png. Opis obrazu KVM obsługującego różnych gości.png. Informacja
Opracowany przez Open Virtualization Alliance (OVA)
Ostatnia wersja 17
Kaucja git: //git.kernel.org/pub/scm/virt/kvm/kvm.git
Napisane w VS
Rodzaj Hypervisor
Licencja Powszechna Licencja Publiczna GNU i pomniejsza Powszechna Licencja Publiczna GNU
Stronie internetowej http://www.linux-kvm.org

KVM ( maszyna wirtualna oparta na jądrze ) to darmowy hiperwizor typu I dla systemu Linux . KVM został zintegrowany z jądrem Linuksa od wersji 2.6.20.

Początkowo działa na procesorach o architekturze x86 z instrukcjami wirtualizacji Intel VT lub AMD-V . Od tego czasu KVM został przeniesiony na architekturę Power PC , IA-64 i ARM od jądra Linux 3.9.

Historia

Rozwój KVM rozpoczął się w firmie Qumranet przez Avi Kivity. Firma Red Hat kupiła Qumranet4 września 2008. Od tego czasu KVM jest współzarządzany przez programistę Marcelo Tosatti .

Operacja

KVM został zaprojektowany z gałęzi z QEMU , a następnie QEMU z kolei wprowadza się kod źródłowy drugiego tak, że dwa są współzależne. Główną zmianą jest obsługa modułu kvm . Kiedy mówimy o KVM, zwykle mamy na myśli całość: zmodyfikowaną wersję QEMU i moduł kvm .

QEMU jest w stanie, dzięki modułu KQEMU ( K dla Kernel „  jądra  ” w języku angielskim), aby wykonać kod maszynowy bezpośrednio na procesorze hosta w celu przyspieszenia emulacji. Ta technologia, chociaż zapewnia znaczny wzrost wydajności, nie jest doskonała. Należy wprowadzić mechanizmy ochrony w celu przechwytywania i naśladowania uprzywilejowanych wydarzeń. Jednak kod jądra systemu gościa normalnie działa całkowicie w trybie uprzywilejowanym. Będąc emulowanym w klasyczny sposób, jest więc silnie karany, będąc kluczowym elementem systemu.

Procesory z rodziny x86 mają 4 poziomy uprawnień do wykonywania, zwane pierścieniami ochrony . Oprócz tych pierścieni, najnowsze procesory zawierają nowy mechanizm izolacji, który umożliwia uruchamianie systemu gościa bezpośrednio na procesorze niezależnie od pierścieni zabezpieczających, których wymaga do działania, zapewniając jednocześnie ochronę przed odczytem i zapisem w pamięci, która nie należy do maszyna wirtualna. Jest to możliwe głównie dzięki jednostce MMU dedykowanej dla każdej maszyny wirtualnej na procesorze oraz przekierowaniu przerwań sprzętowych do hiperwizora maszyn wirtualnych (w tym przypadku KVM) w celu emulacji sprzętu potrzebnego systemowi gościa.

Technologie wdrożone przez dwie główne huty, którymi są AMD i Intel, są różne, moduł KVM jest dostępny w dwóch podmodułach: kvm-intel i amd kvm-; moduł kvm jest ostatecznie obecny tylko po to, aby zapewnić emulatorowi dodatkową abstrakcję .

W najnowszych wersjach KVM (przynajmniej wersja 60) możliwe jest zastosowanie mechanizmu podobnego do parawirtualizacji przy użyciu virtio . Pilot virtio są zawarte w jądrze Linux od wersji 2.6.25 do minimum. Istnieją również sterowniki virtio dla systemu Windows . Mechanizm ten pozwala na zwiększenie szybkości wykonywania, ponieważ nie jest już konieczne emulowanie urządzeń sprzętowych. Jednak system ten opuszcza ramy wirtualizacji w ścisłym tego słowa znaczeniu, ponieważ konieczne jest, aby piloci byli informowani, że są wykonywani w zwirtualizowanym środowisku.

Zobacz też

Powiązane artykuły

Linki zewnętrzne

Uwagi i odniesienia

  1. Linux 2 6 20 na KernelNewbies .
  2. (w) Status projektu na wiki KVM.
  3. (en) Gmane Loom .
  4. [1] .
  5. „  Virtualization: Red Hat Acquires Israeli Qumranet  ”, z journaldunet.com (dostęp 9 października 2020 ) .
  6. Zobacz tę stronę na stronie z Avi Kivity .
  7. Czy architektura hosta i systemu gościa to 32- czy 64-bitowa architektura x86.
  8. Zobacz tę stronę w witrynie KVM .
  9. (en) [2] .
  10. (en) http://wiki.libvirt.org/page/Virtio .