eunomia-bpf 适用于通用的、任意类型的 eBPF 程序,不仅局限于 trace 方面的 kprobe、uprobe、fentry 等,也支持如 lsm、tc、xdp 等类型的 eBPF 应用,都只需要编写内核态代码即可完成。 上图中为放入 URL 里的形式,也可以换成 OCI 镜像或 Docker 镜像,可以存储在 Docker 仓库或 github package ,使用方式与 Doc...
我们的主要开发在 Github 仓库中完成:https://github.com/eunomia-bpf/eunomia-bpf 项目架构 我们有一个加载器库,一个编译工具链,以及一些额外的工具,如cli和一个自定义指标导出器。 一个bpf-loader库 这个库包含了libbpf的主要函数,提供了将eBPF代码动态加载到内核的能力,并使用JSON和简单的API运行它。 查看bpf-...
需要编写用户态代码的时候,也可以借助 Webassembly 实现通过多种语言进行用户态开发。和 bpftrace 等脚本工具相比, eunomia-bpf 保留了类似的便捷性, 同时不仅局限于 trace 方面, 可以用于更多的场景, 如网络、安全等等。 eunomia-bpf 项目 Github 地址: https://github.com/eunomia-bpf/eunomia-bpf...
需要编写用户态代码的时候,也可以借助 Webassembly(Wasm) 实现通过多种语言进行用户态开发。和 bpftrace 等脚本工具相比, eunomia-bpf 保留了类似的便捷性, 同时不仅局限于 trace 方面, 可以用于更多的场景, 如网络、安全等等。 eunomia-bpf 项目 Github 地址:https://github.com/eunomia-bpf/eunomia-bpf...
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库:https://github.com/eunomia-bpf/eunomia-bpf master 克隆/下载 git config --global user.name userName git config --global user.email userEmail 分支34 标签101 dependabot[bot]build(deps): bump mio from 0.8.8 to 0.8.11...291304b7...
参考:https://github.com/eunomia-bpf/eunomia-bpf/tree/master/bpftools/examples/bootstrap 代码语言:javascript 代码运行次数:0 运行 AI代码解释 struct{__uint(type,BPF_MAP_TYPE_HASH);__uint(max_entries,8192);__type(key,pid_t);__type(value,u64);}exec_startSEC(".maps"); ...
Github code repo and examples:https://github.com/eunomia-bpf/bpf-developer-tutorial Blogs:https://eunomia.dev/blogs/ "bpftime: Userspace eBPF Runtime for Network and Observability" ateBPF summit 2024 "bpftime: Fast uprobes with user space BPF runtime" atLinux Plumbers Conference 2023 ...
High-level tracing language for Linux eBPF. Contribute to eunomia-bpf/bpftrace development by creating an account on GitHub.
detail documents and tutorials about how we train ChatGPT to write eBPF programs:https://github.com/eunomia-bpf/bpf-developer-tutorial(基于 CO-RE (一次编写,到处运行) libbpf 的 eBPF 开发者教程:通过 20 个小工具一步步学习 eBPF(尝试教会 ChatGPT 编写 eBPF 程序) ...
For a eBPF program like https://github.com/eunomia-bpf/bpftime/blob/master/example/xdp-counter/: // use map type define struct { __uint(type, BPF_MAP_TYPE_ARRAY); __type(key, __u32); __type(value, __u32); __uint(max_entries, CTRL_ARRAY_SIZE); } ctl_array SEC(".maps")...