QEMU 6.0 przybywa z ulepszeniami i obsługą ARM, opcjami eksperymentalnymi i nie tylko

QEMU

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.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.