Wydanie emulatory QEMU 4.0

Uformowane premiera projektu QEMU 4.0. Jako emulator QEMU pozwala uruchomić program skompilowany dla jednej platformy sprzętowej na systemie o zupełnie innej architekturze, na przykład uruchomić aplikację dla ARM na komputerze z procesorem zgodnym z x86. W trybie wirtualizacji w QEMU wydajność wykonywania kodu w izolowanym środowisku jest bliska natywnej dzięki bezpośredniemu wykonywaniu instrukcji na CPU i wykorzystaniu hypervisora Xen lub modułu KVM.

Projekt został pierwotnie stworzony przez Fabrice'a Bellarda w celu umożliwienia uruchamiania plików wykonywalnych Linuxa skompilowanych na platformę x86 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ń sprzętowych przekroczyła 400. Przygotowując wersję 4.0, wprowadzono ponad 3100 zmian od 220 programistów.

Kluczowe ulepszenia, dodanych w QEMU 4.0:

  • W emulatorze architektury ARM dodano obsługę rozszerzeń instrukcji ARMv8+: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT i BTI. Dodano wsparcie dla emulacji platform "Musca" i "MPS2". Ulepszono emulację ARM PMU (Power Management Unit). W platformie virt dodano możliwość wykorzystania ponad 255 GB RAM oraz obsługę obrazów u-boot typu „noload”;
  • W emulatorze architektury x86 w silniku przyspieszającym wirtualizację HAX (Intel Hardware Accelerated Execution) dodano wsparcie dla hostów zgodnych z POSIX, takich jak Linux i NetBSD (wcześniej obsługiwano tylko platformę Darwin). W emulatorze chipsetu Q35 (ICH9) dla głównych portów PCIe opcjonalnie można zadeklarować maksymalną prędkość (16GT/s) i liczbę linii połączeń (x32), określoną w specyfikacji PCIe 4.0 (dla zapewnienia zgodności domyślnej dla starszych typów maszyn, QEMU ustawia 2.5GT/s i x1). Umożliwiono ładowanie obrazów Xen PVH z opcją „-kernel”;
  • W emulatorze architektury MIPS dodano wsparcie dla wielowątkowej emulacji z wykorzystaniem klasycznego generatora kodu TCG (Tiny Code Generator). Dodano również wsparcie dla emulacji CPU I7200 (nanoMIPS32 ISA) i I6500 (MIPS64R6 ISA), możliwość obsługi żądań typu CPU z wykorzystaniem protokołu QMP (QEMU Management Protocol), dodano wsparcie dla rejestrów konfiguracyjnych SAARI i SAAR. Ulepszono działanie maszyn wirtualnych typu Fulong 2E. Zaktualizowano implementację Interthread Communication Unit;
  • W emulatorze architektury PowerPC dodano wsparcie dla emulacji kontrolera przerwań XIVE, rozszerzono wsparcie POWER9, dla serii P dodano możliwość gorącego podłączenia głównych mostów PCI (PHB, PCI host bridge). Domyślnie włączono ochronę przed atakami Spectre i Meltdown;
  • W emulatorze architektury RISC-V dodano wsparcie dla emulacji PCI i USB. Wbudowany serwer debugowania (gdbserver) zrealizował wsparcie dla definiowania list rejestrów w plikach XML. Dodano wsparcie dla pól mstatus TSR, TW i TVM;
  • Do emulatora architektury s390 dodano wsparcie dla modelu CPU z14 GA 2 oraz wsparcie dla emulacji rozszerzeń instrukcji dotyczących obliczeń zmiennoprzecinkowych i operacji wektorowych. Do vfio-ap dodano możliwość gorącego podłączenia urządzeń;
  • W emulatorze procesorów rodziny Tensilica Xtensa poprawiono wsparcie dla SMP w systemie Linux oraz dodano wsparcie rozszerzenia FLIX (rozszerzenie instrukcji o elastycznej długości);
  • Do interfejsu graficznego dodano opcję ‘-display spice-app’ do konfiguracji i uruchamiania klienta dostępu zdalnego Spice z interfejsem podobnym do GTK QEMU;
  • W implementacji serwera VNC dodano wsparcie dla zarządzania dostępem za pomocą opcji tls-authz/sasl-authz;
  • W QMP (QEMU Management Protocol) dodano wsparcie dla centralnego/zewnętrznego (Out-of-band) wykonywania poleceń oraz wprowadzono dodatkowe polecenia do pracy z urządzeniami blokowymi;
  • W VFIO dodano implementację interfejsu EDID dla obsługiwanych mdev (Intel vGPU), co pozwala na zmianę rozdzielczości ekranu przy użyciu opcji xres i yres;
  • Dla Xen dodano nowe urządzenie ‘xen-disk’, które samodzielnie może stworzyć backend dysku dla Xen PV (bez korzystania z xenstore). Zwiększono wydajność backendu dysku Xen PV oraz dodano możliwość zmiany rozmiaru dysku;
  • W sieciowych urządzeniach blokowych rozszerzono możliwości diagnostyki i śledzenia, poprawiono kompatybilność klienta z problematycznymi implementacjami serwera NBD. W qemu-nbd dodano opcje ‘—bitmap’, ‘—list’ oraz ‘—tls-authz’;
  • Do emulowanego urządzenia IDE/via dodano wsparcie dla trybu PCI IDE;
  • Dodano wsparcie dla użycia algorytmu lzfse do kompresji obrazów dmg. Dla formatu qcow2 dodano wsparcie dla podłączania zewnętrznych plików z danymi. Operacje rozpakowywania qcow2 przeniesiono do osobnego wątku. W obrazach vmdk dodano wsparcie dla operacji ‘blockdev-create’;
  • W urządzeniu blokowym virtio-blk dodano wsparcie dla operacji DISCARD (informowanie o zwolnieniu bloków) oraz WRITE_ZEROES (zerowanie zakresu logicznych bloków);
  • W urządzeniu pvrdma zrealizowano wsparcie dla usług RDMA Management Datagram (MAD);
  • Wprowadzono zmiany, które łamią kompatybilność wstecz. Na przykład, zamiast opcji „handle” w „-fsdev” i „-virtfs” należy używać opcji „local” lub „proxy”. Usunięto opcje „-virtioconsole” (zastąpiona przez „-device virtconsole”), „-no-frame”, „-clock”, „-enable-hax” (zastąpiona przez „-accel hax”). Usunięto urządzenie „ivshmem” (należy używać „ivshmem-doorbell” lub „ivshmem-plain”). Wsparcie dla kompilacji z SDL1.2 zostało zakończone (należy używać SDL2).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster