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

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

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

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

  • ืชืžื™ื›ื” ื‘ื”ืจื—ื‘ื•ืช ื”ื•ืจืื•ืช ARMv8+ ื ื•ืกืคื” ืœืืžื•ืœื˜ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช ARM: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT ื•-BTI. ื ื•ืกืคื” ืชืžื™ื›ื” ืœื—ื™ืงื•ื™ ืœื•ื—ื•ืช Musca ื•-MPS2. ืืžื•ืœืฆื™ื™ืช ARM PMU (ื™ื—ื™ื“ืช ื ื™ื”ื•ืœ ื›ื•ื—) ืžืฉื•ืคืจืช. ืืœ ื”ืจืฆื™ืฃ ืžืขืœื•ืช ื”ื•ืกื™ืคื• ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ื™ื•ืชืจ ืž-255 GB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ื•ืชืžื™ื›ื” ื‘ืชืžื•ื ื•ืช U-boot ืขื ืกื•ื’ "noload";

  • ื‘ืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” x86 ื‘ืžื ื•ืข ื”ืืฆืช ื”ื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” HAX (Intel Hardware Accelerated Execution) ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ืขื‘ื•ืจ ืžืืจื—ื™ื ืชื•ืืžื™ POSIX ื›ื’ื•ืŸ Linux ื•-NetBSD (ื‘ืขื‘ืจ ืจืง ืคืœื˜ืคื•ืจืžืช Darwin ื ืชืžื›ื”). ื‘ืืžื•ืœื˜ื•ืจ ืขืจื›ืช ื”ืฉื‘ื‘ื™ื Q35 (ICH9) ืขื‘ื•ืจ ื™ืฆื™ืื•ืช PCIe ื”ืจืืฉื™ื•ืช, ื ื™ืชืŸ ืœื”ื›ืจื™ื– ื›ืขืช ื‘ืื•ืคืŸ ืื•ืคืฆื™ื•ื ืœื™ ืขืœ ื”ืžื”ื™ืจื•ืช ื”ืžืจื‘ื™ืช (16GT/s) ื•ืžืกืคืจ ืงื•ื•ื™ ื”ื—ื™ื‘ื•ืจ (x32) ื”ืžื•ื’ื“ืจื™ื ื‘ืžืคืจื˜ PCIe 4.0 (ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืชืื™ืžื•ืช, 2.5GT ื”ื•ื ืžื•ืชืงืŸ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืขื‘ื•ืจ ืกื•ื’ื™ื ื™ืฉื ื™ื ื™ื•ืชืจ ืฉืœ ืžื›ื•ื ื•ืช QEMU /s ื•-x1). ืืคืฉืจ ืœื˜ืขื•ืŸ ืชืžื•ื ื•ืช Xen PVH ืขื ืืคืฉืจื•ืช "-kernel";
  • ืืžื•ืœื˜ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช MIPS ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืืžื•ืœืฆื™ื” ืžืจื•ื‘ื” ื”ืœื™ื›ื™ ื‘ืืžืฆืขื•ืช ืžื—ื•ืœืœ ื”ืงื•ื“ ื”ืงืœืืกื™ TCG (Tyny Code Generator). ื›ืžื• ื›ืŸ ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืืžื•ืœืฆื™ื” ืฉืœ CPU I7200 (nanoMIPS32 ISA) ื•-I6500 (MIPS64R6 ISA), ื”ื™ื›ื•ืœืช ืœืขื‘ื“ ื‘ืงืฉื•ืช ืžืกื•ื’ CPU ื‘ืืžืฆืขื•ืช ื”-QMP (QEMU Management Protocol), ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืื•ื’ืจื™ ืชืฆื•ืจื” ืฉืœ SAARI ื•-SAAR. ื‘ื™ืฆื•ืขื™ื ืžืฉื•ืคืจื™ื ืฉืœ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืขื ืกื•ื’ Fulong 2E. ื™ื™ืฉื•ื ืžืขื•ื“ื›ืŸ ืฉืœ ื™ื—ื™ื“ืช ืชืงืฉื•ืจืช ื‘ื™ืŸ-ืคืชื™ืœ;
  • ื‘ืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ PowerPC ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื”ื“ืžื™ื™ืช ื‘ืงืจ ื”ืคืกื™ืงื” XIVE, ื”ื•ืจื—ื‘ื” ื”ืชืžื™ื›ื” ื‘-POWER9, ื•ืœืกื“ืจืช P ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœื”ื›ื ื™ืก ื’ืฉืจื™ื ืžืืจื— PCI (PHB, PCI host bridge). ื”ื’ื ื” ืžืคื ื™ ื”ืชืงืคื•ืช Spectre ื•- Meltdown ืžื•ืคืขืœืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ;
  • ืชืžื™ื›ื” ื‘ืืžื•ืœืฆื™ื™ืช PCI ื•-USB ื ื•ืกืคื” ืœืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” RISC-V. ืฉืจืช ื ื™ืคื•ื™ ื”ื‘ืื’ื™ื ื”ืžื•ื‘ื ื” (gdbserver) ืชื•ืžืš ื›ืขืช ื‘ืฆื™ื•ืŸ ืจืฉื™ืžื•ืช ืจื™ืฉื•ื ื‘ืงื•ื‘ืฆื™ XML. ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉื“ื•ืช mstatus TSR, TW ื•-TVM;
  • ืืžื•ืœื˜ื•ืจ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” s390 ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ื“ื’ื z14 GA 2 CPU, ื›ืžื• ื’ื ืชืžื™ื›ื” ื‘ื”ื“ืžื™ื™ืช ื”ืจื—ื‘ื•ืช ื”ื•ืจืื•ืช ืœืคืขื•ืœื•ืช ื ืงื•ื“ื” ืฆืคื” ื•ืคืขื•ืœื•ืช ื•ืงื˜ื•ืจื™ื•ืช. ื”ื™ื›ื•ืœืช ืœื—ื‘ืจ ืžื›ืฉื™ืจื™ื ื—ืžื™ื ื ื•ืกืคื” ืœ-vfio-ap;
  • ืืžื•ืœื˜ื•ืจ ื”ืžืขื‘ื“ื™ื ื”ืžืฉืคื—ืชื™ื™ื Tensilica Xtensa ืฉื™ืคืจ ืืช ืชืžื™ื›ืช SMP ื‘ืœื™ื ื•ืงืก ื•ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘-FLIX (ื”ืจื—ื‘ืช ื”ื•ืจืื•ืช ื‘ืื•ืจืš ื’ืžื™ืฉ);
  • ืืคืฉืจื•ืช '-display spice-app' ื ื•ืกืคื” ืœืžืžืฉืง ื”ื’ืจืคื™ ื›ื“ื™ ืœื”ื’ื“ื™ืจ ื•ืœื”ืฉื™ืง ื’ืจืกื” ืฉืœ ืœืงื•ื— ื”ื’ื™ืฉื” ืžืจื—ื•ืง ืฉืœ Spice ืขื ืขื™ืฆื•ื‘ ื“ื•ืžื” ืœืžืžืฉืง QEMU GTK;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื‘ืงืจืช ื’ื™ืฉื” ื‘ืืžืฆืขื•ืช ืืคืฉืจื•ื™ื•ืช tls-authz/sasl-authz ืœืžื™ืžื•ืฉ ืฉืจืช VNC;
  • QMP (QEMU Management Protocol) ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ื‘ื‘ื™ืฆื•ืข ืคืงื•ื“ื•ืช ืžืจื›ื–ื™/ื—ื™ืฆื•ื ื™ (ืžื—ื•ืฅ ืœืคืก) ื•ื”ื˜ืžื™ืขื” ืคืงื•ื“ื•ืช ื ื•ืกืคื•ืช ืœืขื‘ื•ื“ื” ืขื ื”ืชืงื ื™ ื‘ืœื•ืง;
  • ื™ื™ืฉื•ื ืฉืœ ืžืžืฉืง EDID ื ื•ืกืฃ ืœ-VFIO ืขื‘ื•ืจ mdevs ื ืชืžื›ื™ื (Intel vGPUs), ื”ืžืืคืฉืจ ืœืš ืœืฉื ื•ืช ืืช ืจื–ื•ืœื•ืฆื™ื™ืช ื”ืžืกืš ื‘ืืžืฆืขื•ืช ืืคืฉืจื•ื™ื•ืช xres ื•-yres;
  • ื”ืชืงืŸ 'xen-disk' ื—ื“ืฉ ื ื•ืกืฃ ืขื‘ื•ืจ Xen, ืฉื™ื›ื•ืœ ืœื™ืฆื•ืจ ื‘ืื•ืคืŸ ืขืฆืžืื™ ืงืฆื” ืื—ื•ืจื™ ืฉืœ ื“ื™ืกืง ืขื‘ื•ืจ Xen PV (ืœืœื ื’ื™ืฉื” ืœ-xenstore). ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื”ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ื“ื™ืกืง Xen PV ื”ื•ื’ื“ืœื• ื•ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœืฉื ื•ืช ืืช ื’ื•ื“ืœ ื”ื“ื™ืกืง;
  • ื™ื›ื•ืœื•ืช ื”ืื‘ื—ื•ืŸ ื•ื”ืžืขืงื‘ ื”ื•ืจื—ื‘ื• ื‘ื”ืชืงื ื™ ื—ืกื™ืžืช ืจืฉืช, ื•ืฉื•ืคืจื” ืชืื™ืžื•ืช ื”ืœืงื•ื— ืขื ื™ื™ืฉื•ืžื™ ืฉืจืช NBD ื‘ืขื™ื™ืชื™ื™ื. ื ื•ืกืคื• ืืคืฉืจื•ื™ื•ืช "--bitmap", "--list" ื•-"--tls-authz" ืœ-qemu-nbd;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžืฆื‘ PCI IDE ืœ-IDE/via ื”ืชืงืŸ ื”ืžื“ื•ืžื”;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉื™ืžื•ืฉ ื‘ืืœื’ื•ืจื™ืชื lzfse ืœื“ื—ื™ืกืช ืชืžื•ื ื•ืช dmg. ืขื‘ื•ืจ ืคื•ืจืžื˜ qcow2, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื—ื™ื‘ื•ืจ ืงื‘ืฆื™ ื ืชื•ื ื™ื ื—ื™ืฆื•ื ื™ื™ื. ืคืขื•ืœื•ืช ืคื™ืจื•ืง qcow2 ืžื•ืขื‘ืจื•ืช ืœืฉืจืฉื•ืจ ื ืคืจื“. ื ื•ืกืคื” ืชืžื™ื›ื” ืœืคืขื•ืœืช "blockdev-create" ื‘ืชืžื•ื ื•ืช vmdk;
  • ื”ืชืงืŸ ื”ื‘ืœื•ืง virtio-blk ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืคืขื•ืœื•ืช DISCARD (ืžื™ื“ืข ืขืœ ืฉื—ืจื•ืจ ื‘ืœื•ืงื™ื) ื•-WRITE_ZEROES (ืื™ืคื•ืก ื˜ื•ื•ื— ืฉืœ ื‘ืœื•ืงื™ื ืœื•ื’ื™ื™ื);
  • ื”ืชืงืŸ pvrdma ืชื•ืžืš ื‘ืฉื™ืจื•ืชื™ RDMA Management Datagram (MAD);
  • ื”ื•ื’ืฉ ืฉื™ื ื•ื™ื™ื, ื”ืคืจื” ืฉืœ ืชืื™ืžื•ืช ืœืื—ื•ืจ. ืœื“ื•ื’ืžื”, ื‘ืžืงื•ื ื”ืืคืฉืจื•ืช "handle" ื‘-"-fsdev" ื•-"-virtfs", ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘ืืคืฉืจื•ื™ื•ืช "ืžืงื•ืžื™" ืื• "ืคืจื•ืงืกื™". ื”ื•ืกืจื• ื”ืืคืฉืจื•ื™ื•ืช "-virtioconsole" (ื”ื•ื—ืœืฃ ื‘-"-device virtconsole"), "-no-frame", "-clock", "-enable-hax" (ื”ื•ื—ืœืฃ ื‘-"-accel hax"). ื”ื•ืกืจ ื”ืžื›ืฉื™ืจ "ivshmem" (ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘-"ivshmem-doorbell" ื•-"ivshmem-plain"). ื”ืชืžื™ื›ื” ื‘ื‘ื ื™ื™ื” ืขื SDL1.2 ื”ื•ืคืกืงื” (ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘-SDL2).

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

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