QEMU 7.1 implementuje ulepszenia z transferem pamięci w systemie Linux
Zapowiedziano wydanie QEMU w wersji 7.1, zawierającej szereg ulepszeń dla różnych emulatorów , w tym przede wszystkim zmiany dla ARM i RISC-V, a także usprawnienia transferu pamięci dla Linuksa. W ramach przygotowań do wersji 7.1 238 programistów wprowadziło ponad 2800 zmian.
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 przeznaczonej dla systemu Linux zaimplementowano opcję zero-copy-send , która umożliwia organizację transferów stron pamięci podczas migracji na żywo bez pośredniego buforowania.
Ponadto QMP (protokół maszynowy QEMU) dodaje możliwość użycia polecenia `block-export-add` do eksportowania obrazów NBD z danymi stronicowymi w stanie „brudnym”. Dodano również nowe polecenia `query-stats` i `query-stats-schema` do pobierania statystyk z różnych podsystemów QEMU.
Kolejną istotną zmianą w nowej wersji QEMU jest lepsza kompatybilność agenta gościa z platformą Solaris oraz dodanie nowych poleceń: „guest-get-diskstats” i „guest-get-cpustats” do wyświetlania stanu dysku i procesora. Do polecenia „guest-get-disks” dodano informacje NVMe SMART, a do polecenia „guest-get-fsinfo” dodano informacje o typie magistrali NVMe.
Dodatkowo dodano nowy emulator LoongArch, który obsługuje 64-bitową wersję architektury zestawu instrukcji LoongArch (LA64). Emulator obsługuje procesory Loongson 3 5000 i mostki północne Loongson 7A1000.
Ponadto podkreślono, że emulator ARM zaimplementował nowe typy emulowanych maszyn: Aspeed AST1030 SoC, Qualcomm i AST2600/AST1030 (fby35), a także obsługę emulacji procesorów Cortex-A76 i Neoverse-N1, a także rozszerzenia procesora SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) i polecenia blokujące wycieki wewnętrznej pamięci podręcznej podczas wykonywania spekulatywnych instrukcji w procesorze.
Natomiast emulator architektury RISC-V dodał obsługę nowych rozszerzeń zestawu instrukcji (ISA) zdefiniowanych w specyfikacji 1.12.0, a także dodatkową obsługę rozszerzenia Sdtrig i ulepszoną obsługę instrukcji wektorowych.
Inne istotne zmiany w tej nowej wersji obejmują:
- 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.
Na koniec, jeśli chcesz dowiedzieć się więcej na temat zmian i nowych funkcji w tej nowej wersji QEMU 7.1, szczegółowe informacje i dodatkowe informacje znajdziesz pod poniższym linkiem.