Uruchomienie nowa wersja projektu QEMU 6.0 w którym ponad 3300 zmian od 268 programistów zostało wprowadzonych w przygotowaniu i których zmiany obejmują ulepszenia sterowników, obsługę nowych platform i opcje eksperymentalne.
Dla tych, którzy nie są zaznajomieni z QEMU, powinniście wiedzieć, że jest to oprogramowanie, które umożliwia uruchomienie skompilowanego programu dla platformy sprzętowej w systemie o zupełnie innej architekturze, na przykład w celu uruchomienia aplikacji ARM na komputerze PC zgodnym z x86.
W trybie wirtualizacji w QEMU wydajność wykonania kodu w środowisku piaskownicy jest zbliżona do systemu sprzętowego dzięki bezpośredniemu wykonywaniu instrukcji na CPU i wykorzystaniu hiperwizora Xen lub modułu KVM.
Główne nowości QEMU 6.0
W nowej wersji Qemu 6.0 Emulator sterownika NVMe jest teraz zgodny ze specyfikacją NVMe 1.4 i obejmuje eksperymentalną obsługę strefowych przestrzeni nazw, wielościeżkowych operacji we / wy i kompleksowego szyfrowania pamięci masowej.
Emulator ARM dodaje obsługę architektury helowej ARMv8.1-M oraz procesory Cortex-M55, a także rozszerzone instrukcje ARMv8.4 TTST, SEL2 i DIT. Dodano również obsługę płyt ARM mps3-an524 i mps3-an547. Dodatkowa emulacja urządzenia jest zaimplementowana dla płyt xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx i sabrelite.
W przypadku ARM w środowisku użytkownika i trybach emulacji na poziomie systemu, Zaimplementowano obsługę rozszerzenia ARMv8.5 MTE (MemTag, Memory Tagging Extension), który umożliwia powiązanie tagów z każdą operacją mapowania pamięci i zorganizowanie sprawdzania wskaźnika podczas uzyskiwania dostępu do pamięci, która musi być powiązana z odpowiednim znacznikiem. Rozszerzenie może służyć do blokowania wykorzystania luk w zabezpieczeniach spowodowanych dostępem do już zwolnionych bloków pamięci, przepełnienia bufora, wywołań poprzedzających inicjalizację i używania poza bieżącym kontekstem.
Emulator 68k dodaje obsługę nowego typu emulowanej maszyny "virt" używanie urządzeń virtio do optymalizacji wydajności, podczas gdy emulator architektury x86 dodaje możliwość korzystania z technologii AMD SEV-ES (bezpieczna szyfrowana wirtualizacja) w celu zaszyfrowania rejestrów procesorów używanych w systemie gościa, dzięki czemu zawartość rejestrów jest niedostępna dla środowiska hosta, jeśli system gościa nie udzieli do nich jawnie dostępu.
Również w Qemu 6.0 dodano opcje eksperymentalne „-Machine x-remote” i „-device x-pci-proxy-dev”, aby przenieść emulację urządzenia do procesów zewnętrznych. W tym trybie obecnie obsługiwana jest tylko emulacja adaptera SCSI lsi53c895.
Jak również nowy moduł FUSE do eksportu urządzeń blokowych, co pozwala na zamontowanie części stanu dowolnego urządzenia blokowego używanego w gościu. Eksport odbywa się za pomocą polecenia block-export-add QMP lub opcji „–export” w narzędziu qemu-storage-daemon.
Z drugiej strony wspomina się, że Virtualofs rozwiązuje luki:
- CVE-2020-35517 - umożliwia dostęp do środowiska hosta z systemu gościa poprzez utworzenie specjalnego pliku urządzenia w systemie gościa przez uprzywilejowanego użytkownika w katalogu współdzielonym ze środowiskiem hosta.
- CVE-2021-20263 - spowodowane błędem w obsłudze atrybutów rozszerzonych w opcji „xattrmap” i może powodować ignorowanie uprawnień do zapisu i eskalacji uprawnień w ramach gościa.
Spośród innych zmian, które wyróżniają się w nowej wersji:
- Dodano eksperymentalną obsługę tworzenia migawek zawartości pamięci RAM.
- Dodano obsługę emulacji procesorów Qualcomm Hexagon z DSP.
- Klasyczny generator kodu TCG (Tiny Code Generator) jest kompatybilny ze środowiskami hosta macOS w systemach z nowym chipem Apple M1 ARM.
- Emulator RISC-V dla płyt Microchip PolarFire obsługuje QSPI NOR flash.
- Emulator Tricore obsługuje teraz nowy model płyt TriBoard, które emulują SoC Infineon TC27x.
- Emulator ACPI oferuje możliwość nadawania nazw kartom sieciowym w systemach gości, niezależnie od kolejności podłączania do magistrali PCI.
- Virtiofs dodaje obsługę opcji FUSE_KILLPRIV_V2, aby poprawić wydajność gościa.
- VNC dodaje obsługę przezroczystości kursora i obsługę skalowania rozdzielczości ekranu w virtio-vga na podstawie rozmiaru okna.
- QMP (QEMU Machine Protocol) dodaje obsługę asynchronicznego dostępu równoległego podczas wykonywania zadań tworzenia kopii zapasowych.
- Emulator USB dodał możliwość zapisywania ruchu generowanego podczas pracy z urządzeniami USB w osobnym pliku pcap do późniejszego wglądu w Wireshark.
- Do zarządzania migawkami qcow2 dodano nowe polecenia QMP load-snapshot, save-snapshot i delete-snapshot.
Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły W poniższym linku.