ืฉื—ืจื•ืจ ืืžื•ืœื˜ื•ืจ QEMU 4.1

ืฉื”ื•ื’ืฉ ืขืœ ื™ื“ื™ ืฉื—ืจื•ืจ ื”ืคืจื•ื™ืงื˜ QEMU 4.1. ื‘ืชื•ืจ ืืžื•ืœื˜ื•ืจ, QEMU ืžืืคืฉืจ ืœืš ืœื”ืจื™ืฅ ืชื•ื›ื ื™ืช ื”ื™ื“ื•ืจื™ืช ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช ื—ื•ืžืจื” ืื—ืช ืขืœ ืžืขืจื›ืช ืขื ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉื•ื ื” ืœื—ืœื•ื˜ื™ืŸ, ืœืžืฉืœ, ืœื”ืคืขื™ืœ ื™ื™ืฉื•ื ARM ืขืœ ืžื—ืฉื‘ ืชื•ืื x86. ื‘ืžืฆื‘ ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ื‘-QEMU, ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื‘ื™ืฆื•ืข ืงื•ื“ ื‘ืกื‘ื™ื‘ื” ืžื‘ื•ื“ื“ืช ืงืจื•ื‘ื™ื ืœืžืขืจื›ืช ื”ืžืงื•ืจื™ืช ืขืงื‘ ื‘ื™ืฆื•ืข ื™ืฉื™ืจ ืฉืœ ื”ื•ืจืื•ืช ืขืœ ื”-CPU ื•ื”ืฉื™ืžื•ืฉ ื‘-Xen hypervisor ืื• ืžื•ื“ื•ืœ KVM.

ื”ืคืจื•ื™ืงื˜ ื ื•ืฆืจ ื‘ืžืงื•ืจ ืขืœ ื™ื“ื™ Fabrice Bellard ื›ื“ื™ ืœืืคืฉืจ ืœืงื•ื‘ืฆื™ ื”ืคืขืœื” ืฉืœ ืœื™ื ื•ืงืก ืฉื ื‘ื ื• ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช x86 ืœืคืขื•ืœ ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืฉืื™ื ืŸ x86. ื‘ืžื”ืœืš ืฉื ื•ืช ื”ืคื™ืชื•ื—, ื ื•ืกืคื” ืชืžื™ื›ืช ืืžื•ืœืฆื™ื” ืžืœืื” ืขื‘ื•ืจ 14 ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื—ื•ืžืจื”, ืžืกืคืจ ื”ืชืงื ื™ ื”ื—ื•ืžืจื” ื”ืžื—ื•ืœืงื™ื ืขืœื” ืขืœ 400. ืœืงืจืืช ื’ืจืกื” 4.1 ื‘ื•ืฆืขื• ื™ื•ืชืจ ืž-2000 ืฉื™ื ื•ื™ื™ื ืž-276 ืžืคืชื—ื™ื.

ืžืคืชื— ืฉื™ืคื•ืจื™ืื ื•ืกืฃ ื‘-QEMU 4.1:

  • ืชืžื™ื›ื” ื‘ื“ื’ืžื™ Hygon Dhyana ื•-Intel SnowRidge CPU ื ื•ืกืคื” ืœืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” x86. ื ื•ืกืคื” ืืžื•ืœืฆื™ื” ืฉืœ ืกื™ื•ืžืช RDRAND (ืžื—ื•ืœืœ ืžืกืคืจื™ื ืคืกืื•ื“ื•-ืืงืจืื™ื™ื ืฉืœ ื—ื•ืžืจื”). ื ื•ืกืคื• ื“ื’ืœื™ื
    md-clear ื•-mds-no ืœืฉืœื™ื˜ื” ื‘ื”ื’ื ื” ืžืคื ื™ ืชืงื™ืคื” MDS (ื“ื’ื™ืžืช ื ืชื•ื ื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช) ืขืœ ืžืขื‘ื“ื™ ืื™ื ื˜ืœ. ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœืงื‘ื•ืข ื˜ื•ืคื•ืœื•ื’ื™ื•ืช ืฉืœ ืžืขื’ืœื™ื ืžืฉื•ืœื‘ื™ื ื‘ืืžืฆืขื•ืช ื”ื“ื’ืœ "-smp ...,dies=". ื ื™ื”ื•ืœ ื’ืจืกืื•ืช ื™ื•ืฉื ืขื‘ื•ืจ ื›ืœ ื“ื’ืžื™ ื”ืžืขื‘ื“ x86;

  • ืžื ื”ืœ ื”ืชืงืŸ ื‘ืœื•ืง SSH ื”ื•ืขื‘ืจ ืžืฉื™ืžื•ืฉ libssh2 ืขืœ ืœื™ื‘ืฉ;
  • ืžื ื”ืœ ื”ืชืงืŸ virtio-gpu (GPU ื•ื™ืจื˜ื•ืืœื™ ืฉืคื•ืชื— ื›ื—ืœืง ืžื”ืคืจื•ื™ืงื˜ ื•ื™ืจื’'ื™ืœ) ื”ื•ืกืคื” ืชืžื™ื›ื” ืœื”ืขื‘ืจืช ืคืขื•ืœื•ืช ืจื™ื ื“ื•ืจ ื“ื•-ืžืžื“ื™ื•ืช/ืชืœืช-ืžืžื“ื™ื•ืช ืœืชื”ืœื™ืš ื—ื™ืฆื•ื ื™ ืฉืœ vhost-user (ืœื“ื•ื’ืžื”, vhost-user-gpu);
  • ืืžื•ืœื˜ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช ARM ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ื”ืจื—ื‘ื” ARMv8.5-RNG ืœื”ืคืงืช ืžืกืคืจื™ื ืคืกืื•ื“ื• ืืงืจืื™ื™ื. ืชืžื™ื›ื” ื‘ืืžื•ืœืฆื™ื™ืช FPU ื™ื•ืฉืžื” ืขื‘ื•ืจ ืฉื‘ื‘ื™ื ืžืžืฉืคื—ืช Cortex-M ื•ื‘ืขื™ื•ืช ื‘ืืžื•ืœืฆื™ื™ืช FPU ืขื‘ื•ืจ Cortex-R5F ื ืคืชืจื•. ื”ื•ืฆืขื” ืžืขืจื›ืช ื—ื“ืฉื” ืœื”ื’ื“ืจืช ืืคืฉืจื•ื™ื•ืช ื‘ื ื™ื™ื”, ืฉืชื•ื›ื ื ื” ื‘ืกื’ื ื•ืŸ Kconfig. ืขื‘ื•ืจ SoC Exynos4210, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื‘ืงืจื™ PL330 DMA;
  • ืืžื•ืœื˜ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช MIPS ืฉื™ืคืจ ืืช ื”ืชืžื™ื›ื” ื‘ื”ื•ืจืื•ืช MSA ASE ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืกื“ืจ ื‘ืชื™ื ื’ื“ื•ืœ-ืื ื“ื™ืืŸ ื•ื™ื™ืฉืจ ืืช ื”ื˜ื™ืคื•ืœ ื‘ื—ืœื•ืงื” ื‘ืืคืก ืขื ื—ื•ืžืจืช ื™ื™ื—ื•ืก. ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืืžื•ืœืฆื™ื” ืฉืœ ื”ื•ืจืื•ืช MSA ืขื‘ื•ืจ ื—ื™ืฉื•ื‘ื™ื ืฉืœืžื™ื ื•ืคืขื•ืœื•ืช ืชืžื•ืจื” ื”ื•ื’ื“ืœื•;
  • ืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ PowerPC ืชื•ืžืš ื›ืขืช ื‘ื”ืขื‘ืจื” ืœ-NVIDIA V100/NVLink2 GPUs ื‘ืืžืฆืขื•ืช VFIO. ืขื‘ื•ืจ pseries, ื™ื•ืฉืžื” ื”ืืฆื” ืฉืœ ืืžื•ืœืฆื™ื™ืช ื‘ืงืจ ืคืกื™ืงื” XIVE ื•ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื—ื™ื‘ื•ืจ ื—ื ืฉืœ ื’ืฉืจื™ PCI. ื‘ื•ืฆืขื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืœืืžื•ืœืฆื™ื” ืฉืœ ื”ื•ืจืื•ืช ื•ืงื˜ื•ืจื™ื•ืช (Altivec/VSX);
  • ื“ื’ื ื—ื•ืžืจื” ื—ื“ืฉ ื ื•ืกืฃ ืœืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” RISC-V - "ืกืคื™ื™ืง". ื ื•ืกืคื” ืชืžื™ื›ื” ืขื‘ื•ืจ ISA 1.11.0. ืงืจื™ืืช ืžืขืจื›ืช 32 ืกื™ื‘ื™ื•ืช ABI ืฉื•ืคืจื”, ื˜ื™ืคื•ืœ ื‘ื”ื•ืจืื•ืช ืœื ื—ื•ืงื™ื•ืช ืฉื•ืคืจ, ื•-debugger ื”ืžื•ื‘ื ื” ืฉื•ืคืจ. ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื˜ื•ืคื•ืœื•ื’ื™ื™ืช ื”ืžืขื‘ื“ ื‘ืขืฅ ื”ืžื›ืฉื™ืจ;
  • ืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” s390 ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ื”ื“ืžื™ื™ืช ื›ืœ ื”ื”ื•ืจืื•ืช ื”ื•ื•ืงื˜ื•ืจื™ื•ืช ืฉืœ ืงื‘ื•ืฆืช "Vector Facility" ื•ื”ื•ืกื™ืฃ ืืœืžื ื˜ื™ื ื ื•ืกืคื™ื ืœืชืžื™ื›ื” ื‘ืžืขืจื›ื•ืช gen15 (ื›ื•ืœืœ ืชืžื™ื›ื” ื ื•ืกืคืช ืขื‘ื•ืจ AP Queue Interruption Facility ืขื‘ื•ืจ vfio-ap). ืžื™ื•ืฉื ืชืžื™ื›ืช BIOS ืขื‘ื•ืจ ืืชื—ื•ืœ ืž-ECKD DASD ื”ืงืฉื•ืจ ืœืžืขืจื›ืช ื”ืื•ืจื—ืช ื‘ืืžืฆืขื•ืช vfio-ccw;
  • ื‘ืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” SPARC ืขื‘ื•ืจ ืžืขืจื›ื•ืช sun4m, ื‘ืขื™ื•ืช ื‘ืฉื™ืžื•ืฉ ื‘ื“ื’ืœ "-vga none" ืขื‘ื•ืจ OpenBIOS ื ืคืชืจื•;
  • ืืžื•ืœื˜ื•ืจ ื”ืžืขื‘ื“ื™ื ื”ืžืฉืคื—ืชื™ื™ื Tensilica Xtensa ื›ื•ืœืœ ืืคืฉืจื•ื™ื•ืช ืœ-MPU (ื™ื—ื™ื“ืช ื”ื’ื ืช ื–ื™ื›ืจื•ืŸ) ื•ื’ื™ืฉื” ื‘ืœืขื“ื™ืช;
  • ื”ืืคืฉืจื•ืช "-salvage" ื ื•ืกืคื” ืœืคืงื•ื“ื” "qemu-img convert" ื›ื“ื™ ืœื”ืฉื‘ื™ืช ืืช ื”ืชืจืกืงื•ืช ืชื”ืœื™ืš ื”ืžืจืช ื”ืชืžื•ื ื” ื‘ืžืงืจื” ืฉืœ ืฉื’ื™ืื•ืช ืงืœื˜/ืคืœื˜ (ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœืฉื—ื–ืจ ืงื‘ืฆื™ qcow2 ืฉื ื™ื–ื•ืงื• ื—ืœืงื™ืช). ื‘ืงื‘ื•ืฆื”
    "qemu-img rebase" ืคื•ืขืœ ื›ืืฉืจ ืขื“ื™ื™ืŸ ืœื ื ื•ืฆืจ ืงื•ื‘ืฅ ื’ื™ื‘ื•ื™ ืขื‘ื•ืจ ืงื•ื‘ืฅ ื”ืงืœื˜;

  • ื”ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืคื ื•ืช ืคืœื˜ ืžืื•ืจื’ืŸ ื‘ืืžืฆืขื•ืช ื˜ื›ื ื•ืœื•ื’ื™ื™ืช "semihosting" (ืžืืคืฉืจืช ืœืžื›ืฉื™ืจ ื”ืžื“ืžื” ืœื”ืฉืชืžืฉ ื‘-stdout, stderr ื•-stdin ื›ื“ื™ ืœื™ืฆื•ืจ ืงื‘ืฆื™ื ื‘ืฆื“ ื”ืžืืจื—) ืœ-Chardev Backend ("-semihosting-config enable=on,target=native ,chardev=[ ID]");
  • ืžื ื”ืœ ื”ื”ืชืงืŸ ื‘ืœื•ืง VMDK ืชื•ืžืš ื›ืขืช ื‘ืชืช-ืคื•ืจืžื˜ seSparse ื‘ืžืฆื‘ ืงืจื™ืื” ื‘ืœื‘ื“;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ืœื‘ืงืจ SiFive GPIO ื‘ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ ืืžื•ืœืฆื™ื™ืช GPIO.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”