Blog

- 简化内核编程:LLM驱动的eBPF工具 - 借助 eBPF 和 BTF,让用户态也能一次编译、到处运行 - 五分钟带你手搓一个简易的 inline hook 实现控制流劫持 - bpftime: 让 eBPF 从内核扩展到用户空间 - eBPF 运行时安全性:面临的挑战与前沿创新 - 用户空间 eBPF 运行时:深度解析与应用实践 - Wasm-bpf: 架起 Webassembly 和 eBPF 内核可编程的桥梁 - 在 WebA

eunomia-bpf 0.3.0 发布:只需编写内核态代码,轻松构建、打包、发布完整的 eBPF 应用

eBPF 源于 BPF,本质上是处于内核中的一个高效与灵活的虚拟机组件,以一种安全的方式在许多内核 hook 点执行字节码,开发者可基于 eBPF 开发性能分析工具、软件定义网络、安全等诸多场景。但是,目前对于开发和使用 eBPF 应用而言还可能存在一些不够方便的地方:

eunomia-bpf v1.0:eBPF + Wasm 质的飞跃

随着技术的不断发展,eBPF已经成为了现代Linux内核中的一个核心组件,为开发者提供了强大的性能监控和网络跟踪功能。eunomia-bpf 作为一个新的 eBPF 开源开发框架,旨在简化 eBPF 程序的构建和分发,同时引入了 Wasm技术,为开发者提供了更多的可能性。在过去的半年中,从最初的PoC版本到如今的1.0版本,它已经经历了巨大的变革,成为了一个功能丰富的成熟产品。

eBPF 进阶: 内核新特性进展一览

Linux 内核在 2022 年主要发布了 5.16-5.19 以及 6.0 和 6.1 这几个版本,每个版本都为 eBPF 引入了大量的新特性。本文将对这些新特性进行一点简要的介绍,更详细的资料请参考对应的链接信息。总体而言,eBPF 在内核中依然是最活跃的模块之一,它的功能特性也还在高速发展中。某种意义上说,eBPF 正朝着一个完备的内核态可编程接口快速进化。 <!-- TOC --

bpftime: 让 eBPF 从内核扩展到用户空间

eBPF 是一项革命性的技术,起源于 Linux 内核,可以在操作系统的内核中运行沙盒程序。它被用来安全和有效地扩展内核的功能,而不需要改变内核的源代码或加载内核模块。

Can LLMs understand Linux kernel? A New AI-Powered Approach to Understanding Large Codebases

Ever tried diving into a massive codebase like the Linux kernel and felt like you were swimming in an ocean of code with no land in sight? Trust me, you're not alone. Understanding large, complex, and constantly evolving

eunomia-bpf:展望 2023,让 eBPF 插上 Wasm 的翅膀

回望过去的 2022 年,有两项技术备受瞩目:eBPF 和 WebAssembly。

The eBPF Evolution and Future: From Linux Origins to Cross-Platform Dominance

eBPF (Extended Berkeley Packet Filter) has become a revolutionary force in operating system kernel programming since its inception. Initially created for network packet filtering, eBPF has evolved into a versatile kernel

eBPF 的演进与影响:近年的关键研究论文一览

这是我近年来读过的与 eBPF 相关的论文列表,可能对于对 eBPF 相关研究感兴趣的人有所帮助。

eBPF 运行时安全性:面临的挑战与前沿创新

扩展伯克利数据包过滤器(eBPF)代表了我们与现代操作系统交互和扩展其能力方式的重大演变。作为一种强大的技术,它使得Linux内核能够响应事件运行沙盒程序,eBPF已成为系统可观察性、网络和安全特性的基石。

当 Wasm 遇见 eBPF :使用 WebAssembly 编写、分发、加载运行 eBPF 程序

当今云原生世界中两个最热门的轻量级代码执行沙箱/虚拟机是 eBPF 和 WebAssembly。它们都运行从 C、C++ 和 Rust 等语言编译的高性能字节码程序,并且都是跨平台、可移植的。二者最大的区别在于: eBPF 在 Linux 内核中运行,而 WebAssembly 在用户空间中运行。我们希望能做一些将二者相互融合的尝试:使用 Wasm 来编写通用的 eBPF 程序,然后可以将其分发到任意不同版本、不同架构的 Linux 内

eunomia-bpf 的 3 月进展

eunomia-bpf 项目是一个开源项目,旨在提供一组工具,用于在 Linux 内核中更方便地编写和运行 eBPF 程序。在过去一个月中,该项目取得了一些新的进展,以下是这些进展的概述。

快速构建 eBPF 项目和开发环境,一键在线编译运行 eBPF 程序

如果您正在探索 eBPF 技术,并且对于如何开始搭建环境以及选择编程语言感到困惑,那么您来对地方了!本文将介绍一系列 GitHub 模板和 GitHub Codespaces,让您可以快速启动全新的 eBPF 项目,一键在线编译运行 eBPF 程序。现在就跟随我们的步骤,加速您的 eBPF 开发吧!

使用 ChatGPT ,通过自然语言编写 eBPF 程序和追踪 Linux 系统

eBPF 是一项革命性的技术,起源于 Linux 内核,可以在操作系统的内核中运行沙盒程序。它被用来安全和有效地扩展内核的功能,而不需要改变内核的源代码或加载内核模块。今天,eBPF被广泛用于各类场景:在现代数据中心和云原生环境中,可以提供高性能的网络包处理和负载均衡;以非常低的资源开销,做到对多种细粒度指标的可观测性,帮助应用程序开发人员跟踪应用程序,为性能故障排除提供洞察力;保障应用程序和容器运行时的安全执行,等等。eBPF 已经成

在 WebAssembly 中使用 C/C++ 和 libbpf 编写 eBPF 程序

eBPF(extended Berkeley Packet Filter)是一种高性能的内核虚拟机,可以运行在内核空间中,用来收集系统和网络信息。随着计算机技术的不断发展,eBPF 的功能日益强大,进而被用来构建各种效率高效的在线诊断和跟踪系统,以及安全的网络和服务网格。

在 WebAssembly 中使用 Rust 编写 eBPF 程序并发布 OCI 镜像

eBPF(extended Berkeley Packet Filter)是一种高性能的内核虚拟机,可以运行在内核空间中,以收集系统和网络信息。随着计算机技术的不断发展,eBPF 的功能日益强大,并且已经成为各种效率高效的在线诊断和跟踪系统,以及构建安全的网络、服务网格的重要组成部分。

五分钟带你手搓一个简易的 inline hook 实现控制流劫持

编程中令人着迷的一面在于我们尝试在程序运行时改变其行为。在本教程中,我们将揭示一种可以实现这一点的方法- inline hook 。只需要数十行代码,即可用 C 语言实现一个简单的 inline hook 示例,并将其应用于一个示例程序。

Wasm-bpf: 架起 Webassembly 和 eBPF 内核可编程的桥梁

Wasm 最初是以浏览器安全沙盒为目的开发的,发展到目前为止,WebAssembly 已经成为一个用于云原生软件组件的高性能、跨平台和多语言软件沙箱环境,Wasm 轻量级容器也非常适合作为下一代无服务器平台运行时。另一个令人兴奋的趋势是 eBPF 的兴起,它使云原生开发人员能够构建安全的网络、服务网格和多种可观测性组件,并且它也在逐步渗透和深入到内核的各个组件,提供更强大的内核态可编程交互能力。

简化内核编程:LLM驱动的eBPF工具

内核编程通常需要深入了解操作系统内部结构和编程约束,因而令人生畏。我们的新工具Kgent旨在简化这一过程,使创建扩展的Berkeley Packet Filter(eBPF)程序变得更加容易。Kgent利用大语言模型(LLM)的强大功能,将自然语言提示转换为eBPF代码,从而降低内核编程的门槛。

构建高性能的用户态 eBPF 虚拟机:基于 LLVM 的 llvmbpf 项目

我们很高兴向大家介绍 llvmbpf,这是一个全新的项目,旨在为开发者提供一个高性能、支持多架构的 eBPF 虚拟机(VM)。llvmbpf 利用 LLVM 框架实现了即时编译(JIT)和提前编译(AOT),让你能够在用户态中高效运行 eBPF 程序。

如何在 Linux 显微镜(LMP)项目中开启 eBPF 之旅?

eBPF 为 Linux 内核提供了可扩展性,使开发人员能够对 Linux 内核进行编程,以便根据他们的业务需求快速构建智能的或丰富的功能。

eBPF的过去、现在与未来及其革新系统的道路

这篇博客文章主要参考了 Alexei Starovoitov 在 BPFConf 2024 上的演讲“《为未来十年现代化BPF》”。

ecli 在安卓 13 上的运行测试

本文主要记录了笔者在 Android Studio Emulator 中测试高版本 Android Kernel 对基于 libbpf 的 CO-RE 技术支持程度的探索过程、结果和遇到的问题。测试采用的方式是在 Android Shell 环境下构建 Debian 环境,并基于此尝试构建 eunomia-bpf 工具链、运行其测试用例。

用户空间 eBPF 运行时:深度解析与应用实践

本文旨在对用户空间的 eBPF 运行时和对应的一些应用场景进行剖析和总结。尽管大多数人对基于内核的 eBPF 已有所了解,用户空间 eBPF 的进展和应用实践同样引人注目。本文还将探讨用户空间 eBPF 运行时与 Wasm 运行时的技术比较,后者在云原生和边缘计算领域已获得广泛的关注。我们也新开源了一个用户态 eBPF 运行时 bpftime。通过 LLVM JIT/AOT 后端支持,我们的基准测试表明 bpftime 是最快的用户空间

Wasm-bpf: 为云原生 Webassembly 提供通用的 eBPF 内核可编程能力

Wasm 最初是以浏览器安全沙盒为目的开发的,发展到目前为止,WebAssembly 已经成为一个用于云原生软件组件的高性能、跨平台和多语言软件沙箱环境,Wasm 轻量级容器也非常适合作为下一代无服务器平台运行时。另一个令人兴奋的趋势是 eBPF 的兴起,它使云原生开发人员能够构建安全的网络、服务网格和多种可观测性组件,并且它也在逐步渗透和深入到内核的各个组件,提供更强大的内核态可编程交互能力。

最后更新
2024年8月8日
首次发布
2023年8月10日
贡献者
yunwei37, 云微, yunwei37, oluceps

这个页面有帮助吗?