ΠΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ Π½Π° NetBSD ΠΏΡΠΎΠ΅ΠΊΡ
NVMM Π²ΠΊΠ»ΡΡΡΠ²Π° Π΄ΡΠ°ΡΠ²Π΅Ρ ΠΊΠΎΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΈ Π³ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠ° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π΄ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Ρ
Π°ΡΠ΄Π²Π΅ΡΠΎΡ ΠΈ ΡΡΠ΅ΠΊ Libnvmm ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ. ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ ΡΠ΅ Π²ΡΡΠΈ ΠΏΡΠ΅ΠΊΡ IOCTL. ΠΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° NVMM ΡΡΠΎ Π³ΠΎ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π° ΠΎΠ΄ Ρ
ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ KVM Π΅
Π‘Π΅ΠΏΠ°ΠΊ, ΡΠ°ΠΌΠΈΠΎΡ Libnvmm Π½Π΅ ΡΠΎΠ΄ΡΠΆΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΎΡ, ΡΡΠΊΡ ΡΠ°ΠΌΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° API ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ NVMM ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π²ΠΎ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅ Π΅ΠΌΡΠ»Π°ΡΠΎΡΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, QEMU. API ΠΎΠΏΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΈ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° Π³ΠΎΡΡΠΈ ΠΈ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π½Π° VCPU. ΠΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ° ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»Π°Ρ ΠΌΠΎΠΆΠ½ΠΈΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠΈ Π½Π° Π½Π°ΠΏΠ°Π΄, libnvmm ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΠ°ΠΌΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π±Π°ΡΠ°Π½ΠΈ - ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π²ΠΎΠΎΠΏΡΡΠΎ Π΄Π° Π½Π΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π΄ΠΎΠΊΠΎΠ»ΠΊΡ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ. NVMM ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° Π΄Π° Π³ΠΈ ΠΎΠ΄ΡΠΆΡΠ²Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ, Π±Π΅Π· Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ ΠΊΠΎΠΌΠΏΠ»ΠΈΡΠΈΡΠ°Π½ΠΎ ΠΈ Π΄Π° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΠΈ ΠΎΠ΄ Π²Π°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ΅Π»ΠΎΡ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ Π½Π° NVMM Π΅ Π΄ΠΎΡΡΠ° ΡΠ²ΡΡΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ ΡΠΎ NetBSD ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΡΠ΅ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»Π½ΠΈ ΠΏΡΠ΅ΠΊΠΈΠ½ΡΠ²Π°ΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡ Π³ΠΎΡΡΠΈΠ½ΡΠΊΠΈΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ. ΠΠ° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ, libnvmm ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° Π΄Π° Π³ΠΈ ΡΠΎΠ±Π΅ΡΠ΅ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΈΡΠ΅ I/O ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π±Π° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΡ pmap, ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΈ ΠΈΡΡΡΠ»ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π³ΠΎΡΡΠΈΠ½ΡΠΊΠ°ΡΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π²ΠΎ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΡΠ°Π·ΠΌΠ΅Π½Π° Π²ΠΎ ΡΠ»ΡΡΠ°Ρ Π½Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ. NVMM Π΅ Π±Π΅Π· Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ Π±ΡΠ°Π²ΠΈ ΠΈ Π΄ΠΎΠ±ΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΈ, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π΄ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ Π·Π° Π΄Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΠΎΡΡΠΈΠ½ΡΠΊΠΈ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ.
ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎ Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° QEMU ΠΊΠΎΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ NVMM Π·Π° Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Ρ
Π°ΡΠ΄Π²Π΅ΡΠΎΡ. ΠΠΎ ΡΠ΅ΠΊ Π΅ ΡΠ°Π±ΠΎΡΠ° Π·Π° Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈΡΠ΅ Π·Π°ΠΊΡΠΏΠΈ Π²ΠΎ Π³Π»Π°Π²Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° QEMU. ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠ°ΡΠ° QEMU+NVMM Π΅ Π²Π΅ΡΠ΅
ΠΠ·Π²ΠΎΡ: opennet.ru