GCC compiler suite တွင် ပါဝင်သည်။
bytecode မျိုးဆက်အတွက် နောက်ကွယ်တစ်ခုအပြင်၊ GCC တွင် eBPF အတွက် libgcc အပေါက်တစ်ခု နှင့် ELF ဖိုင်များကို ထုတ်လုပ်ရန်အတွက် ကိရိယာများ ပါ၀င်ပြီး kernel-provided loaders များကို အသုံးပြု၍ eBPF virtual machine တွင် ကုဒ်ကို လုပ်ဆောင်နိုင်စေပါသည်။ GCC ရှိ eBPF ကို ပံ့ပိုးရန် Patches များကို Oracle မှ အင်ဂျင်နီယာများက ပြင်ဆင်ပေးခဲ့ပါသည်။
eBPF အတွက် ပရိုဂရမ်များကို C ဘာသာစကား၏ အစုအဝေးတစ်ခုတွင် သတ်မှတ်နိုင်ပြီး၊ စုစည်းပြီး kernel ထဲသို့ တင်နိုင်သည်။ မလုပ်ဆောင်မီ၊ eBPF စကားပြန်သည် ခွင့်ပြုထားသော ညွှန်ကြားချက်များကို အသုံးပြုခြင်းအတွက် bytecode ကို စစ်ဆေးပြီး ကုဒ်ပေါ်တွင် အချို့သော စည်းမျဉ်းများ ချမှတ်သည် (ဥပမာ၊ loops မရှိပါ)။
အစပိုင်းတွင်၊ LLVM-based ကိရိယာများကို Linux တွင် eBPF စုစည်းရန် အသုံးပြုခဲ့သည်။ GCC ရှိ eBPF ပံ့ပိုးမှုသည် သင့်အား အပိုမှီခိုမှုများအား ထည့်သွင်းခြင်းမရှိဘဲ Linux kernel နှင့် eBPF ပရိုဂရမ်များကို တည်ဆောက်ရန် ကိရိယာအစုံအလင်တစ်ခုကို အသုံးပြုခွင့်ပေးသောကြောင့် စိတ်ဝင်စားစရာကောင်းပါသည်။
eBPF ပရိုဂရမ်ပုံစံဖြင့် သင်သည် ကွန်ရက်လည်ပတ်မှုကိုင်တွယ်ကိရိယာများကို ဖန်တီးခြင်း၊ အသွားအလာစစ်ထုတ်ခြင်း၊ ဘန်းဝဒ်ကို စီမံခြင်း၊ မော်နီတာစနစ်များ၊ စနစ်ခေါ်ဆိုမှုများကို ကြားဖြတ်ရယူခြင်း၊ ဝင်ရောက်ထိန်းချုပ်ခြင်း၊ ကြိမ်နှုန်းနှင့် လုပ်ဆောင်မှုအချိန်ကို ရေတွက်နိုင်ပြီး kprobes/uprobes/tracepoints များကို အသုံးပြု၍ ခြေရာခံနိုင်သည်။
source: opennet.ru