Nhà phát triển dự án NetBSD
NVMM bao gồm trình điều khiển chạy ở cấp nhân hệ thống và điều phối quyền truy cập vào các cơ chế ảo hóa phần cứng cũng như ngăn xếp Libnvmm chạy trong không gian người dùng. Tương tác giữa các thành phần kernel và không gian người dùng được thực hiện thông qua IOCTL. Một tính năng của NVMM giúp phân biệt nó với các phần mềm ảo hóa như KVM là
Tuy nhiên, bản thân Libnvmm không chứa các chức năng giả lập mà chỉ cung cấp API cho phép bạn tích hợp hỗ trợ NVMM vào các trình giả lập hiện có, ví dụ như QEMU. API bao gồm các chức năng như tạo và khởi chạy máy ảo, phân bổ bộ nhớ cho hệ thống khách và phân bổ VCPU. Để cải thiện tính bảo mật và giảm các vectơ tấn công có thể xảy ra, libnvmm chỉ cung cấp các chức năng được yêu cầu rõ ràng—theo mặc định, các trình xử lý phức tạp không được gọi tự động và hoàn toàn không được sử dụng nếu có thể tránh được. NVMM cố gắng giữ mọi thứ đơn giản, không quá phức tạp và cho phép bạn kiểm soát nhiều khía cạnh công việc của mình nhất có thể.
Phần cấp nhân của NVMM được tích hợp khá chặt chẽ với nhân NetBSD và cho phép cải thiện hiệu suất bằng cách giảm số lượng chuyển đổi ngữ cảnh giữa hệ điều hành khách và môi trường máy chủ. Về phía không gian người dùng, libnvmm cố gắng tổng hợp các hoạt động I/O phổ biến và tránh thực hiện các cuộc gọi hệ thống một cách không cần thiết. Hệ thống cấp phát bộ nhớ dựa trên hệ thống con pmap, cho phép bạn chuyển các trang bộ nhớ khách sang phân vùng trao đổi trong trường hợp thiếu bộ nhớ trong hệ thống. NVMM không có khóa toàn cầu và có quy mô tốt, cho phép bạn sử dụng đồng thời các lõi CPU khác nhau để chạy các máy ảo khách khác nhau.
Một giải pháp dựa trên QEMU đã được chuẩn bị sử dụng NVMM để kích hoạt các cơ chế ảo hóa phần cứng. Công việc đang được tiến hành để đưa các bản vá đã chuẩn bị vào cấu trúc chính của QEMU. Sự kết hợp QEMU+NVMM đã sẵn sàng
Nguồn: opennet.ru