NetBSD Projet Entwéckler
NVMM enthält e Chauffer deen um Systemkärnniveau leeft an den Zougang zu Hardwarevirtualiséierungsmechanismen koordinéiert, an e Libnvmm Stack deen am Benotzerraum leeft. Interaktioun tëscht Kernel Komponenten a Benotzerraum gëtt duerch IOCTL duerchgefouert. Eng Fonktioun vun NVMM datt et aus hypervisors wéi KVM ënnerscheet ass
Wéi och ëmmer, Libnvmm selwer enthält keng Emulatorfunktiounen, awer stellt nëmmen eng API déi Iech erlaabt NVMM Ënnerstëtzung an existent Emulatoren z'integréieren, zum Beispill QEMU. D'API deckt Funktiounen wéi d'Erstelle an d'Start vun enger virtueller Maschinn, d'Erënnerung vum Gedächtnis un de Gaaschtsystem an d'Verdeelung vun VCPUs. Fir d'Sécherheet ze verbesseren a méiglech Attackvektoren ze reduzéieren, bitt libnvmm nëmme Funktiounen déi explizit ugefrot sinn - Par défaut ginn komplex Handler net automatesch opgeruff a kënne guer net benotzt ginn wa se vermeide kënnen. NVMM probéiert d'Saachen einfach ze halen, ouni ze komplizéiert ze ginn, an erlaabt Iech esou vill Aspekter vun Ärer Aarbecht wéi méiglech ze kontrolléieren.
De Kernel-Niveau Deel vun NVMM ass zimmlech enk mam NetBSD Kernel integréiert, an erlaabt eng verbessert Leeschtung andeems d'Zuel vu Kontextschalter tëscht dem Gaascht OS an dem Hostëmfeld reduzéiert gëtt. Op der Säit vum Benotzerraum probéiert libnvmm gemeinsam I / O Operatiounen ze aggregéieren an onnéideg Systemruffen ze vermeiden. De Memory Allocation System baséiert op dem pmap Subsystem, wat Iech erlaabt Gaascht Erënnerung Säiten op d'Swap Partition am Fall vun Erënnerung Mangel am System ze evict. NVMM ass fräi vu globale Spären a Skala gutt, wat Iech erlaabt gläichzäiteg verschidde CPU Cores ze benotzen fir verschidde Gaascht virtuell Maschinnen ze lafen.
Eng QEMU-baséiert Léisung gouf virbereet déi NVMM benotzt fir Hardwarevirtualiséierungsmechanismen z'erméiglechen. D'Aarbecht ass amgaang fir déi preparéiert Patches an der Haaptstruktur vum QEMU opzehuelen. D'QEMU + NVMM Kombinatioun ass scho
Source: opennet.ru