इस प्रोजेक्ट के बारे में

ebpf-go, Cilium की एक शुद्ध Go लाइब्रेरी है जो eBPF प्रोग्राम लोड, कंपाइल और डीबग करने के लिए उपयोगिताएँ प्रदान करती है। इसमें न्यूनतम बाहरी निर्भरताएँ हैं और यह लंबे समय तक चलने वाली प्रक्रियाओं में उपयोग के लिए बनाई गई है। लाइब्रेरी में कई पैकेज शामिल हैं: - asm: Go कोड में सीधे eBPF असेंबली निर्देश लिखने के लिए एक बुनियादी असेंबलर - cmd/bpf2go: Go कोड के भीतर C में लिखे eBPF प्रोग्राम को कंपाइल और एम्बेड करता है, eBPF प्रोग्राम और मैप ऑब्जेक्ट को लोड और मैनिपुलेट करने के लिए Go कोड स्वतः जनरेट करता है - link: eBPF प्रोग्राम को विभिन्न कर्नेल हुक से अटैच करता है - perf: PERF_EVENT_ARRAY से पढ़ता है - ringbuf: BPF_MAP_TYPE_RINGBUF मैप से पढ़ता है - features: नेटिव Go का उपयोग करके BPF-संबंधित कर्नेल फीचर्स की खोज करता है, जो bpftool feature probe के समतुल्य है - RLIMIT तक सीमा को पहले के कर्नेल पर सेट करता है - btf: BPF Type Format को पढ़ता है - pin: bpffs पर पिन किए गए ऑब्जेक्ट के साथ काम करता है यह प्रोजेक्ट kernel.org LTS रिलीज़ के साथ Linux (amd64, arm64) और eBPF for Windows के माध्यम से Windows (amd64) का समर्थन करता है। अन्य आर्किटेक्चर के लिए सर्वोत्तम प्रयास किया जाता है, और 32-बिट आर्किटेक्चर समर्थित नहीं हैं। लाइब्रेरी MIT के अंतर्गत लाइसेंस प्राप्त है और ebpf.io पर प्रलेखित व्यापक eBPF इकोसिस्टम का हिस्सा है।