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

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

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

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เป€เบžเบตเปˆเบกเปƒเบชเปˆ QEMU 8.0:

  • ะžะฑัŠัะฒะปะตะฝะฐ ัƒัั‚ะฐั€ะตะฒัˆะตะน ะธ ะฒ ัะบะพั€ะพะผ ะฒั€ะตะผะตะฝะธ ะฑัƒะดะตั‚ ะฟั€ะตะบั€ะฐั‰ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัะธัั‚ะตะผะฝะพะน ัะผัƒะปัั†ะธะธ (ะทะฐะฟัƒัะบ ะžะก ั†ะตะปะธะบะพะผ, ะฒ ั‚ะพะผ ั‡ะธัะปะต ั ะฟั€ะธะฒะปะตั‡ะตะฝะธะตะผ ะณะธะฟะตั€ะฒะธะทะพั€ะพะฒ KVM ะธ Xen) ะฝะฐ 32-ั€ะฐะทั€ัะดะฝั‹ั… ั…ะพัั‚ะฐั… ั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะพะน x86. ะŸะพะดะดะตั€ะถะบะฐ ัะผัƒะปัั†ะธะธ ะฒ ั€ะตะถะธะผะต user-mode (ะทะฐะฟัƒัะบ ะพั‚ะดะตะปัŒะฝั‹ั… ะฟั€ะพั†ะตััะพะฒ, ัะพะฑั€ะฐะฝะฝั‹ั… ะดะปั ะดั€ัƒะณะพะณะพ CPU) ะฝะฐ 32-ั€ะฐะทั€ัะดะฝั‹ั… ั…ะพัั‚ะฐั… x86 ะฑัƒะดะตั‚ ะฟั€ะพะดะพะปะถะตะฝะฐ.
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ x86 ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะทะฐะฟัƒัะบะฐ ะณะพัั‚ะตะฒั‹ั… ัะธัั‚ะตะผ Xen ะฒ ะพะบั€ัƒะถะตะฝะธะธ ะฝะฐ ะฑะฐะทะต ะณะธะฟะตั€ะฒะธะทะพั€ะฐ KVM ะธ ัะดะตั€ Linux 5.12+.
  • ะ’ ะบะปะฐััะธั‡ะตัะบะพะผ ะณะตะฝะตั€ะฐั‚ะพั€ะต ะบะพะดะฐ TCG ะดะปั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ x86 ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ CPUID-ั„ะปะฐะณะพะฒ FSRM, FZRM, FSRS ะธ FSRC. ะ ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฝะพะฒะพะน ะผะพะดะตะปะธ CPU Intel Sapphire Rapids (Intel 7).
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ARM ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ CPU Cortex-A55 ะธ Cortex-R52, ะดะพะฑะฐะฒะปะตะฝ ะฝะพะฒั‹ะน ั‚ะธะฟ ัะผัƒะปะธั€ัƒะตะผั‹ั… ะผะฐัˆะธะฝ Olimex STM32 H405, ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฟั€ะพั†ะตััะพั€ะฝั‹ั… ั€ะฐััˆะธั€ะตะฝะธะน FEAT_EVT (Enhanced Virtualization Traps), FEAT_FGT (Fine-Grained Traps) ะธ AArch32 ARMv8-R. ะ’ gdbstub ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัะธัั‚ะตะผะฝั‹ั… ั€ะตะณะธัั‚ั€ะพะฒ ะดะปั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ M-ะฟั€ะพั„ะธะปั (ะฟั€ะพั„ะธะปัŒ ะผะธะบั€ะพะบะพะฝั‚ั€ะพะปะปะตั€ะพะฒ).
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ RISC-V ะพะฑะฝะพะฒะปะตะฝะฐ ั€ะตะฐะปะธะทะฐั†ะธั ัะผัƒะปะธั€ัƒะตะผั‹ั… ะผะฐัˆะธะฝ OpenTitan, PolarFire ะธ OpenSBI. ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ั… ะฝะฐะฑะพั€ะพะฒ ะฟั€ะพั†ะตััะพั€ะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน (ISA) ะธ ั€ะฐััˆะธั€ะตะฝะธะน: Smstateen, ะพั‚ะปะฐะดะพั‡ะฝั‹ะต ัั‡ั‘ั‚ั‡ะธะบะธ icount, ัะฒัะทะฐะฝะฝั‹ะต ั ะบััˆะตะผ ัะพะฑั‹ั‚ะธั PMU ะฒ ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะผ ั€ะตะถะธะผะต, ACPI, ั€ะฐััˆะธั€ะตะฝะธั Zawrs, Svadu, T-Head ะธ Zicond.
  • ะ’ ัะผัƒะปัั‚ะพั€ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ HPPA ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะธะฝัั‚ั€ัƒะบั†ะธะธ fid (Floating-Point Identify ะธ ัƒะปัƒั‡ัˆะตะฝะฐ ัะผัƒะปัั†ะธั ะฒ 32-ั€ะฐะทั€ัะดะฝะพะผ ั€ะตะถะธะผะต.
  • ะ’ ัะผัƒะปัั‚ะพั€ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ 390x ะพะฑะตัะฟะตั‡ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฐัะธะฝั…ั€ะพะฝะฝะพะณะพ ะพั‚ัะพะตะดะธะฝะตะฝะธั ะฟะฐะผัั‚ะธ ะฟั€ะธ ะฟะตั€ะตะทะฐะณั€ัƒะทะบะต ะทะฐั‰ะธั‰ั‘ะฝะฝั‹ั… ะณะพัั‚ะตะฒั‹ั… ัะธัั‚ะตะผ KVM. ะฃะปัƒั‡ัˆะตะฝะฐ ะพะฑั€ะฐะฑะพั‚ะบะฐ ะฟั€ะพะฑั€ะฐัั‹ะฒะฐะตะผั‹ั… ัƒัั‚ั€ะพะนัั‚ะฒ zPCI.
  • ะ’ ะผะตั…ะฐะฝะธะทะผะต virtio-mem, ะฟะพะทะฒะพะปััŽั‰ะธะน ะฒั‹ะฟะพะปะฝัั‚ัŒ ะณะพั€ัั‡ะตะต ะฟะพะดะบะปัŽั‡ะตะฝะธะต ะธ ะพั‚ะบะปัŽั‡ะตะฝะธะต ะฟะฐะผัั‚ะธ ะบ ะฒะธั€ั‚ัƒะฐะปัŒะฝั‹ะผ ะผะฐัˆะธะฝะฐะผ, ั€ะตะฐะปะธะทะพะฒะฐะฝะพ ัƒะฟั€ะตะถะดะฐัŽั‰ะตะต ะฒั‹ะดะตะปะตะฝะธะต ั€ะตััƒั€ัะพะฒ (preallocation) ะฟั€ะธ live-ะผะธะณั€ะฐั†ะธะธ.
  • ะ’ VFIO (Virtual Function I/O) ะพะฑะฝะพะฒะปะตะฝะฐ ัะบัะฟะตั€ะธะผะตะฝั‚ะฐะปัŒะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ ะผะธะณั€ะฐั†ะธะธ (ะทะฐะดะตะนัั‚ะฒะพะฒะฐะฝะฐ ะฒั‚ะพั€ะฐั ั€ะตะดะฐะบั†ะธั ะฟั€ะพั‚ะพะบะพะปะฐ ะผะธะณั€ะฐั†ะธะธ).
  • ะ’ ะฑะปะพั‡ะฝะพะผ ัƒัั‚ั€ะพะนัั‚ะฒะต qemu-nbd ะฟะพะฒั‹ัˆะตะฝะฐ ัั„ั„ะตะบั‚ะธะฒะฝะพัั‚ัŒ ั€ะฐะฑะพั‚ั‹ ะฟะพะฒะตั€ั… TCP ะฟั€ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะธ TLS.
  • ะ’ ะฐะณะตะฝั‚ ะดะปั ะณะพัั‚ะตะฒั‹ั… ัะธัั‚ะตะผ ะดะพะฑะฐะฒะปะตะฝะฐ ะฝะฐั‡ะฐะปัŒะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ OpenBSD ะธ NetBSD.

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

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