QEMU 6.0 emülatörünün piyasaya sürülmesi

QEMU 6.0 projesinin sürümü sunuldu. Bir öykünücü olarak QEMU, bir donanım platformu için oluşturulmuş bir programı tamamen farklı bir mimariye sahip bir sistemde çalıştırmanıza, örneğin x86 uyumlu bir PC'de bir ARM uygulaması çalıştırmanıza olanak tanır. QEMU'daki sanallaştırma modunda, komutların doğrudan CPU üzerinde yürütülmesi ve Xen hiper yönetici veya KVM modülünün kullanılması nedeniyle izole bir ortamda kod yürütme performansı bir donanım sistemine yakındır.

Proje ilk olarak Fabrice Bellard tarafından x86 platformu için oluşturulmuş Linux yürütülebilir dosyalarının x86 olmayan mimarilerde çalışmasına izin vermek için oluşturuldu. Geliştirme yılları boyunca 14 donanım mimarisi için tam öykünme desteği eklendi, öykünülmüş donanım cihazlarının sayısı 400'ü aştı. Sürüm 6.0'a hazırlanırken 3300 geliştiriciden 268'den fazla değişiklik yapıldı.

QEMU 6.0'da eklenen önemli iyileştirmeler:

  • NVMe denetleyici emülatörü, NVMe 1.4 spesifikasyonuyla uyumlu hale getirildi ve bölgelere ayrılmış ad alanları, çok yollu G/Ç ve sürücüde uçtan uca veri şifreleme için deneysel destekle donatıldı.
  • Cihaz emülasyonunu harici işlemlere taşımak için "-machine x-remote" ve "-device x-pci-proxy-dev" deneysel seçenekleri eklendi. Bu modda, şu anda yalnızca lsi53c895 SCSI bağdaştırıcısının emülasyonu desteklenmektedir.
  • RAM içeriklerinin anlık görüntülerini oluşturmak için deneysel destek eklendi.
  • Blok cihazlarını dışa aktarmak için bir FUSE modülü eklendi ve konuk sistemde kullanılan herhangi bir blok cihazın durumunun bir dilimini bağlamanıza olanak tanıdı. Dışa aktarma, QMP bloğu-export-add komutu aracılığıyla veya qemu-storage-daemon yardımcı programında "--export" seçeneği aracılığıyla gerçekleştirilir.
  • ARM emülatörü, ARMv8.1-M 'Helium' mimarisi ve Cortex-M55 işlemcilerin yanı sıra genişletilmiş ARMv8.4 TTST, SEL2 ve DIT talimatları için destek ekler. ARM panoları mps3-an524 ve mps3-an547 için de destek eklendi. Xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx ve sabrelite kartlar için ek cihaz emülasyonu uygulandı.
  • ARM için, sistem ve kullanıcı ortamı düzeylerinde emülasyon modlarında, ARMv8.5 MTE (MemTag, Bellek Etiketleme Uzantısı) uzantısı desteği uygulanmıştır; bu, etiketleri her bellek ayırma işlemine bağlamanıza ve gerektiğinde bir işaretçi kontrolü düzenlemenize olanak tanır. doğru etiketle ilişkilendirilmesi gereken belleğe erişim. Uzantı, halihazırda serbest bırakılmış bellek bloklarına erişim, arabellek taşmaları, başlatma öncesi erişimler ve geçerli bağlam dışında kullanımdan kaynaklanan güvenlik açıklarından yararlanılmasını engellemek için kullanılabilir.
  • 68k mimarisi emülatörü, performansı optimize etmek için sanal aygıtları kullanan yeni bir tür taklit makine "virt" için destek ekledi.
  • x86 öykünücüsü, konuk sistemde kullanılan işlemci kayıtlarını şifrelemek için AMD SEV-ES (Güvenli Şifrelenmiş Sanallaştırma) teknolojisini kullanma yeteneğini ekleyerek, konuk sistemi açıkça bunlara erişim izni vermediği sürece kayıtların içeriklerini ana bilgisayar ortamında erişilemez hale getirir.
  • Klasik TCG (Tiny Code Generator) kod oluşturucu, x86 sistemlerini taklit ederken, ayrıcalıklı bellek sayfalarına erişimi korumak için kullanılabilen PKS (Koruma Anahtarları Denetleyicisi) mekanizması desteğini uygular.
  • Çin Loongson-3 işlemcilerini destekleyen MIPS mimarisi emülatörüne yeni bir tür emüle edilmiş makine "virt" eklendi.
  • Öykünülmüş makineler için PowerPC mimarisi öykünücüsüne “powernv”, harici BMC denetleyicileri için destek eklendi. Öykünülmüş pseries makineleri için, belleği ve CPU'yu çalışırken çıkarmaya çalışırken arızaların bildirilmesi sağlanır.
  • Qualcomm Hexagon işlemcilerini DSP ile taklit etmek için destek eklendi.
  • Klasik TCG (Tiny Code Generator) kod oluşturucu, yeni Apple M1 ARM çipine sahip sistemlerdeki macOS ana bilgisayar ortamlarını destekler.
  • Microchip PolarFire kartları için RISC-V mimarisi emülatörü, QSPI NOR flash'ı destekler.
  • Tricore emülatörü artık Infineon TC27x SoC'yi taklit eden yeni TriBoard kart modelini destekliyor.
  • ACPI öykünücüsü, konuk sistemlerdeki ağ bağdaştırıcılarına, PCI veri yoluna bağlanma sıralarından bağımsız olarak ad atama yeteneği sağlar.
  • virtiofs, konuk performansını artırmak için FUSE_KILLPRIV_V2 seçeneği için destek ekledi.
  • VNC, pencere boyutuna bağlı olarak virtio-vga'da imleç şeffaflığı ve ekran çözünürlüğünü ölçeklendirme desteği ekledi.
  • QMP (QEMU Makine Protokolü), yedekleme görevlerini gerçekleştirirken eşzamansız paralel erişim için destek ekledi.
  • USB emülatörü, USB cihazlarıyla çalışırken oluşturulan trafiği Wireshark'ta daha sonra incelenmek üzere ayrı bir pcap dosyasına kaydetme özelliğini ekledi.
  • Qcow2 anlık görüntülerini yönetmek için yeni QMP komutları, anlık görüntüyü yükle, anlık görüntüyü kaydet ve anlık görüntüyü sil eklendi.
  • CVE-2020-35517 ve CVE-2021-20263 güvenlik açıkları sanal olarak düzeltildi. İlk sorun, ana bilgisayar ortamıyla paylaşılan bir dizinde ayrıcalıklı bir kullanıcı tarafından konuk sisteminde özel cihazlar dosyası oluşturularak konuk sistemden ana bilgisayar ortamına erişime izin verir. İkinci sorun, 'xattrmap' seçeneğindeki genişletilmiş özniteliklerin işlenmesindeki bir hatadan kaynaklanır ve yazma izinlerinin göz ardı edilmesine ve konuk sistemi içinde ayrıcalıkların yükseltilmesine neden olabilir.

Kaynak: opennet.ru

Yorum ekle