Wydanie emulatora QEMU 5.0

Przesłane przez wydanie projektu QEMU 5.0. Jako emulator QEMU pozwala na uruchomienie programu skompilowanego dla jednej platformy sprzętowej na systemie o zupełnie innej architekturze, np. uruchomienie aplikacji ARM na komputerze PC zgodnym z x86. W trybie wirtualizacji w QEMU wydajność wykonywania kodu w izolowanym środowisku jest zbliżona do systemu natywnego dzięki bezpośredniemu wykonywaniu instrukcji na procesorze oraz zastosowaniu hypervisora ​​Xen lub modułu KVM.

Projekt został pierwotnie stworzony przez Fabrice'a Bellarda, aby umożliwić uruchamianie plików wykonywalnych Linuksa zbudowanych dla platformy x86 na architekturach innych niż x86. Przez lata rozwoju dodano pełną obsługę emulacji dla 14 architektur sprzętowych, liczba emulowanych urządzeń sprzętowych przekroczyła 400. W ramach przygotowań do wersji 5.0 dokonano ponad 2800 zmian od 232 programistów.

Klucz ulepszeniadodano w QEMU 5.0:

  • Możliwość przekazania części systemu plików środowiska hosta do systemu gościa za pomocą wirtuoz. System gościa może zamontować katalog oznaczony do eksportu po stronie systemu hosta, co znacznie upraszcza organizację współdzielonego dostępu do katalogów w systemach wirtualizacyjnych. W przeciwieństwie do korzystania z sieciowych systemów plików, takich jak NFS i virtio-9P, virtiofs umożliwia osiągnięcie wydajności zbliżonej do lokalnego systemu plików;
  • Wsparcie migracja na żywo danych z procesów zewnętrznych z wykorzystaniem QEMU D-Bus;
  • Użyteczność zaplecze pamięci aby zapewnić działanie głównej pamięci RAM systemu gościa. Backend określa się za pomocą opcji „-machine memory-backend”;
  • Nowy filtr „kompresuj”, za pomocą którego można tworzyć kopie zapasowe skompresowanych obrazów;
  • Polecenie „qemu-img Measure” może teraz działać z obrazami LUKS, a do polecenia „qemu-img Convert” dodano opcję „--target-is-zero”, aby pominąć zerowanie obrazu docelowego;
  • Dodano eksperymentalne wsparcie dla procesu qemu-storage-daemon, zapewniające dostęp do poziomu bloków QEMU i poleceń QMP, w tym do uruchamiania urządzeń blokowych i wbudowanego serwera NBD, bez konieczności uruchamiania pełnej maszyny wirtualnej;
  • Emulator architektury ARM dodał możliwość emulacji procesorów Cortex-M7 i zapewnia obsługę płyt PC tacoma-bmc, Netduino Plus 2 i Orangepi. Dodano obsługę urządzeń vTPM i virtio-iommu do emulowanych maszyn „virt”. Możliwość używania systemów hostów AArch32 do uruchamiania środowisk gościnnych KVM została uznana za przestarzałą. Zaimplementowano obsługę emulacji następujących funkcji architektury:
    • ARMv8.1: HEV, VMID16, PAN, PMU
    • ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
    • ARMv8.3: RCPC, CCIDX
    • ARMv8.4: PMU, RCPC
  • Dodano obsługę konsoli graficznej do emulatora architektury HPPA przy użyciu urządzenia graficznego HP Artist;
  • Dodano obsługę instrukcji GINVT (Global Invalidation TLB) do emulatora architektury MIPS;
  • Do emulatora architektury PowerPC dla maszyn „powernv” dodano emulację narzędzi akceleracji sprzętowej KVM do uruchamiania systemów gościnnych
    KVM z klasycznym generatorem kodu TCG (Tiny Code Generator). Aby emulować pamięć trwałą, dodano obsługę modułów NVDIMM odzwierciedlonych w pliku. W przypadku maszyn „pseries” usunięto potrzebę ponownego uruchamiania w celu skoordynowania działania kontrolerów przerwań XIVE/XICS w trybie „ic-mode=dual”;

  • Emulator architektury RISC-V dla płyt „virt” i „sifive_u” zapewnia obsługę standardowych Linuxowych sterowników syscon do zarządzania zasilaniem i ponownym uruchamianiem. Dodano obsługę Goldfish RTC dla płyty „virt”. Dodano eksperymentalną implementację rozszerzeń hypervisora;
  • Do emulatora architektury s390 podczas pracy w trybie KVM dodano obsługę AIS (Adapter Interrupt Suppression).

Źródło: opennet.ru

Dodaj komentarz