మైక్రోసాఫ్ట్ eBPF సబ్సిస్టమ్ యొక్క అమలును ప్రచురించింది Windowsఇది ఆపరేటింగ్ సిస్టమ్ కెర్నల్ స్థాయిలో నడిచే ఏకపక్ష హ్యాండ్లర్ల అమలును అనుమతిస్తుంది. eBPF కెర్నల్లో విలీనం చేయబడిన బైట్కోడ్ ఇంటర్ప్రెటర్ను అందిస్తుంది, ఇది యూజర్-స్పేస్లో లోడ్ చేయగల నెట్వర్క్ ఆపరేషన్ హ్యాండ్లర్లు, యాక్సెస్ నియంత్రణ మరియు సిస్టమ్ పర్యవేక్షణను సృష్టించడానికి వీలు కల్పిస్తుంది. eBPF కెర్నల్లో చేర్చబడింది. Linux విడుదల 3.18 నుండి, ఇది ఇన్కమింగ్/అవుట్గోయింగ్ నెట్వర్క్ ప్యాకెట్లను ప్రాసెస్ చేయడం, ప్యాకెట్ రీడైరెక్షన్, బ్యాండ్విడ్త్ నిర్వహణ, సిస్టమ్ కాల్ ఇంటర్సెప్షన్, యాక్సెస్ కంట్రోల్ మరియు ట్రేసింగ్ను సాధ్యం చేస్తుంది. జస్ట్-ఇన్-టైమ్ (JIT) కంపైలేషన్కు ధన్యవాదాలు, బైట్కోడ్ తక్షణమే మెషిన్ సూచనలుగా అనువదించబడుతుంది మరియు కంపైల్ చేయబడిన కోడ్ పనితీరుతో అమలు చేయబడుతుంది. eBPF సోర్స్ కోడ్ కోసం Windows MIT లైసెన్స్ క్రింద ఓపెన్ సోర్స్ చేయబడింది.
eBPF కోసం Windows ఇప్పటికే ఉన్న eBPF సాధనాలతో ఉపయోగించవచ్చు మరియు eBPF అప్లికేషన్ల కోసం ఉపయోగించే ప్రామాణిక APIని అందిస్తుంది. Linuxఇతర విషయాలతో పాటు, ఈ ప్రాజెక్ట్ Clang ఆధారిత ప్రామాణిక eBPF కంపైలర్ను ఉపయోగించి C లో వ్రాసిన కోడ్ను eBPF బైట్కోడ్గా కంపైల్ చేయడానికి మరియు ఇప్పటికే సృష్టించబడిన వాటిని అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. Linux కెర్నల్ పైన eBPF హ్యాండ్లర్లు WindowseBPF ప్రోగ్రామ్లతో పరస్పరం పనిచేసే అప్లికేషన్లతో అనుకూలత కోసం ఒక ప్రత్యేక అనుకూలత పొరను అందించడం మరియు ప్రామాణిక Libbpf APIకి మద్దతు ఇవ్వడం. ఇందులో అందించే పొరలు ఉంటాయి. LinuxXDP (ఎక్స్ప్రెస్ డేటా పాత్) మరియు సాకెట్ బైండ్ కోసం హుక్స్ వంటివి, నెట్వర్క్ స్టాక్ మరియు నెట్వర్క్ డ్రైవర్లకు యాక్సెస్ను అబ్స్ట్రాక్ట్ చేస్తాయి Windowsప్రామాణిక eBPF హ్యాండ్లర్లతో పూర్తి సోర్స్-స్థాయి అనుకూలతను అందించడం ప్రణాళికలలో భాగంగా ఉంది. Linux.

eBPF అమలులో కీలకమైన వ్యత్యాసం Windows దీనికి పరిష్కారం, VMware ఉద్యోగులు మరియు కెనడియన్, ఇజ్రాయెల్ విశ్వవిద్యాలయాల పరిశోధకులు మొదటగా ప్రతిపాదించిన ఒక ప్రత్యామ్నాయ బైట్కోడ్ వెరిఫైయర్ను ఉపయోగించడం. ఈ వెరిఫైయర్ యూజర్ స్పేస్లో ఒక ప్రత్యేకమైన, ఏకాంత ప్రాసెస్లో నడుస్తుంది మరియు BPF ప్రోగ్రామ్లను ఎగ్జిక్యూట్ చేయడానికి ముందు లోపాలను గుర్తించడానికి, సంభావ్య హానికరమైన కార్యకలాపాలను నిరోధించడానికి దీనిని ఉపయోగిస్తారు.
eBPFలో తనిఖీ చేయడానికి Windows అబ్స్ట్రాక్ట్ ఇంటర్ప్రెటేషన్ ఆధారిత స్టాటిక్ విశ్లేషణ పద్ధతిని ఉపయోగిస్తారు, ఇది eBPF వెరిఫైయర్తో పోలిస్తే, Linux ఈ పద్ధతి తక్కువ ఫాల్స్ పాజిటివ్ రేటును ప్రదర్శిస్తుంది, లూప్ విశ్లేషణకు మద్దతు ఇస్తుంది మరియు మంచి స్కేలబిలిటీని నిర్ధారిస్తుంది. ఇది ఇప్పటికే ఉన్న eBPF ప్రోగ్రామ్లను విశ్లేషించడం ద్వారా పొందిన వివిధ రకాల సాధారణ ఎగ్జిక్యూషన్ ప్యాటర్న్లను పరిగణనలోకి తీసుకుంటుంది.
ధృవీకరణ తర్వాత, బైట్కోడ్ను కెర్నల్ స్థాయిలో నడుస్తున్న ఇంటర్ప్రెటర్కు పంపడం లేదా జస్ట్-ఇన్-టైమ్ (JIT) కంపైలర్ ద్వారా పంపడం జరుగుతుంది, ఆ తర్వాత ఫలితంగా వచ్చిన మెషీన్ కోడ్ను కెర్నల్ అధికారాలతో అమలు చేస్తారు. కెర్నల్ స్థాయిలో eBPF హ్యాండ్లర్లను వేరు చేయడానికి, HVCI (హైపర్వైజర్-ఎన్ఫోర్స్డ్ కోడ్ ఇంటిగ్రిటీ) యంత్రాంగాన్ని ఉపయోగిస్తారు. ఈ యంత్రాంగం కెర్నల్ ప్రాసెస్లను రక్షించడానికి వర్చువలైజేషన్ను ఉపయోగిస్తుంది మరియు డిజిటల్ సంతకం ద్వారా అమలు చేయబడిన కోడ్ యొక్క సమగ్రతను నిర్ధారిస్తుంది. HVCI యొక్క ఒక పరిమితి ఏమిటంటే, ఇది కేవలం ఇంటర్ప్రెటెడ్ eBPF ప్రోగ్రామ్లను మాత్రమే ధృవీకరించగలదు మరియు దీనిని JITతో కలిపి ఉపయోగించలేరు (పనితీరు లేదా అదనపు రక్షణ మధ్య ఎంపిక ఉంటుంది).
మూలం: opennet.ru
