NetBSD ప్రాజెక్ట్ డెవలపర్లు
NVMM సిస్టమ్ కెర్నల్ స్థాయిలో రన్ అయ్యే డ్రైవర్ను కలిగి ఉంటుంది మరియు హార్డ్వేర్ వర్చువలైజేషన్ మెకానిజమ్లకు యాక్సెస్ను సమన్వయం చేస్తుంది మరియు వినియోగదారు స్థలంలో రన్ అయ్యే Libnvmm స్టాక్. కెర్నల్ భాగాలు మరియు వినియోగదారు స్థలం మధ్య పరస్పర చర్య IOCTL ద్వారా నిర్వహించబడుతుంది. NVMM యొక్క లక్షణం KVM వంటి హైపర్వైజర్ల నుండి వేరు చేస్తుంది
అయినప్పటికీ, Libnvmm కూడా ఎమ్యులేటర్ ఫంక్షన్లను కలిగి ఉండదు, కానీ ఇప్పటికే ఉన్న ఎమ్యులేటర్లలో NVMM మద్దతును ఏకీకృతం చేయడానికి మిమ్మల్ని అనుమతించే APIని మాత్రమే అందిస్తుంది, ఉదాహరణకు, QEMU. వర్చువల్ మిషన్ను సృష్టించడం మరియు ప్రారంభించడం, గెస్ట్ సిస్టమ్కు మెమరీని కేటాయించడం మరియు VCPUలను కేటాయించడం వంటి ఫంక్షన్లను API కవర్ చేస్తుంది. భద్రతను మెరుగుపరచడానికి మరియు సాధ్యమయ్యే దాడి వెక్టర్లను తగ్గించడానికి, libnvmm స్పష్టంగా అభ్యర్థించిన ఫంక్షన్లను మాత్రమే అందిస్తుంది-డిఫాల్ట్గా, కాంప్లెక్స్ హ్యాండ్లర్లు స్వయంచాలకంగా పిలవబడవు మరియు వాటిని నివారించగలిగితే అస్సలు ఉపయోగించబడకపోవచ్చు. NVMM చాలా క్లిష్టంగా మారకుండా, మరియు మీ పనిలో వీలైనన్ని అంశాలను నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది, విషయాలను సరళంగా ఉంచడానికి ప్రయత్నిస్తుంది.
NVMM యొక్క కెర్నల్-స్థాయి భాగం NetBSD కెర్నల్తో చాలా కఠినంగా అనుసంధానించబడి ఉంది మరియు గెస్ట్ OS మరియు హోస్ట్ ఎన్విరాన్మెంట్ మధ్య సందర్భ స్విచ్ల సంఖ్యను తగ్గించడం ద్వారా మెరుగైన పనితీరును అనుమతిస్తుంది. వినియోగదారు స్థలం వైపు, libnvmm సాధారణ I/O ఆపరేషన్లను సమగ్రపరచడానికి ప్రయత్నిస్తుంది మరియు అనవసరంగా సిస్టమ్ కాల్లను నివారించేందుకు ప్రయత్నిస్తుంది. మెమరీ కేటాయింపు వ్యవస్థ pmap సబ్సిస్టమ్పై ఆధారపడి ఉంటుంది, ఇది సిస్టమ్లో మెమరీ కొరత ఉన్న సందర్భంలో స్వాప్ విభజనకు గెస్ట్ మెమరీ పేజీలను తొలగించడానికి మిమ్మల్ని అనుమతిస్తుంది. NVMM గ్లోబల్ లాక్లు మరియు స్కేల్లు లేకుండా ఉంటుంది, వివిధ గెస్ట్ వర్చువల్ మెషీన్లను అమలు చేయడానికి వివిధ CPU కోర్లను ఏకకాలంలో ఉపయోగించేందుకు మిమ్మల్ని అనుమతిస్తుంది.
హార్డ్వేర్ వర్చువలైజేషన్ మెకానిజమ్లను ప్రారంభించడానికి NVMMని ఉపయోగించే QEMU-ఆధారిత పరిష్కారం సిద్ధం చేయబడింది. QEMU యొక్క ప్రధాన నిర్మాణంలో సిద్ధం చేసిన ప్యాచ్లను చేర్చడానికి పని జరుగుతోంది. QEMU+NVMM కలయిక ఇప్పటికే ఉంది
మూలం: opennet.ru