Premiera nowej wersji QEMU 7.1, wersja that przedstawia szereg ulepszeń dla różnych emulatorów z których wyróżniają się zmiany dla ARM, Risc-V, a także ulepszenie dla Linuksa w odniesieniu do transferu pamięci. W ramach przygotowań do wersji 7.1 ponad 2800 zmian zostało wprowadzonych przez 238 programistów.
Nowi użytkownicy QEMU powinni wiedzieć, że pozwala uruchomić program zbudowany dla jednej platformy sprzętowej w systemie o zupełnie innej architekturze, na przykład uruchamiając aplikację ARM na komputerze zgodnym z x86.
W trybie wirtualizacji w QEMU wydajność wykonywania kodu w odizolowanym środowisku jest podobna do wydajności systemu sprzętowego ze względu na bezpośrednie wykonywanie instrukcji na procesorze oraz użycie hiperwizora Xen lub modułu KVM.
Główne nowości QEMU 7.1
W tej nowej wersji, która jest prezentowana, dla Linuksa zaimplementowana jest opcja zero-copy-sendco pozwala organizować transfer stron pamięci podczas migracja na żywo bez buforowania pośredniego.
Poza tym, QMP (protokół maszynowy QEMU) dodaje możliwość użycia polecenia block-export-add do eksportu obrazów NBD z danymi strony w stanie „brudnym”. Nowe polecenia „query-stats” i „query-stats-schema” zostały również dodane do statystyk zapytań z różnych podsystemów QEMU.
Kolejną zmianą, która wyróżnia się w nowej wersji QEMU, jest to, że agent gościa poprawiona kompatybilność z platformą Solaris i dodano nowe polecenia „guest-get-diskstats” i „guest-get-cpustats”, aby wyświetlić stan procesora i dysku. Dodano informacje wyjściowe NVMe SMART do polecenia „guest-get-disks” oraz informacje wyjściowe informacji o typie magistrali NVMe do polecenia „guest-get-fsinfo”.
Oprócz tego należy również zauważyć, że został dodany nowy emulator LoongArch do obsługi wersji 64-bitowej architektury zestawu instrukcji LoongArch (LA64). Emulator obsługuje procesory Loongson 3 5000 i mostki północne Loongson 7A1000.
Z drugiej strony podkreślono również, że emulator ARM wdrożył nowe typy emulowanych maszyn: Aspeed AST1030 SoC, Qualcomm i AST2600/AST1030 (fby35), plus obsługa emulacji procesorów Cortex-A76 i Neoverse-N1, a także rozszerzeń procesorów SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) oraz poleceń blokujących wycieki wewnętrznej pamięci podręcznej podczas wykonywania instrukcji spekulacyjnych w procesorze.
Podczas gdy architektura emulatora RISC-V dodał obsługę nowych rozszerzeń zestawu instrukcji (ISA) zdefiniowane w specyfikacji 1.12.0, a także dodano obsługę rozszerzenia Sdtrig i ulepszoną obsługę instrukcji wektorowych.
Z innych zmian, które się wyróżniają tej nowej wersji:
- Ulepszone opcje debugowania.
- Dodano obsługę TPM (Trusted Platform Module) do emulowanej maszyny „virt” i dodano obsługę Ibex SPI do maszyny „OpenTitan”.
- Emulator x86 dla KVM dodał obsługę wirtualizacji mechanizmu śledzenia LBR (Last Branch Record).
- Zaimplementowano emulację obsługi przerwań GICv4 dla maszyn „wirtualnych”.
- Emulator architektury HPPA oferuje nowe oprogramowanie układowe oparte na SeaBIOS v6, które obsługuje użycie klawiatury PS/2 w menu startowym.
- Ulepszona emulacja portu szeregowego.
- Dodano dodatkowe czcionki konsoli STI.
- Emulator architektury MIPS dla płyt Nios2 (-machine 10m50-ghrd) implementuje emulację kontrolera przerwań wektorowych i zestaw rejestrów cieni.
- Ulepszona obsługa wyjątków.
- Dodano możliwość użycia do 4 urządzeń 16550A UART w emulatorze architektury OpenRISC dla maszyny „or1k-sim”.
- Emulator architektury 390x zapewnia obsługę rozszerzeń Vector-Enhancements Facility 2 (VEF 2). BIOS s390-ccw ma możliwość uruchamiania z dysków o rozmiarze sektora innym niż 512 bajtów.
- Dodano obsługę jąder lx106 i kodów obiektowych testowania pamięci podręcznej do emulatora architektury Xtensa.
W końcu jeśli chcesz dowiedzieć się więcej na ten temat o zmianach i nowościach, które są prezentowane w nowej wersji QEMU 7.1, można sprawdzić szczegóły i więcej w poniższy link