منصوبے کے بارے میں
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: native Go استعمال کرتے ہوئے BPF سے متعلق کرنل خصوصیات دریافت کرتا ہے، جو bpftool feature probe کے مساوی ہے
- rlimit: 5.11 سے پہلے کے کرنلز پر RLIMIT_MEMLOCK کی پابندی ہٹاتا ہے
- btf: BPF Type Format پڑھتا ہے
- pin: bpffs پر پن شدہ آبجیکٹس کے ساتھ کام کرتا ہے
یہ پروجیکٹ Linux (amd64، arm64) کو kernel.org LTS ریلیزز کے ساتھ، اور Windows (amd64) کو eBPF for Windows کے ذریعے سپورٹ کرتا ہے۔ دیگر آرکیٹیکچرز کے لیے بہترین کوشش کی جاتی ہے، اور 32-bit آرکیٹیکچرز سپورٹ نہیں ہیں۔ لائبریری MIT لائسنس کے تحت ہے اور یہ وسیع تر eBPF ایکو سسٹم کا حصہ ہے جس کی دستاویزات ebpf.io پر موجود ہیں۔
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.