ನೆಟ್ಬಿಎಸ್ಡಿ ಪ್ರಾಜೆಕ್ಟ್ ಡೆವಲಪರ್ಗಳು
NVMM ಸಿಸ್ಟಮ್ ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಚಲಿಸುವ ಚಾಲಕವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಹಾರ್ಡ್ವೇರ್ ವರ್ಚುವಲೈಸೇಶನ್ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಸಂಘಟಿಸುತ್ತದೆ, ಮತ್ತು ಬಳಕೆದಾರರ ಜಾಗದಲ್ಲಿ ಚಲಿಸುವ Libnvmm ಸ್ಟಾಕ್. ಕರ್ನಲ್ ಘಟಕಗಳು ಮತ್ತು ಬಳಕೆದಾರರ ಸ್ಥಳದ ನಡುವಿನ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು IOCTL ಮೂಲಕ ನಡೆಸಲಾಗುತ್ತದೆ. KVM ನಂತಹ ಹೈಪರ್ವೈಸರ್ಗಳಿಂದ NVMM ಅನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ಒಂದು ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ
ಆದಾಗ್ಯೂ, Libnvmm ಸ್ವತಃ ಎಮ್ಯುಲೇಟರ್ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿಲ್ಲ, ಆದರೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಎಮ್ಯುಲೇಟರ್ಗಳಿಗೆ NVMM ಬೆಂಬಲವನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ API ಅನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, QEMU. API ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ರಚಿಸುವುದು ಮತ್ತು ಪ್ರಾರಂಭಿಸುವುದು, ಅತಿಥಿ ಸಿಸ್ಟಮ್ಗೆ ಮೆಮೊರಿಯನ್ನು ನಿಯೋಜಿಸುವುದು ಮತ್ತು VCPU ಗಳನ್ನು ನಿಯೋಜಿಸುವಂತಹ ಕಾರ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಮತ್ತು ಸಂಭವನೀಯ ಆಕ್ರಮಣ ವಾಹಕಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು, libnvmm ಸ್ಪಷ್ಟವಾಗಿ ವಿನಂತಿಸಲಾದ ಕಾರ್ಯಗಳನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತದೆ-ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಸಂಕೀರ್ಣ ಹ್ಯಾಂಡ್ಲರ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕರೆಯಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಅವುಗಳನ್ನು ತಪ್ಪಿಸಲು ಸಾಧ್ಯವಾದರೆ ಅದನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. NVMM ಹೆಚ್ಚು ಜಟಿಲವಾಗದೆ ವಿಷಯಗಳನ್ನು ಸರಳವಾಗಿಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಮತ್ತು ಸಾಧ್ಯವಾದಷ್ಟು ನಿಮ್ಮ ಕೆಲಸದ ಅಂಶಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
NVMM ನ ಕರ್ನಲ್-ಮಟ್ಟದ ಭಾಗವು NetBSD ಕರ್ನಲ್ನೊಂದಿಗೆ ಸಾಕಷ್ಟು ಬಿಗಿಯಾಗಿ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಅತಿಥಿ OS ಮತ್ತು ಹೋಸ್ಟ್ ಪರಿಸರದ ನಡುವಿನ ಸಂದರ್ಭ ಸ್ವಿಚ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಬಳಕೆದಾರರ ಸ್ಥಳದ ಭಾಗದಲ್ಲಿ, ಸಾಮಾನ್ಯ I/O ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಲು libnvmm ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಮತ್ತು ಅನಗತ್ಯವಾಗಿ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ಮೆಮೊರಿ ಹಂಚಿಕೆ ವ್ಯವಸ್ಥೆಯು pmap ಉಪವ್ಯವಸ್ಥೆಯನ್ನು ಆಧರಿಸಿದೆ, ಇದು ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಮೆಮೊರಿ ಕೊರತೆಯ ಸಂದರ್ಭದಲ್ಲಿ ಅತಿಥಿ ಮೆಮೊರಿ ಪುಟಗಳನ್ನು ಸ್ವಾಪ್ ವಿಭಾಗಕ್ಕೆ ಹೊರಹಾಕಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. NVMM ಜಾಗತಿಕ ಲಾಕ್ಗಳು ಮತ್ತು ಮಾಪಕಗಳಿಂದ ಮುಕ್ತವಾಗಿದೆ, ವಿಭಿನ್ನ ಅತಿಥಿ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳನ್ನು ಚಲಾಯಿಸಲು ವಿವಿಧ CPU ಕೋರ್ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ಹಾರ್ಡ್ವೇರ್ ವರ್ಚುವಲೈಸೇಶನ್ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು NVMM ಅನ್ನು ಬಳಸುವ QEMU-ಆಧಾರಿತ ಪರಿಹಾರವನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ. QEMU ನ ಮುಖ್ಯ ರಚನೆಯಲ್ಲಿ ಸಿದ್ಧಪಡಿಸಿದ ಪ್ಯಾಚ್ಗಳನ್ನು ಸೇರಿಸುವ ಕೆಲಸ ನಡೆಯುತ್ತಿದೆ. QEMU+NVMM ಸಂಯೋಜನೆಯು ಈಗಾಗಲೇ ಆಗಿದೆ
ಮೂಲ: opennet.ru