Zespół NetBSD opracowuje nowy hiperwizor NVMM

L Twórcy projektów NetBSD ostatnio ogłosił utworzenie nowego hiperwizora i powiązany z nim stos wirtualizacji, który są już zawarte w eksperymentalnej gałęzi NetBSD-current i będzie oferowany w stabilnej wersji NetBSD 9.

NVMM wciąż jest ograniczone do obsługi architektury x86_64 i oferuje dwie wersje wykorzystania mechanizmów wirtualizacji sprzętu.

Jednym z nich jest x86-SVM z obsługą wirtualizacji procesorów AMD i rozszerzeniami x86-VMX dla procesorów Intel.

W obecnej postaci możliwe jest uruchomienie do 128 maszyn wirtualnych na hoście, z których każdemu można przypisać do 256 wirtualnych rdzeni procesora (VCPU) i 128 GB pamięci RAM.

Informacje o hiperwizorze NVMM

W prezentacji tego hypervisora ​​twórcy projektu NetBSD wyjaśniają to NVMM zawiera sterownik działający na poziomie jądra systemu.

I to też koordynuje dostęp do sprzętowych mechanizmów wirtualizacji i stosu Libnvmm, który działa w przestrzeni użytkownika.

Interakcja komponentów jądra i przestrzeni użytkownika odbywa się za pośrednictwem IOCTL.

 Jedną z cech NVMM, która odróżnia go od hiperwizorów, takich jak KVM, HAXM i Bhyve, jest to, że na poziomie jądra realizowany jest tylko minimalny wymagany zestaw mechanizmów wirtualizacji sprzętu, a cały kod emulacji komputera jest usuwany z jądra w tym samym czasie. czas przestrzeń użytkownika.

To podejście zmniejsza ilość kodu wykonywanego z podwyższonymi uprawnieniami i zmniejsza ryzyko że cały system jest zagrożony w przypadku ataków na luki w hiperwizorze.

Ponadto debugowanie i testowanie pomyłek projektu jest znacznie uproszczone.

Jednocześnie sam Libnvmm nie zawiera funkcji emulatora, a jedynie zapewnia API, które umożliwia integrację obsługi NVMM z istniejącymi emulatorami, na przykład z QEMU.

interfejs API wirtualizacji

Interfejs API obejmuje takie funkcje, jak tworzenie i uruchamianie maszyny wirtualnej, przydzielanie pamięci do systemu-gościa oraz przydzielanie VCPU.

Aby zwiększyć bezpieczeństwo i ograniczyć potencjalne wektory ataków, biblioteka libnvmm udostępnia tylko wyraźnie żądane funkcje.

Domyślnie złożone kontrolery nie są wywoływane automatycznie i nie można ich w ogóle używać, jeśli można z nich zrezygnować.

NVMM stara się upraszczać rozwiązania, nie popadając w komplikacje i pozwolić sobie na kontrolowanie jak największej liczby aspektów pracy.

Część NVMM na poziomie jądra jest dość dobrze zintegrowana z jądrem NetBSD. i pozwala osiągnąć wyższą wydajność poprzez zmniejszenie liczby przełączeń kontekstu między systemem operacyjnym gościa a środowiskiem hosta.

W przestrzeni użytkownika libnvmm próbuje dodać typowe operacje I/O i bez takiej potrzeby nie ucieka się do wywołań systemowych.

Wydajność

W przeciwieństwie do innych międzyplatformowych sterowników pseudojądra, takich jak VirtualBox czy HAXM, NVMM jest dobrze zintegrowany z jądrem NetBSD i to pozwala na optymalizację zmian kontekstu między gośćmi a gospodarzem, aby w niektórych przypadkach uniknąć kosztownych operacji.

Bezpieczeństwo

System alokacji pamięci bazuje na podsystemie pmap, że Umożliwia przenoszenie stron z pamięci gościa do partycji wymiany w przypadku braku pamięci w systemie.

NVMM jest wolny od globalnych blokad i skalowania, co pozwala na jednoczesne używanie różnych rdzeni procesora do uruchamiania różnych maszyn wirtualnych gościa.

W oparciu o QEMU przygotowano rozwiązanie wykorzystujące NVMM umożliwiające uruchomienie mechanizmów wirtualizacji sprzętu.

Trwają prace nad włączeniem przygotowanych poprawek do głównego zespołu QEMU.

El Paquete QEMU + NVMM pozwala już z powodzeniem uruchamiać systemy gości z FreeBSD, OpenBSD, Linux, Windows XP / 7 / 8.1 / 10 i inne systemy operacyjne w systemach x86_64 z procesorami AMD i Intel (sam NVMM nie jest powiązany z określoną architekturą).

Backend będzie mógł pracować na systemach ARM64). Z dodatkowych obszarów zastosowań NVMM zaobserwował również izolację w obszarze testowym poszczególnych aplikacji.

źródło: http://blog.netbsd.org


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.