Firma Siemens wydanie wolnego hipernadzorcy . Hypervisor 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 dla wirtualizacji. Osobno generator obrazów dla hyperwizora Jailhouse, tworzonych w oparciu o pakiety Debian dla wspieranych urządzeń. Kod projektu na licencji GPLv2.
Hypervisor zrealizowany jest jako moduł jądra Linux i zapewnia wirtualizację na poziomie jądra. Komponenty dla systemów gościnnych są już włączone w skład podstawowego jądra Linux. Do zarządzania izolacją wykorzystywane są nowoczesne mechanizmy sprzętowe do wirtualizacji oferowane przez procesory. Cechą wyróżniającą Jailhouse jest lekka realizacja oraz orientacja na przypisanie wirtualnych maszyn do stałego CPU, obszaru RAM i urządzeń sprzętowych. Takie podejście pozwala na zapewnienie funkcjonowania kilku niezależnych wirtualnych środowisk na jednym fizycznym serwerze wieloprocesorowym, z których każde jest przypisane do swojego rdzenia procesora.
Przy sztywnym przypisaniu do CPU, koszty związane z działaniem hyperwizora są minimalizowane, co znacząco upraszcza jego realizację, ponieważ nie ma potrzeby uruchamiania skomplikowanego harmonogramu rozdzielania zasobów — przydział oddzielnego rdzenia CPU zapewnia brak wykonywania innych zadań na tym CPU. Zaleta takiego podejścia to możliwość zapewnienia gwarantowanego dostępu do zasobów i przewidywalnej wydajności, co czyni Jailhouse odpowiednim rozwiązaniem do tworzenia zadań realizowanych w czasie rzeczywistym. Wadą jest ograniczona skalowalność, związana z liczbą rdzeni CPU.
W terminologii Jailhouse wirtualne środowiska nazywane są „komorami” (cell, w kontekście jailhouse). Wewnątrz komory system wygląda jak jednoprocesorowy serwer, wykazując wydajność wydajności dedykowanego rdzenia CPU. W komorze może być uruchomione środowisko dowolnego systemu operacyjnego, a także uproszczone środowiska do uruchamiania jednego aplikacji lub specjalnie przygotowane oddzielne aplikacje, przeznaczone do rozwiązywania zadań czasu rzeczywistego. Konfiguracja określana jest w , definiujące przydzielane środowisku CPU, obszary pamięci i porty wejścia/wyjścia.

W nowym wydaniu
- Dodano wsparcie dla platform Marvell MACCHIATObin, Xilinx Ultra96,
Microsys miriac SBC-LS1046A i Texas Instruments AM654 IDK; - Dodano statystyki w podziale na każde rdzenie CPU;
- Zapewniono reset urządzeń PCI przy zasilaniu kamery;
- Struktura Device Tree dostosowana do ostatnich wydań jądra Linux;
- Dodano ochronę przed atakami Spectre v2 dla platform ARM i ARM64. W ustawieniach qemu-arm64 uwzględniono zmiany z ostatnich wydań QEMU. Rozwiązano problemy z nadpisywaniem firmware PSCI na płytach Orange Pi Zero;
- Dla platformy x86 przy uruchamianiu środowisk demonstracyjnych (inmates) włączono wykorzystanie instrukcji SSE i AVX, a także dodano raport o wyjątkach.
W planach na przyszłość zaznaczono długo oczekiwane wsparcie IOMMUv3, poprawę efektywności wykorzystania pamięci podręcznej CPU (), wyeliminowanie problemów z APIC na procesorach AMD Ryzen, przebudowę urządzenia ivshmem oraz promowanie sterowników do głównego składu jądra.
Źródło: opennet.ru
