เบ›เปˆเบญเบเบ•เบปเบง emulator QEMU 4.2

เปเบ™เบฐเบ™เบณ เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ QEMU 4.2. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™ emulator, QEMU เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบตเบฎเบฒเบ”เปเบงเบซเบ™เบถเปˆเบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบกเบปเบ”, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ ARM เปƒเบ™ PC เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ x86. เปƒเบ™เป‚เบซเบกเบ” virtualization เปƒเบ™ QEMU, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบฅเบฐเบšเบปเบšเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบปเบ‡เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบš CPU เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ Xen hypervisor เบซเบผเบท KVM.

เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบทเป‰เบ™โ€‹เปƒเบ™โ€‹เป€เบšเบทเป‰เบญเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เป‚เบ”เบ Fabrice Bellard เป€เบžเบทเปˆเบญโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™ Linux executable เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป€เบงโ€‹เบ—เบต x86 เปƒเบ™โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™ x86โ€‹. เปƒเบ™เป„เบฅเบเบฐเบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™ emulation เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบชเปเบฒเบฅเบฑเบš 14 เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบฎเบฒเบ”เปเบง, เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบฎเบฒเบ”เปเบง emulated เป„เบ”เป‰เป€เบเบตเบ™ 400. เปƒเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเบชเบฐเบšเบฑเบš 4.2, เบซเบผเบฒเบเบเบงเปˆเบฒ 2200 เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบˆเบฒเบ 198 เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ.

เบเบฐเปเบˆ เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป€เบžเบตเปˆเบกเปƒเบ™ QEMU 4.2:

  • ะ’ ะบะปะฐััะธั‡ะตัะบะพะผ ะณะตะฝะตั€ะฐั‚ะพั€ะต ะบะพะดะฐ TCG (Tiny Code Generator) ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฟะปะฐะณะธะฝะพะฒ ะดะปั ะผะพะฝะธั‚ะพั€ะธะฝะณะฐ ะฟั€ะพั†ะตััะพั€ะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน ะธ ะฐะดั€ะตัะพะฒ ะฒ ะฟะฐะผัั‚ะธ;
  • ะ’ ะดั€ะฐะนะฒะตั€ะต ะฑะปะพั‡ะฝั‹ั… ัƒัั‚ั€ะพะนัั‚ะฒ NBD (Network Block Device) ะพะฑะตัะฟะตั‡ะตะฝะฐ ะฑะพะปะตะต ัั„ั„ะตะบั‚ะธะฒะฝะฐั ะพะฑั€ะฐะฑะพั‚ะบะฐ ะทะฐะฟั€ะพัะพะฒ ะบะพะฟะธั€ะพะฒะฐะฝะธั ะฟั€ะธ ั‡ั‚ะตะฝะธะธ (copy-on-read). ะšะพะด NBD-ัะตั€ะฒะตั€ะฐ ะพะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝ ะดะปั ะบะพะฟะธั€ะพะฒะฐะฝะธั ั€ะฐะทั€ะตะถั‘ะฝะฝั‹ั… ะพะฑั€ะฐะทะพะฒ (ั ะฟัƒัั‚ะพั‚ะฐะผะธ). ะ’ะฝะตัะตะฝั‹ ะพะฑั‰ะธะต ัƒะปัƒั‡ัˆะตะฝะธั ะฒ ั€ะตะฐะปะธะทะฐั†ะธัŽ ะบะปะธะตะฝั‚ะฐ ะธ ัะตั€ะฒะตั€ะฐ NBD;
  • ะŸะพะฒั‹ัˆะตะฝะฐ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ ัˆะธั„ั€ะพะฒะฐะฝะธั LUKS-ะดะธัะบะพะฒ ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ะฐะปะณะพั€ะธั‚ะผะฐ AES-XTS;
  • ะ’ vfio-pci ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัะฒะพะนัั‚ะฒะฐ ยซfailover_pair_idยป ะดะปั ัƒะฟั€ะพั‰ะตะฝะธั ะผะธะณั€ะฐั†ะธะธ ัƒัั‚ั€ะพะนัั‚ะฒ VFIO;
  • ะ’ virtio-mmio ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัั‚ะฐะฝะดะฐั€ั‚ะฐ virtio-compatible 2 ะธ ะพะฟั€ะตะดะตะปั‘ะฝะฝะพะณะพ ะฒ ัะฟะตั†ะธั„ะธะบะฐั†ะธะธ virtio 1.1 ะผะตั…ะฐะฝะธะทะผะฐ ัƒะฟะฐะบะพะฒะฐะฝะฝั‹ั… ะฒะธั€ั‚ัƒะฐะปัŒะฝั‹ั… ะพั‡ะตั€ะตะดะตะน (virtqueue) ะดะปั ะพะฑะผะตะฝะฐ ะดะฐะฝะฝั‹ะผะธ ั ะฒะธั€ั‚ัƒะฐะปัŒะฝั‹ะผ ัƒัั‚ั€ะพะนัั‚ะฒะพะผ ะฒะฒะพะดะฐ/ะฒั‹ะฒะพะดะฐ ะฒ ะฟะฐะบะตั‚ะฝะพะผ ั€ะตะถะธะผะต;
  • ะ’ ัะผัƒะปัั‚ะพั€ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ x86 ะดะพะฑะฐะฒะปะตะฝ ะฝะพะฒั‹ะน ั‚ะธะฟ ัะผัƒะปะธั€ัƒะตะผั‹ั… ะผะฐัˆะธะฝ ยซmicrovmยป, ะธัะฟะพะปัŒะทัƒัŽั‰ะธั… virtio-mmio ะฒะผะตัั‚ะพ PCI ะดะปั ะพะฟั‚ะธะผะธะทะฐั†ะธะธ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ. ะ ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะฒะบะปัŽั‡ะตะฝะธั ะธ ะฒั‹ะบะปัŽั‡ะตะฝะธั VMX ั‡ะตั€ะตะท ั„ะปะฐะณะธ ยซ-cpuยป. ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัะผัƒะปัั†ะธะธ ั€ะฐััˆะธั€ะตะฝะธะน AVX512 BFloat16. ะžะฑะตัะฟะตั‡ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฝะพะฒั‹ั… ะผะพะดะตะปะตะน CPU Denverton (ัะตั€ะฒะตั€ะฝั‹ะน SoC ะฝะฐ ะฑะฐะทะต Atom), Snowridge ะธ Dhyana. ะกั‚ะฐะฑะธะปะธะทะธั€ะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ macOS Hypervisor Framework (ยซ-accel hvfยป);
  • ะ’ ัะผัƒะปัั‚ะพั€ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ ARM ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัะผัƒะปัั†ะธะธ SoC Aspeed AST2600 (ยซast2600-evbยป). ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ั‚ะตั…ะฝะพะปะพะณะธะธ Semihosting 2.0 c ั€ะฐััˆะธั€ะตะฝะธัะผะธ STDOUT_STDERR/EXIT_EXTENDED, ะบะพั‚ะพั€ะฐั ะฟะพะทะฒะพะปัะตั‚ ัะผัƒะปะธั€ัƒะตะผะพะผัƒ ัƒัั‚ั€ะพะนัั‚ะฒัƒ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ stdout, stderr ะธ stdin ะดะปั ัะพะทะดะฐะฝะธั ั„ะฐะนะปะพะฒ ะฝะฐ ัั‚ะพั€ะพะฝะต ั…ะพัั‚ะฐ. ะ’ KVM ะดะพะฑะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะฑะพะปะตะต 256 CPU ะธ ะพะฑะตัะฟะตั‡ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ SIMD-ะธะฝัั‚ั€ัƒะบั†ะธะน SVE. ะ’ ะฒะธั€ั‚ัƒะฐะปัŒะฝั‹ั… ะผะฐัˆะธะฝะฐั… ั ั‚ะธะฟะพะผ ยซเบ„เบธเบ™เบ™เบฐ เบ—เบณยป ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะณะพั€ัั‡ะตะณะพ ะฟะพะดะบะปัŽั‡ะตะฝะธั ะฟะฐะผัั‚ะธ. ะฃะฒะตะปะธั‡ะตะฝะฐ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ ัะผัƒะปัั†ะธะธ ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ะณะตะฝะตั€ะฐั‚ะพั€ะฐ ะบะพะดะฐ TCG.
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ PowerPC ะฟะพัะฒะธะปะฐััŒ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะผัƒะปัั†ะธะธ POWER9-ะธะฝัั‚ั€ัƒะบั†ะธะน mffsce, mffscrn ะธ mffscrni. ะ’ ัะผัƒะปะธั€ัƒะตะผั‹ั… ะผะฐัˆะธะฝะฐั… ยซpowernvยป ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัะธัั‚ะตะผะฝั‹ั… ัƒัั‚ั€ะพะนัั‚ะฒ Homer ะธ OCC SRAM;
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ RISC-V ะดะพะฑะฐะฒะปะตะฝะฐ ะพะฟั†ะธั ยซ-initrdยป ะธ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะฟั€ะพัะผะพั‚ั€ะฐ ะฟะพะปะฝะพะณะพ ัะพัั‚ะพัะฝะธั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ ะฒ ะพั‚ะปะฐะดั‡ะธะบะต;
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ s390 ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะธะฝัั‚ั€ัƒะบั†ะธะน IEP (Instruction Execution Protection);
  • ะ’ ัะผัƒะปัั‚ะพั€ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ 68k ะดะพะฑะฐะฒะปะตะฝะฐ ะฝะฐั‡ะฐะปัŒะฝะฐั ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะผัƒะปัั†ะธะธ Macintosh Quadro 800 ะธ ะบะปะฐััะธั‡ะตัะบะธั… ัะธัั‚ะตะผ NeXTcube;
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ xtensa ะดะพะฑะฐะฒะปะตะฝ ะฝะพะฒั‹ะน ั‚ะธะฟ ัะผัƒะปะธั€ัƒะตะผั‹ั… ะผะฐัˆะธะฝ ยซvirtยป ะธ ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ABI call0 ะดะปั ัะผัƒะปัั†ะธะธ ะฒ ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะต ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™