Wydanie emulatora QEMU 5.1

Przesłane przez wydanie projektu QEMU 5.1. 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.1 dokonano ponad 2500 zmian od 235 programistów.

Klucz ulepszeniadodano w QEMU 5.1:

  • Dodano obsługę emulacji procesora w oparciu o architekturę AVR. Zaimplementowano obsługę płytek Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560).
    Arduino Mega (ATmega1280) i Arduino UNO (ATmega328P).

  • Emulator architektury ARM dodał możliwość odłączania pamięci podczas pracy, a także pamięci nvdimm typu hot-plug dla systemów gości z interfejsem ACPI. Zaimplementowano obsługę rozszerzeń ARMv8.2 TTS2UXN и Tag memowy ARMv8.5. Zapewniono obsługę płyty sonorapass-bmc.
  • Do emulatora architektury MIPS dodano obsługę procesorów Loongson 3A (R1 i R4). Poprawiona wydajność emulacji instrukcji FPU i MSA.
  • Do emulatora architektury RISC-V dodano obsługę procesorów SiFive E34 i Ibex. Zaimplementowano obsługę płyt HiFive1 revB i OpenTitan. Maszyny Spike zapewniają obsługę więcej niż jednego procesora.
  • Emulator architektury PowerPC obsługuje teraz odzyskiwanie błędów w systemach-gościach przy użyciu FWNMI.
  • Do architektury s390 dodano obsługę KVM w celu zapewnienia bezpiecznej wirtualizacji (tryb bezpiecznego wykonywania).
  • Emulator architektury x86 zmniejsza obciążenie związane z wirtualizacją nieprzystosowanych gości systemu Windows, udostępniając tabelę urządzeń emulowanych przez ACPI systemu Windows (WAET). Ulepszona obsługa przyspieszenia HVF dla systemu macOS.
  • Sterownik urządzenia blokowego obsługuje teraz wirtualne urządzenia pamięci masowej z blokami logicznymi i fizycznymi o rozmiarze 2 MB.
  • Dodano możliwość przesyłania haseł i kluczy szyfrujących do QEMU za pośrednictwem bazy kluczy jądra Linux przy użyciu obiektów nowego typu „tajny klucz”.
  • Format qcow2 obsługuje teraz algorytm kompresji zstd.
  • Do narzędzia qemu-img dodano nowe polecenie „bitmapa”, umożliwiające manipulowanie trwałymi mapami bitowymi w plikach qcow2. qemu-img implementuje również zarządzanie kluczami LUKS (keyslot) i oferuje dodatkowe możliwości dla poleceń „map” (--start-offset, -max-length) i „convert” (-bitmaps); polecenie „measure” wyświetla teraz informacje o rozmiarze trwałych bitmap w plikach qcow2.
  • Sterownik NVMe obsługuje teraz obszary pamięci trwałej wprowadzone w specyfikacji NVMe 1.4.
  • W virtio dla systemów gościnnych z klasycznym generatorem kodu TCG (Tiny Code Generator) zaimplementowano możliwość wykorzystania procesów użytkownik vhost, w tym virtiofsd. Do vhost-user dodano rozszerzenie VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, umożliwiające zarejestrowanie więcej niż 8 slotów RAM.

Źródło: opennet.ru

Dodaj komentarz