Jailhouse to oparty na Linuksie hiperwizor partycjonowania (Został opracowany jako darmowy projekt oprogramowania GPLv2). Jest zdolne do uruchamiania pełnych aplikacji lub systemów operacyjnych (dostosowany) oprócz Linuksa. W tym celu cSkonfiguruj charakterystykę wirtualizacji procesorów i urządzeń platformy sprzęt, tak aby żadna z tych domen, zwanych „komórkami”, nie kolidowała ze sobą w niedopuszczalny sposób.
To znaczy że Jailhouse nie naśladuje zasobów, których nie masz. Po prostu dzieli sprzęt na izolowane przedziały zwane „komórkami” Są one w całości przeznaczone dla oprogramowania gości zwanego „więźniami”.
O więzieniu
Jailhouse jest zoptymalizowany pod kątem prostoty zamiast bogactwa funkcji. W przeciwieństwie do w pełni funkcjonalnych hiperwizorów opartych na systemie Linux, takich jak KVM czy Xen, Więzienie nie wspiera zasobów ponad zobowiązaniami jak procesor, pamięć RAM lub urządzenia. Nie programuje, a jedynie wirtualizuje te zasoby w oprogramowaniu, które są niezbędne dla platformy i nie mogą być partycjonowane na sprzęcie.
Po aktywacji Jailhouse działa ono w pełni, co oznacza, że przejmuje pełną kontrolę nad sprzętem i nie wymaga zewnętrznego wsparcia.
Hiperwizor jest zaimplementowany jako moduł dla jądra Linux i zapewnia wirtualizację na poziomie jądra. Komponenty gościa są już zawarte w głównym jądrze Linuksa.
Do kontroli izolacji używane są mechanizmy wirtualizacji sprzętu dostarczane przez nowoczesne procesory. Cechą wyróżniającą Jailhouse jest jego lekka implementacja i jego orientacja na łączenie maszyn wirtualnych ze stałym procesorem, obszarem pamięci RAM i urządzeniami sprzętowymi. Takie podejście umożliwia działanie kilku niezależnych środowisk wirtualnych na fizycznym serwerze wieloprocesorowym, z których każdy ma przypisany własny rdzeń procesora.
Dzięki ścisłemu połączeniu z procesorem narzut pracy hiperwizora jest zminimalizowany, a jego implementacja jest znacznie uproszczona, ponieważ nie ma potrzeby wykonywania złożonego harmonogramu alokacji zasobów: przydzielenie oddzielnego rdzenia procesora zapewnia, że nie będzie on wykonywał innych zadań na ten procesor.
Zaletą tego podejścia jest możliwość zapewnienia gwarantowanego dostępu do zasobów i przewidywalnej wydajności, dzięki czemu Jailhouse jest odpowiednim rozwiązaniem do tworzenia zadań w czasie rzeczywistym. Wadą jest ograniczona skalowalność, która opiera się na liczbie rdzeni procesora.
O nowej wersji Jailhouse 0.12
Obecnie Jailhouse jest w wersji 0.12 i wyróżnia Wsparcie dla Raspberry Pi 4 Model B i Texas Instruments J721E-EVM.
Oprócz urządzenia ivshmem służy do organizowania interakcji między komórkami, został przeprojektowany i może również realizować transport dla VIRTIO.
Zaimplementowano możliwość wyłączenia tworzenia stron o dużej pamięci (ogromnej strony) w celu zablokowania luki CVE-2018-12207 na procesorach Intel, umożliwiając nieuprzywilejowanemu atakującemu zainicjowanie odmowy usługi, co prowadzi do zawieszenia systemu w komunikacie „Błąd weryfikacji maszyny” stan.
W przypadku systemów z procesorami ARM64 obsługiwany jest SMMUv3 (Jednostka zarządzania pamięcią systemu) i jednostka PVU TI (jednostka wirtualizacji peryferyjnej). W przypadku środowisk piaskownicy, które działają na górze komputera, dodano obsługę PCI.
W systemach x86 możliwe jest włączenie trybu CR4. (Zapobieganie instrukcjom w trybie użytkownika) zapewniane przez procesory Intel, co pozwala na zablokowanie wykonywania niektórych instrukcji w przestrzeni użytkownika, takich jak SGDT, SLDT, SIDT, SMSW i STR, które mogą być wykorzystane w atakach mających na celu zwiększenie uprawnień w systemie .
Zdobądź Jailhouse
Jailhouse obsługuje działanie na systemach x86_64 z rozszerzeniami VMX + EPT lub SVM + NPT (AMD-V), a także na procesorach ARMv7 i ARMv8 / ARM64 z rozszerzeniami wirtualizacji.
Chociaż ponadto rozwijany jest generator obrazów oparty na pakietach Debiana dla kompatybilnych urządzeń.
Możesz znaleźć instrukcje kompilacji i instalacji, a także inne informacje W poniższym linku.