GCC компилятор топтомуна киргизилген
Байткодду түзүү үчүн бэкендден тышкары, GCC eBPF үчүн libgcc портун жана ядро менен камсыздалган жүктөгүчтөрдү колдонуу менен eBPF виртуалдык машинасында кодду аткарууга мүмкүндүк берген ELF файлдарын түзүү үчүн куралдарды камтыйт. GCCде eBPFди колдоо үчүн патчтарды Oracle компаниясынын инженерлери даярдашкан
eBPF үчүн программалар C тилинин бир бөлүгүндө аныкталып, компиляцияланып, ядрого жүктөлүшү мүмкүн. Аткаруу алдында eBPF котормочу байт кодду уруксат берилген нускамаларды колдонуу үчүн текшерет жана кодго белгилүү бир эрежелерди киргизет (мисалы, циклдер жок).
Башында, LLVM негизделген куралдар Linux боюнча eBPF түзүү үчүн колдонулган. GCCдеги eBPF колдоосу кызыктуу, анткени ал кошумча көз карандылыкты орнотпостон, Linux ядросун жана eBPF программаларын куруу үчүн бир инструментти колдонууга мүмкүндүк берет.
eBPF программалары түрүндө сиз тармактын операциясынын иштеткичтерин түзө аласыз, трафикти чыпкалай аласыз, өткөрүү жөндөмдүүлүгүн башкара аласыз, системаларды көзөмөлдөй аласыз, тутумдук чалууларды токтото аласыз, кирүү мүмкүнчүлүгүн көзөмөлдөй аласыз, операциялардын жыштыгын жана убактысын эсептей аласыз жана kprobes/uprobes/tracepoints аркылуу байкоо жүргүзө аласыз.
Source: opennet.ru