eBPF开发工具链
2022-12-7 08:2:12 Author: 奶牛安全(查看原文) 阅读量:16 收藏

几个开发工具链可以帮助开发和管理eBPF程序。它们面向了用户的不同需求。

BCC

BCC是一个框架,允许用户可以写内嵌eBPF程序的python脚本。该框架主要针对涉及应用程序和系统分析/跟踪的用例,其中eBPF程序用于收集统计数据或生成事件,而用户空间中的对应程序收集数据并以人类可读的形式显示。运行python程序将生成eBPF字节码并将其加载到内核中。

地址:https://github.com/iovisor/bcc

bpftrace

bpftrace是一种针对Linux eBPF的高级跟踪语言,可在Linux内核4.x以上中使用。bpftrace使用LLVM作为后端,将脚本编译为eBPF字节码,并利用BCCLinux eBPF子系统以及现有的Linux跟踪功能进行交互:内核动态跟踪(kprobe)、用户级动态跟踪(uprobe)和跟踪点。bpftrace语言的灵感来自awkC以及之前的跟踪程序,如DTraceSystemTap

地址:https://github.com/iovisor/bpftrace

bpftrace

eBPF Go

eBPF Go库提供了一个通用的库,解耦了获取eBPF字节码流程和eBPF程序的加载及管理。eBPF程序一般通过高级语言编写,然后使用clang/LLVM编译器编译成eBPF字节码。地址:https://github.com/cilium/ebpf

libbpf C/C++

libbpf库是一个基于C/C++eBPF库,用于解耦由clang/LLVM编译生成的eBPF对象到内核的加载和通过向应用程序提供一个易用的库来简化bpf系统调用的交互。地址:https://www.kernel.org/doc/html/latest/bpf/libbpf/index.html

暗号:2f6dc


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4NjY0NTExNA==&mid=2247487159&idx=1&sn=ed3b16f57d488c29f9594cd1b7178f23&chksm=fdf965a2ca8eecb498809a319f7e6851f618ef5a899688ea2bcfcf989f0ee5a877a42c931efc#rd
如有侵权请联系:admin#unsafe.sh