প্রকল্প সম্পর্কে

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: 5.11-এর আগের কার্নেলে RLIMIT_MEMLOCK সীমাবদ্ধতা উত্তোলন করে - btf: BPF Type Format পড়ে - pin: bpffs-এ পিন করা অবজেক্টের সাথে কাজ করে প্রকল্পটি Linux (amd64, arm64) সমর্থন করে kernel.org LTS রিলিজসহ, এবং Windows (amd64) eBPF for Windows-এর মাধ্যমে। অন্যান্য আর্কিটেকচার সর্বোচ্চ চেষ্টার ভিত্তিতে, এবং 32-বিট আর্কিটেকচার সমর্থিত নয়। লাইব্রেরিটি MIT লাইসেন্সের অধীনে এবং ebpf.io-তে নথিভুক্ত বৃহত্তর eBPF ইকোসিস্টেমের অংশ।