Wydanie emulatora QEMU 4.1

Przesłane przez wydanie projektu QEMU 4.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 w celu zapewnienia możliwości uruchamiania plików wykonywalnych skompilowanych dla platformy x86. Linux na architekturach innych niż x86. W ciągu lat rozwoju dodano obsługę pełnej emulacji dla 14 architektur sprzętowych, a liczba emulowanych urządzeń przekroczyła 400. Podczas przygotowywania wersji 4.1 wprowadzono ponad 2000 zmian przez 276 programistów.

Klucz ulepszeniadodano w QEMU 4.1:

  • Do emulatora architektury x86 dodano obsługę modeli procesorów Hygon Dhyana i Intel SnowRidge. Dodano emulację rozszerzenia RDRAND (sprzętowy generator liczb pseudolosowych). Dodano flagi
    md-clear i mds-no do kontrolowania ochrony przed atakami MDS (Próbkowanie danych mikroarchitektury) na procesorach Intel. Dodano możliwość określenia topologii układów scalonych za pomocą flagi „-smp…,dies=”. Wersjonowanie zostało zaimplementowane dla wszystkich modeli procesorów x86;
  • Sterownik bloku SSH został przeniesiony z użycia libssh2 na libssz;
  • Sterownik virtio-gpu (wirtualny procesor graficzny opracowany w ramach projektu Virgil) dodano obsługę przenoszenia operacji renderowania 2D/3D do zewnętrznego procesu użytkownika vhost (na przykład vhost-user-gpu);
  • Emulator architektury ARM dodał obsługę rozszerzenia ARMv8.5-RNG służącego do generowania liczb pseudolosowych. Zaimplementowano obsługę emulacji FPU dla układów z rodziny Cortex-M i rozwiązano problemy z emulacją FPU dla Cortex-R5F. Zaproponowano nowy system ustawiania opcji kompilacji, zaprojektowany w stylu Kconfig. Dla SoC Exynos4210 dodano obsługę kontrolerów PL330 DMA;
  • Emulator architektury MIPS ulepszył obsługę instrukcji MSA ASE podczas korzystania z kolejności bajtów typu big-endian i dostosował obsługę dzielenia przez zero do sprzętu referencyjnego. Zwiększono wydajność emulacji instrukcji MSA do obliczeń liczb całkowitych i operacji permutacji;
  • Emulator architektury PowerPC obsługuje teraz przekazywanie do procesorów graficznych NVIDIA V100/NVLink2 przy użyciu VFIO. W przypadku pserie zaimplementowano przyspieszenie emulacji kontrolera przerwań XIVE i dodano obsługę podłączania mostów PCI na gorąco. Dokonano optymalizacji emulacji instrukcji wektorowych (Altivec/VSX);
  • Do emulatora architektury RISC-V dodano nowy model sprzętu – „spike”. Dodano obsługę ISA 1.11.0. Udoskonalono 32-bitowe wywołanie systemowe ABI, udoskonalono obsługę nieprawidłowych instrukcji i udoskonalono wbudowany debugger. Dodano obsługę topologii procesora w drzewie urządzeń;
  • Emulator architektury s390 dodał obsługę emulacji wszystkich instrukcji wektorowych z grupy „Vector Facility” oraz dodał dodatkowe elementy do obsługi systemów gen15 (w tym dodano obsługę funkcji przerywania kolejki AP dla vfio-ap). Zaimplementowano obsługę BIOS-u przy uruchamianiu z ECKD DASD powiązanego z systemem gościa poprzez vfio-ccw;
  • W emulatorze architektury SPARC dla systemów sun4m rozwiązano problemy z użyciem flagi „-vga none” dla OpenBIOS;
  • Emulator procesora z rodziny Tensilica Xtensa zawiera opcje MPU (jednostki ochrony pamięci) i wyłącznego dostępu;
  • Do polecenia „qemu-img Convert” dodano opcję „-salvage”, aby wyłączyć awarię procesu konwersji obrazu w przypadku błędów we/wy (można na przykład użyć do przywrócenia częściowo uszkodzonych plików qcow2). W zespole
    „qemu-img rebase” działa, gdy nie utworzono jeszcze pliku kopii zapasowej dla pliku wejściowego;
  • Dodano możliwość przekierowywania danych wyjściowych zorganizowanych przy użyciu technologii „semihosting” (pozwala emulowanemu urządzeniu używać stdout, stderr i stdin do tworzenia plików po stronie hosta) do zaplecza chardev („-semihosting-config Enable=on,target=native ,chardev=[identyfikator]");
  • Dodano obsługę podformatu seSparse w trybie tylko do odczytu w sterowniku blokowym VMDK;
  • Dodano obsługę kontrolera SiFive GPIO w sterowniku emulacji GPIO.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster