
eBPF技术专栏
文章平均质量分 91
eBPF相关
内核程序员kevin
我是一名程序员, 专注于Linux应用程序与内核模块开发,喜欢研究各种技术。目前担任某数据安全企业架构师, 在安全软件研发和架构领域深耕近15年。
我希望能帮助更多的程序员成长。
欢迎关注我,让我们一起探讨技术,共同进步。
展开
-
eBPF的CO-RE用法与原理简介
本文介绍了eBPF的CO-RE(Compile Once – Run Everywhere)技术的应用与实现原理,旨在帮助开发者编写跨内核版本兼容的eBPF程序。文章首先阐述了背景与意义,指出eBPF作为内核级执行环境在多种领域的重要性以及不同内核版本间数据结构差异带来的挑战。接着详细讲解了从代码编写、编译生成BTF信息到程序加载和内核适配的具体步骤,并深入分析了如何确保eBPF代码符合CO-RE标准。原创 2025-02-21 09:15:00 · 1050 阅读 · 0 评论 -
基于eBPF和LSM的强制文件访问控制系统架构设计和实现
本文介绍了一种基于 eBPF 与 Linux 安全模块(LSM)实现的强制文件访问控制系统。该系统利用 eBPF 的高性能和动态加载能力以及 LSM 的系统调用拦截功能,提供了灵活且强大的文件访问控制策略。文章详细描述了系统的设计思路、架构组成、关键代码实现及错误处理方式。通过用户空间程序与内核态 eBPF 程序的协作,实现了对文件操作的实时监控和控制,支持动态更新安全策略而无需重启系统。此外,文中还讨论了未来可能的扩展方向,如增加更多 hook 点、集成其他安全模块以及性能优化等。原创 2025-02-06 09:15:00 · 1057 阅读 · 0 评论 -
eBPF 的 Go 语言库 libbpfgo 源代码分析和使用
本文介绍了eBPF的Go语言库libbpfgo的源代码分析和使用方法。文章首先概述了eBPF在Linux系统中的重要性,以及`libbpf`库如何简化eBPF程序的加载与管理。接着,文章详细探讨了libbpfgo通过cgo桥接Go与C语言编写的`libbpf`库,解决了内存管理、错误处理和性能开销等挑战。文中重点解析了libbpfgo中的三个核心结构体:`Module`负责加载和管理eBPF对象文件;`BPFMap`封装了对eBPF映射的操作;`BPFProg`则用于管理和附加eBPF程序到内核事件。原创 2025-01-16 09:15:00 · 1854 阅读 · 0 评论 -
理解并使用Linux内核中的XDP
`XDP`(eXpress Data Path)是Linux内核提供的高性能数据包处理技术,它直接在网络驱动层操作数据包,在进入内核协议栈前完成处理,因此具备低延迟和高吞吐量的特点。XDP适用于DoS攻击防御、负载均衡及高效的数据包过滤等场景。与netfilter、TC、DPDK相比,XDP以更高的性能和更简单的逻辑著称,但功能相对有限。原创 2024-12-20 09:15:00 · 1789 阅读 · 0 评论 -
【转载】eBPF 入门开发实践教程一:Hello World,基本框架和开发流程
eBPF入门看这一篇就够了转载 2024-12-18 09:17:26 · 330 阅读 · 0 评论 -
使用Go语言开发eBPF入门教程
在这篇文章中,我们一起探索了 eBPF 技术,通过克隆 `cilium/ebpf` 仓库,编写了一个简单的 eBPF 程序 `hello.c`,并在 Go 代码 `hello.go` 中加载和运行了该程序。我们使用 Kprobe 监控 `execve` 系统调用,并在每次调用时向内核日志打印一条消息。通过 `go generate` 和 `go build` 编译运行程序,最终在 `/sys/kernel/tracing/trace_pipe` 中看到了输出。原创 2024-11-18 09:15:00 · 590 阅读 · 0 评论