NetBSD ಯೋಜನೆಯು ಹೊಸ NVMM ಹೈಪರ್ವೈಸರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ

ನೆಟ್‌ಬಿಎಸ್‌ಡಿ ಪ್ರಾಜೆಕ್ಟ್ ಡೆವಲಪರ್‌ಗಳು ಘೋಷಿಸಲಾಗಿದೆ ಹೊಸ ಹೈಪರ್‌ವೈಸರ್ ಮತ್ತು ಸಂಬಂಧಿತ ವರ್ಚುವಲೈಸೇಶನ್ ಸ್ಟಾಕ್‌ನ ರಚನೆಯ ಬಗ್ಗೆ, ಇವುಗಳನ್ನು ಈಗಾಗಲೇ ಪ್ರಾಯೋಗಿಕ NetBSD-ಪ್ರಸ್ತುತ ಶಾಖೆಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು NetBSD 9 ರ ಸ್ಥಿರ ಬಿಡುಗಡೆಯಲ್ಲಿ ನೀಡಲಾಗುವುದು. NVMM ಪ್ರಸ್ತುತ x86_64 ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಬೆಂಬಲಿಸಲು ಸೀಮಿತವಾಗಿದೆ ಮತ್ತು ಎರಡು ಬ್ಯಾಕೆಂಡ್‌ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಹಾರ್ಡ್‌ವೇರ್ ವರ್ಚುವಲೈಸೇಶನ್ ಮೆಕ್ಯಾನಿಸಂಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದು: x86-SVM ಬೆಂಬಲದೊಂದಿಗೆ AMD ಮತ್ತು x86-VMX CPU ವರ್ಚುವಲೈಸೇಶನ್ ವಿಸ್ತರಣೆಗಳನ್ನು Intel CPUಗಳಿಗಾಗಿ. ಅದರ ಪ್ರಸ್ತುತ ರೂಪದಲ್ಲಿ, ಒಂದು ಹೋಸ್ಟ್‌ನಲ್ಲಿ 128 ವರ್ಚುವಲ್ ಯಂತ್ರಗಳನ್ನು ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಿದೆ, ಪ್ರತಿಯೊಂದೂ 256 ವರ್ಚುವಲ್ ಪ್ರೊಸೆಸರ್ ಕೋರ್‌ಗಳು (VCPU) ಮತ್ತು 128 GB RAM ವರೆಗೆ ಹಂಚಿಕೆ ಮಾಡಬಹುದು.

NVMM ಸಿಸ್ಟಮ್ ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಚಲಿಸುವ ಚಾಲಕವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್ ವರ್ಚುವಲೈಸೇಶನ್ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಸಂಘಟಿಸುತ್ತದೆ, ಮತ್ತು ಬಳಕೆದಾರರ ಜಾಗದಲ್ಲಿ ಚಲಿಸುವ Libnvmm ಸ್ಟಾಕ್. ಕರ್ನಲ್ ಘಟಕಗಳು ಮತ್ತು ಬಳಕೆದಾರರ ಸ್ಥಳದ ನಡುವಿನ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು IOCTL ಮೂಲಕ ನಡೆಸಲಾಗುತ್ತದೆ. KVM ನಂತಹ ಹೈಪರ್‌ವೈಸರ್‌ಗಳಿಂದ NVMM ಅನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ಒಂದು ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ HAXM ಮತ್ತು Bhyve, ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಹಾರ್ಡ್‌ವೇರ್ ವರ್ಚುವಲೈಸೇಶನ್ ಕಾರ್ಯವಿಧಾನಗಳ ಸುತ್ತ ಕನಿಷ್ಠ ಅಗತ್ಯವಿರುವ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ಮಾತ್ರ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಾ ಹಾರ್ಡ್‌ವೇರ್ ಎಮ್ಯುಲೇಶನ್ ಕೋಡ್ ಅನ್ನು ಕರ್ನಲ್‌ನಿಂದ ಬಳಕೆದಾರರ ಜಾಗಕ್ಕೆ ಸರಿಸಲಾಗುತ್ತದೆ. ಈ ವಿಧಾನವು ಉನ್ನತ ಸವಲತ್ತುಗಳೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಕೋಡ್ ಪ್ರಮಾಣವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಹೈಪರ್ವೈಸರ್ನಲ್ಲಿನ ದುರ್ಬಲತೆಗಳ ಮೇಲಿನ ದಾಳಿಯ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಪೂರ್ಣ ಸಿಸ್ಟಮ್ ಅನ್ನು ರಾಜಿ ಮಾಡಿಕೊಳ್ಳುವ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಯೋಜನೆಯ ಡೀಬಗ್ ಮಾಡುವಿಕೆ ಮತ್ತು ಫಝಿಂಗ್ ಪರೀಕ್ಷೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸರಳೀಕರಿಸಲಾಗಿದೆ.

ಆದಾಗ್ಯೂ, Libnvmm ಸ್ವತಃ ಎಮ್ಯುಲೇಟರ್ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿಲ್ಲ, ಆದರೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಎಮ್ಯುಲೇಟರ್‌ಗಳಿಗೆ NVMM ಬೆಂಬಲವನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ API ಅನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, QEMU. API ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ರಚಿಸುವುದು ಮತ್ತು ಪ್ರಾರಂಭಿಸುವುದು, ಅತಿಥಿ ಸಿಸ್ಟಮ್‌ಗೆ ಮೆಮೊರಿಯನ್ನು ನಿಯೋಜಿಸುವುದು ಮತ್ತು VCPU ಗಳನ್ನು ನಿಯೋಜಿಸುವಂತಹ ಕಾರ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಮತ್ತು ಸಂಭವನೀಯ ಆಕ್ರಮಣ ವಾಹಕಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು, libnvmm ಸ್ಪಷ್ಟವಾಗಿ ವಿನಂತಿಸಲಾದ ಕಾರ್ಯಗಳನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತದೆ-ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಸಂಕೀರ್ಣ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕರೆಯಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಅವುಗಳನ್ನು ತಪ್ಪಿಸಲು ಸಾಧ್ಯವಾದರೆ ಅದನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. NVMM ಹೆಚ್ಚು ಜಟಿಲವಾಗದೆ ವಿಷಯಗಳನ್ನು ಸರಳವಾಗಿಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಮತ್ತು ಸಾಧ್ಯವಾದಷ್ಟು ನಿಮ್ಮ ಕೆಲಸದ ಅಂಶಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

NetBSD ಯೋಜನೆಯು ಹೊಸ NVMM ಹೈಪರ್ವೈಸರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ

NVMM ನ ಕರ್ನಲ್-ಮಟ್ಟದ ಭಾಗವು NetBSD ಕರ್ನಲ್‌ನೊಂದಿಗೆ ಸಾಕಷ್ಟು ಬಿಗಿಯಾಗಿ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಅತಿಥಿ OS ಮತ್ತು ಹೋಸ್ಟ್ ಪರಿಸರದ ನಡುವಿನ ಸಂದರ್ಭ ಸ್ವಿಚ್‌ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಬಳಕೆದಾರರ ಸ್ಥಳದ ಭಾಗದಲ್ಲಿ, ಸಾಮಾನ್ಯ I/O ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಲು libnvmm ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಮತ್ತು ಅನಗತ್ಯವಾಗಿ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ಮೆಮೊರಿ ಹಂಚಿಕೆ ವ್ಯವಸ್ಥೆಯು pmap ಉಪವ್ಯವಸ್ಥೆಯನ್ನು ಆಧರಿಸಿದೆ, ಇದು ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಮೆಮೊರಿ ಕೊರತೆಯ ಸಂದರ್ಭದಲ್ಲಿ ಅತಿಥಿ ಮೆಮೊರಿ ಪುಟಗಳನ್ನು ಸ್ವಾಪ್ ವಿಭಾಗಕ್ಕೆ ಹೊರಹಾಕಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. NVMM ಜಾಗತಿಕ ಲಾಕ್‌ಗಳು ಮತ್ತು ಮಾಪಕಗಳಿಂದ ಮುಕ್ತವಾಗಿದೆ, ವಿಭಿನ್ನ ಅತಿಥಿ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳನ್ನು ಚಲಾಯಿಸಲು ವಿವಿಧ CPU ಕೋರ್‌ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಹಾರ್ಡ್‌ವೇರ್ ವರ್ಚುವಲೈಸೇಶನ್ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು NVMM ಅನ್ನು ಬಳಸುವ QEMU-ಆಧಾರಿತ ಪರಿಹಾರವನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ. QEMU ನ ಮುಖ್ಯ ರಚನೆಯಲ್ಲಿ ಸಿದ್ಧಪಡಿಸಿದ ಪ್ಯಾಚ್‌ಗಳನ್ನು ಸೇರಿಸುವ ಕೆಲಸ ನಡೆಯುತ್ತಿದೆ. QEMU+NVMM ಸಂಯೋಜನೆಯು ಈಗಾಗಲೇ ಆಗಿದೆ ಅನುಮತಿಸುತ್ತದೆ FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 ಮತ್ತು AMD ಮತ್ತು Intel ಪ್ರೊಸೆಸರ್‌ಗಳೊಂದಿಗೆ x86_64 ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಅತಿಥಿ ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ರನ್ ಮಾಡಿ (NVMM ಸ್ವತಃ ನಿರ್ದಿಷ್ಟ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗೆ ಸಂಬಂಧಿಸಿಲ್ಲ, ಉದಾಹರಣೆಗೆ, ಸೂಕ್ತವಾದ ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ರಚಿಸಿದರೆ , ಇದು ARM64 ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ ). NVMM ನ ಮತ್ತಷ್ಟು ಅನ್ವಯದ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ, ಪ್ರತ್ಯೇಕ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಸಹ ಗುರುತಿಸಲಾಗಿದೆ.

NetBSD ಯೋಜನೆಯು ಹೊಸ NVMM ಹೈಪರ್ವೈಸರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ