ื“ื™ NetBSD ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืึท ื ื™ื™ึทืข NVMM ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ

ื ืขื˜ื‘ืกื“ ืคึผืจืึธื™ืขืงื˜ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืžื•ื“ื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ืึท ื ื™ื™ึท ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ ืื•ืŸ ื“ื™ ืคึฟืึทืจื‘ื•ื ื“ืŸ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืึธื ืœื™ื™ื’ืŸ, ื•ื•ืึธืก ื–ืขื ืขืŸ ืฉื•ื™ืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ื ืขื˜ื‘ืกื“-ืงืจืึทื ื˜ ืฆื•ื•ื™ื™ึทื’ ืื•ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืคึฟื™ื ื˜ ืื™ืŸ ื“ื™ ืกื˜ืึทื‘ื™ืœ ืžืขืœื“ื•ื ื’ ืคื•ืŸ NetBSD 9. NVMM ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ืœื™ืžื™ื˜ืขื“ ืฆื• ืฉื˜ื™ืฆืŸ ื“ื™ x86_64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื•ืŸ ื’ื™ื˜ ืฆื•ื•ื™ื™ ื‘ืึทืงืขื ื“ื– ืคึฟืึทืจ ืขื ื™ื™ื‘ืึทืœื™ื ื’ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืžืขืงืึทื ื™ื–ืึทืžื–: x86-SVM ืžื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึทืžื“ ืื•ืŸ x86-VMX ืงืคึผื• ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ื™ืงืกื˜ืขื ืฉืึทื ื– ืคึฟืึทืจ ื™ื ื˜ืขืœ ืงืคึผื•ืก. ืื™ืŸ ื–ื™ื™ืŸ ืงืจืึทื ื˜ ืคืึธืจืขื, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืœื•ื™ืคืŸ ืึทืจื•ื™ืฃ ืฆื• 128 ื•ื•ื™ืจื˜ื•ืึทืœ ืžืืฉื™ื ืขืŸ ืื•ื™ืฃ ืื™ื™ืŸ ื‘ืึทืœืขื‘ืึธืก, ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืึทืจื•ื™ืฃ ืฆื• 256 ื•ื•ื™ืจื˜ื•ืึทืœ ืคึผืจืึทืกืขืกืขืจ ืงืึธืจืขืก (VCPU) ืื•ืŸ 128 ื’ื™ื’ืื‘ื™ื™ื˜ ืคื•ืŸ ื‘ืึทืจืึทืŸ.

NVMM ื›ื•ืœืœ ืึท ืฉืึธืคืขืจ ื•ื•ืึธืก ืœื•ื™ืคื˜ ืื•ื™ืฃ ื“ื™ ืกื™ืกื˜ืขื ืงืขืจืŸ ืžื“ืจื’ื” ืื•ืŸ ืงืึธื•ืึธืจื“ืึทื ืึทืฅ ืึทืงืกืขืก ืฆื• ื™ื™ึทื–ื ื•ื•ืึทืจื’ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืžืขืงืึทื ื™ื–ืึทืžื–, ืื•ืŸ ืึท Libnvmm ืึธื ืœื™ื™ื’ืŸ ื•ื•ืึธืก ืœื•ื™ืคื˜ ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ. ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ืงืขืจืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื•ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื“ื•ืจืš IOCTL. ื ืฉื˜ืจื™ืš ืคื•ืŸ NVMM ื•ื•ืึธืก ื“ื™ืกื˜ื™ื ื’ื’ื•ื•ื™ืฉื™ื– ืขืก ืคื•ืŸ ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจื– ืึทื–ืึท ื•ื•ื™ KVM ืื™ื– HAXM ืื•ืŸ Bhyve, ืื™ื– ืึทื– ืื•ื™ืฃ ื“ื™ ืงืขืจืŸ ืžื“ืจื’ื” ื‘ืœื•ื™ื– ื“ื™ ืžื™ื ื™ืžื•ื ืคืืจืœืื ื’ื˜ ื’ืึทื ื’ ืคื•ืŸ ื‘ื™ื™ื ื“ื™ื ื’ื– ืึทืจื•ื ื™ื™ึทื–ื ื•ื•ืึทืจื’ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืžืขืงืึทื ื™ื–ืึทืžื– ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜, ืื•ืŸ ืึทืœืข ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืขืžื™ืึทืœื™ื™ืฉืึทืŸ ืงืึธื“ ืื™ื– ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืจืŸ ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ. ื“ืขืจ ืฆื•ื’ืึทื ื’ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืงืึธื“ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืžื™ื˜ ืขืœืขื•ื•ืึทื˜ืขื“ ืคึผืจื™ื•ื•ื™ืœืึทื“ื–ืฉืึทื– ืื•ืŸ ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ืจื™ื–ื™ืงื™ืจืŸ ืคื•ืŸ ืงืึทืžืคึผืจืึทืžื™ื™ื–ื™ื ื’ ื“ื™ ื’ืื ืฆืข ืกื™ืกื˜ืขื ืื™ืŸ ืคืึทืœ ืคื•ืŸ ืื ืคืืœืŸ ืื•ื™ืฃ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ ื“ื™ ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ื“ื™ื‘ืึทื’ื™ื ื’ ืื•ืŸ ืคื™ื•ื–ื™ื ื’ ื˜ืขืกื˜ื™ื ื’ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื ืึธื•ื˜ื™ืกืึทื‘ืœื™ ืกื™ืžืคึผืœืึทืคื™ื™ื“.

ืึธื‘ืขืจ, Libnvmm ื–ื™ืš ื˜ื•ื˜ ื ื™ืฉื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ืขืžื•ืœืึทื˜ืึธืจ ืคืึทื ื’ืงืฉืึทื ื–, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ื’ื™ื˜ ืึทืŸ ืึทืคึผื™ ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ NVMM ืฉื˜ื™ืฆืŸ ืื™ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืขืžื•ืœืึทื˜ืึธืจืก, ืœืžืฉืœ, QEMU. ื“ื™ ืึทืคึผื™ ืงืึธื•ื•ืขืจืก ืคืึทื ื’ืงืฉืึทื ื– ืึทื–ืึท ื•ื•ื™ ืงืจื™ื™ื™ื˜ื™ื ื’ ืื•ืŸ ืงืึทื˜ืขืจ ืึท ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ, ืึทืœืึทืงื™ื™ื˜ื™ื ื’ ื–ื›ึผืจื•ืŸ ืฆื• ื“ื™ ื’ืึทืกื˜ ืกื™ืกื˜ืขื ืื•ืŸ ืึทืœืึทืงื™ื™ื˜ื™ื ื’ VCPUs. ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืื•ืŸ ืจืขื“ื•ืฆื™ืจืŸ ืžืขื’ืœืขืš ื‘ืึทืคืึทืœืŸ ื•ื•ืขืงื˜ืึธืจืก, libnvmm ื’ื™ื˜ ื‘ืœื•ื™ื– ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื‘ืคื™ืจื•ืฉ ื’ืขื‘ืขื˜ืŸ - ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืงืึธืžืคึผืœืขืงืก ื”ืึทื ื“ืœืขืจืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขืจื•ืคึฟืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืื•ืŸ ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื•ื™ื‘ ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทื•ื•ื•ื™ื“ื™ื“. NVMM ืคืจื•ื‘ื™ืจื˜ ืฆื• ื”ืึทืœื˜ืŸ ื“ื™ ื˜ื™ื ื’ื– ืคึผืฉื•ื˜, ืึธืŸ ืฆื• ืงืึธืžืคึผืœื™ืฆื™ืจื˜, ืื•ืŸ ืœืึธื–ืŸ ืื™ืจ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื•ื•ื™ ืคื™ืœืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ื“ื™ื™ืŸ ืึทืจื‘ืขื˜ ื•ื•ื™ ืžืขื’ืœืขืš.

ื“ื™ NetBSD ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืึท ื ื™ื™ึทืข NVMM ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ

ื“ืขืจ ืงืขืจืŸ-ืžื“ืจื’ื” ื˜ื™ื™ืœ ืคื•ืŸ NVMM ืื™ื– ื’ืึทื ืฅ ื˜ื™ื™ื˜ืœื™ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืžื™ื˜ ื“ื™ NetBSD ืงืขืจืŸ, ืื•ืŸ ืึทืœืึทื•ื– ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื“ื•ืจืš ืจื™ื“ื•ืกื™ื ื’ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืึธื ื˜ืขืงืกื˜ ืกื•ื•ื™ื˜ืฉื™ื– ืฆื•ื•ื™ืฉืŸ ื“ื™ ื’ืึทืกื˜ ืึทืก ืื•ืŸ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืกื•ื•ื™ื•ื•ืข. ืื•ื™ืฃ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ ื–ื™ื™ึทื˜, libnvmm ืคืจื•ื•ื•ื˜ ืฆื• ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคึผืจืึธืกื˜ ื™ / ืึธ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ืŸ ื•ื™ืกืžื™ื™ื“ืŸ ืžืื›ืŸ ืกื™ืกื˜ืขื ืงืึทืœืœืก ืึทื ื ืขืกืึทืกืขืจืึทืœื™. ื“ื™ ื–ื™ืงืึธืจืŸ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืกื™ืกื˜ืขื ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ pmap ืกื•ื‘ืกื™ืกื˜ืขื, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื™ื•ื•ื™ืงื˜ ื’ืึทืกื˜ ื–ื™ืงืึธืจืŸ ื‘ืœืขื˜ืขืจ ืฆื• ื“ื™ ื•ื™ืกื‘ื™ื™ึทื˜ืŸ ืฆืขื˜ื™ื™ืœื•ื ื’ ืื™ืŸ ืคืึทืœ ืคื•ืŸ ื–ื™ืงืึธืจืŸ ื“ื•ื—ืง ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื. NVMM ืื™ื– ืคืจื™ื™ ืคื•ืŸ ื’ืœืื‘ืืœืข ืœืึทืงืก ืื•ืŸ ื•ื•ืึธื’ ื’ืขื–ื•ื ื˜, ืึทืœืึทื•ื™ื ื’ ืื™ืจ ืฆื• ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ื ื•ืฆืŸ ืคืึทืจืฉื™ื“ืขื ืข ืงืคึผื• ืงืึธืจืขืก ืฆื• ืœื•ื™ืคืŸ ืคืึทืจืฉื™ื“ืขื ืข ื’ืึทืกื˜ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืืฉื™ื ืขืŸ.

ื QEMU-ื‘ืื–ื™ืจื˜ ืœื™ื™ื–ื•ื ื’ ืื™ื– ืฆื•ื’ืขื’ืจื™ื™ื˜ ื•ื•ืึธืก ื ื™ืฆื˜ NVMM ืฆื• ื’ืขื‘ืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืžืขืงืึทื ื™ื–ืึทืžื–. ืึทืจื‘ืขื˜ ืื™ื– ืึทื ื“ืขืจื•ื•ื™ื™ ืฆื• ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื“ื™ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืคึผืึทื˜ืฉืึทื– ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ QEMU. ื“ื™ QEMU + NVMM ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืื™ื– ืฉื•ื™ืŸ ืขืก ืึทืœืึทื•ื– ื”ืฆืœื—ื” ืœื•ื™ืคืŸ ื’ืึทืกื˜ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 ืื•ืŸ ืื ื“ืขืจืข ืึทืก ืื•ื™ืฃ x86_64 ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืึทืžื“ ืื•ืŸ ื™ื ื˜ืขืœ ืคึผืจืึทืกืขืกืขืจื– (NVMM ื–ื™ืš ืื™ื– ื ื™ืฉื˜ ื˜ื™ื™ื“ ืฆื• ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ื‘ ื“ื™ ืฆื•ื ืขืžืขืŸ ื‘ืึทืงืขื ื“ ืื™ื– ื‘ืืฉืืคืŸ. , ืขืก ื•ื•ืขื˜ ืงืขื ืขืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ARM64 ืกื™ืกื˜ืขืžืขืŸ). ืฆื•ื•ื™ืฉืŸ ื“ื™ ื’ืขื‘ื™ื˜ืŸ ืคื•ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ NVMM, ื–ืึทืžื“ืงืึทืกื˜ืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืคื•ืŸ ื™ื—ื™ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ื– ืื•ื™ืš ื‘ืืžืขืจืงื˜.

ื“ื™ NetBSD ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืึท ื ื™ื™ึทืข NVMM ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ

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

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