NetBSD Project Developers
Το NVMM περιλαμβάνει ένα πρόγραμμα οδήγησης που εκτελείται σε επίπεδο πυρήνα συστήματος και συντονίζει την πρόσβαση σε μηχανισμούς εικονικοποίησης υλικού, και μια στοίβα Libnvmm που εκτελείται στο χώρο χρήστη. Η αλληλεπίδραση μεταξύ των στοιχείων του πυρήνα και του χώρου χρήστη πραγματοποιείται μέσω του IOCTL. Ένα χαρακτηριστικό του NVMM που το διακρίνει από τους hypervisors όπως το KVM είναι
Ωστόσο, το ίδιο το Libnvmm δεν περιέχει λειτουργίες εξομοιωτή, αλλά παρέχει μόνο ένα API που σας επιτρέπει να ενσωματώσετε υποστήριξη NVMM σε υπάρχοντες εξομοιωτές, για παράδειγμα, QEMU. Το API καλύπτει λειτουργίες όπως η δημιουργία και η εκκίνηση μιας εικονικής μηχανής, η κατανομή μνήμης στο σύστημα φιλοξενουμένων και η κατανομή VCPU. Για να βελτιώσει την ασφάλεια και να μειώσει πιθανά διανύσματα επίθεσης, το libnvmm παρέχει μόνο λειτουργίες που ζητούνται ρητά—από προεπιλογή, οι σύνθετοι χειριστές δεν καλούνται αυτόματα και ενδέχεται να μην χρησιμοποιηθούν καθόλου εάν μπορούν να αποφευχθούν. Το NVMM προσπαθεί να κρατά τα πράγματα απλά, χωρίς να γίνεται πολύ περίπλοκο, και σας επιτρέπει να ελέγχετε όσο το δυνατόν περισσότερες πτυχές της εργασίας σας.
Το τμήμα του NVMM σε επίπεδο πυρήνα είναι αρκετά στενά ενσωματωμένο με τον πυρήνα NetBSD και επιτρέπει βελτιωμένη απόδοση μειώνοντας τον αριθμό των εναλλαγών περιβάλλοντος μεταξύ του λειτουργικού συστήματος επισκέπτη και του περιβάλλοντος κεντρικού υπολογιστή. Από την πλευρά του χώρου χρήστη, το libnvmm προσπαθεί να συγκεντρώσει κοινές λειτουργίες εισόδου/εξόδου και να αποφύγει τις άσκοπες κλήσεις συστήματος. Το σύστημα εκχώρησης μνήμης βασίζεται στο υποσύστημα pmap, το οποίο σας επιτρέπει να αφαιρέσετε σελίδες μνήμης φιλοξενουμένων στο διαμέρισμα ανταλλαγής σε περίπτωση έλλειψης μνήμης στο σύστημα. Το NVMM είναι απαλλαγμένο από παγκόσμιες κλειδαριές και κλίμακες, επιτρέποντάς σας να χρησιμοποιείτε ταυτόχρονα διαφορετικούς πυρήνες CPU για να εκτελείτε διαφορετικές εικονικές μηχανές επισκέπτη.
Έχει ετοιμαστεί μια λύση που βασίζεται σε QEMU που χρησιμοποιεί NVMM για την ενεργοποίηση μηχανισμών εικονικοποίησης υλικού. Γίνονται εργασίες για να συμπεριληφθούν τα προετοιμασμένα patches στην κύρια δομή του QEMU. Ο συνδυασμός QEMU+NVMM είναι ήδη
Πηγή: opennet.ru