ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ QEMU 5.1 ืขืžื•ืœืึทื˜ืึธืจ

ื‘ืึทืงืขื ืขื  ืคึผืจื•ื™ืขืงื˜ ืžืขืœื“ื•ื ื’ QEMU 5.1. ื•ื•ื™ ืึทืŸ ืขืžื•ืœืึทื˜ืึธืจ, QEMU ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืœื•ื™ืคืŸ ืึท ืคึผืจืึธื’ืจืึทื ืงืึทืžืคึผื™ื™ืœื“ ืคึฟืึทืจ ืื™ื™ืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืคึผืœืึทื˜ืคืึธืจืžืข ืื•ื™ืฃ ืึท ืกื™ืกื˜ืขื ืžื™ื˜ ืึท ื’ืึธืจ ืึทื ื“ืขืจืฉ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืœืžืฉืœ, ืœื•ื™ืคืŸ ืึทืŸ ARM ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ื™ืฃ ืึท ืงืก86 ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืคึผื™ืกื™. ืื™ืŸ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืžืึธื“ืข ืื™ืŸ QEMU, ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืื™ืŸ ืึทืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜ ืกื•ื•ื™ื•ื•ืข ืื™ื– ื ืึธืขื ื˜ ืฆื• ื“ื™ ื’ืขื‘ื•ื™ืจืŸ ืกื™ืกื˜ืขื ืจืขื›ื˜ ืฆื• ื“ื™ืจืขืงื˜ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืื•ื™ืฃ ื“ื™ ืงืคึผื• ืื•ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ Xen ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ ืึธื“ืขืจ KVM ืžืึธื“ื•ืœืข.

ื“ืขืจ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ืขืจื™ื“ื–ืฉื ืึทืœื™ ื‘ืืฉืืคืŸ ื“ื•ืจืš Fabrice Bellard ืฆื• ืœืึธื–ืŸ ืœื™ื ื•ืงืก ืขืงืกืขืงื•ื˜ืึทื‘ืœืขืก ื’ืขื‘ื•ื™ื˜ ืคึฟืึทืจ ื“ื™ x86 ืคึผืœืึทื˜ืคืึธืจืžืข ืฆื• ืœื•ื™ืคืŸ ืื•ื™ืฃ ื ื™ื˜-ืงืก86 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–. ืื™ื‘ืขืจ ื“ื™ ื™ืึธืจืŸ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ืคื•ืœ ืขืžื™ืึทืœื™ื™ืฉืึทืŸ ืฉื˜ื™ืฆืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ 14 ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–, ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืขืžื•ืœืึทื˜ืขื“ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ื“ืขื•ื•ื™ืกืขืก ืื™ื– ื™ืงืกื™ื“ื™ื“ 400. ืื™ืŸ ืฆื•ื’ืจื™ื™ื˜ื•ื ื’ ืคึฟืึทืจ ื•ื•ืขืจืกื™ืข 5.1, ืžืขืจ ื•ื•ื™ 2500 ืขื ื“ืขืจื•ื ื’ืขืŸ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื’ืขืžืื›ื˜ ืคื•ืŸ 235 ื“ืขื•ื•ืขืœืึธืคึผืขืจืก.

ืฉืœื™ืกืœ ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅืฆื•ื’ืขื’ืขื‘ืŸ ืื™ืŸ QEMU 5.1:

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงืคึผื• ืขืžื™ืึทืœื™ื™ืฉืึทืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืึทืคึผืจื™ืœ. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560) ื‘ืึธืจื“ื– ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“.
    Arduino Mega (ATmega1280) ืื•ืŸ Arduino UNO (ATmega328P).

  • ื“ื™ ARM ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืขืžื•ืœืึทื˜ืึธืจ ื”ืื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื”ื™ื™ืก-ืึธืคึผื ืขืžืขืŸ ื–ื›ึผืจื•ืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื”ื™ื™ืก-ืฆืึทืคึผืŸ ื ื•ื•ื“ื™ืžื ื–ื›ึผืจื•ืŸ ืคึฟืึทืจ ื’ืึทืกื˜ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ACPI. ื™ืžืคึผืœืึทืžืขื ืึทื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ARMv8.2 ื™ืงืกื˜ืขื ืฉืึทื ื– TTS2UXN ะธ ARMv8.5 MemTag. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Sonorapass-bmc ื‘ืจืขื˜ ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜.
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Loongson 3A ืงืคึผื•ืก (R1 ืื•ืŸ R4) ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ MIPS ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืขืžื•ืœืึทื˜ืึธืจ. ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืคืคึผื• ืื•ืŸ MSA ืœื™ืžืขื“ ืขืžื™ืึทืœื™ื™ืฉืึทืŸ.
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ SiFive E34 ืื•ืŸ Ibex ืงืคึผื•ืก ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ RISC-V ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืขืžื•ืœืึทื˜ืึธืจ. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ HiFive1 revB ืื•ืŸ OpenTitan ื‘ืึธืจื“ื– ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“. ืกืคึผื™ื™ืง ืžืืฉื™ื ืขืŸ ืฆื•ืฉื˜ืขืœืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืžืขืจ ื•ื•ื™ ืื™ื™ืŸ ืงืคึผื•.
  • ื“ื™ ืคึผืึธื•ื•ืขืจืคึผืง ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืขืžื•ืœืึทื˜ืึธืจ ืื™ืฆื˜ ืฉื˜ื™ืฆื˜ ื˜ืขื•ืช ืึธืคึผื–ื•ืš ืื™ืŸ ื’ืึทืกื˜ ืกื™ืกื˜ืขืžืขืŸ ื ื™ืฆืŸ FWNMI.
  • ืคึฟืึทืจ ื“ื™ s390 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, KVM ืฉื˜ื™ืฆืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ื–ื™ื›ืขืจ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ (ื–ื™ื›ืขืจ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืžืึธื“ืข).
  • ื“ื™ ืงืก86 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืขืžื•ืœืึทื˜ืึธืจ ืจืึทื“ื•ืกืึทื– ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ืคื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ื™ื ื’ ืึทื ืึทืึทืคึผื˜ื™ื“ Windows ื’ืขืกื˜ ื“ื•ืจืš ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ื“ื™ Windows ACPI Emulated Device Table (WAET). ื™ืžืคึผืจื•ื•ื•ื“ ืึทืงืกืขืœืขืจื™ื™ืฉืึทืŸ ืฉื˜ื™ืฆืŸ HVF ืคึฟืึทืจ macOS.
  • ื“ืขืจ ืฉืึธืคืขืจ ืคื•ืŸ ื“ื™ ื‘ืœืึธืง ืžื™ื˜ืœ ืื™ืฆื˜ ืฉื˜ื™ืฆื˜ ื•ื•ื™ืจื˜ื•ืึทืœ ืกื˜ืึธืจื™ื“ื–ืฉ ื“ืขื•ื•ื™ืกืขืก ืžื™ื˜ ืœืึทื“ื–ืฉื™ืงืึทืœ ืื•ืŸ ื’ืฉืžื™ื•ืช ื‘ืœืึทืงืก ืคื•ืŸ 2 ืžื‘ ืื™ืŸ ื’ืจื™ื™ืก.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืคึผืึทืกื•ื•ืขืจื“ื– ืื•ืŸ ืขื ืงืจื™ืคึผืฉืึทืŸ ืฉืœื™ืกืœืขืŸ ืฆื• QEMU ื“ื•ืจืš ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ืงื™ื™ืจื™ื ื’ ื ื™ืฆืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ื˜ื™ืคึผ "ืกื•ื“-ืงื™ื™ืจื™ื ื’".
  • ื“ื™ qcow2 ืคึฟืึธืจืžืึทื˜ ืื™ืฆื˜ ืฉื˜ื™ืฆื˜ ื“ื™ zstd ืงืึทืžืคึผืจืขืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทื.
  • ื ื ื™ื™ึทืข 'ื‘ื™ื˜ืžืึทืคึผ' ื‘ืึทืคึฟืขืœ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ื™ qemu-img ื ื•ืฆืŸ ืคึฟืึทืจ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ื˜ื™ื ื’ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ื‘ื™ื˜ืžืึทืคึผืก ืื™ืŸ qcow2 ื˜ืขืงืขืก. qemu-img ืื•ื™ืš ื™ืžืคึผืœืึทืžืึทื ืฅ LUKS ืฉืœื™ืกืœ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ (ืงื™ื™ืกืœืึธื˜) ืื•ืŸ ืึธืคืคืขืจืก ื ืึธืš ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ื“ื™ "ืžืึทืคึผืข" (--ืึธื ื”ื™ื™ื‘-ืึธืคืกืขื˜, -ืžืึทืงืก-ืœืขื ื’) ืื•ืŸ "ื’ืขืจ" (-ื‘ื™ื˜ืžืึทืคึผืก) ืงืึทืžืึทื ื“ื–; ื“ื™ "ืžืขืกื˜ืŸ" ื‘ืึทืคึฟืขืœ ืื™ืฆื˜ ื“ื™ืกืคึผืœื™ื™ื– ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ื‘ื™ื˜ืžืึทืคึผืก ืื™ืŸ qcow2 ื˜ืขืงืขืก.
  • ื“ืขืจ NVMe ืฉืึธืคืขืจ ืื™ืฆื˜ ืฉื˜ื™ืฆื˜ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ื–ื›ึผืจื•ืŸ ืจืขื’ื™ืึธื ืก ื‘ืึทืงืขื ืขื  ืื™ืŸ ื“ื™ NVMe 1.4 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’.
  • ืื™ืŸ ื•ื•ื™ืจื˜ื™ืึธ ืคึฟืึทืจ ื’ืึทืกื˜ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ื“ืขืจ ืงืœืึทืกื™ืฉ TCG (Tiny Code Generator) ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจ, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ืคึผืจืึทืกืขืกืึทื– ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ vhost-user, ื›ื•ืœืœ Virtiofsd. ื“ื™ VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• vhost-user, ืึทืœืึทื•ื™ื ื’ ืื™ืจ ืฆื• ืจืขื’ื™ืกื˜ืจื™ืจืŸ ืžืขืจ ื•ื•ื™ 8 ื‘ืึทืจืึทืŸ ืกืœืึธืฅ.

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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’