普大喜奔!Windows支持eBPF了

2023-02-15 09:15:49 浏览数 (1)

来源:

https://cloudblogs.microsoft.com

eBPF是一项众所周知的革命性技术,提供可编程性、可扩展性和敏捷性。eBPF已经有DDoS保护和观测应用等不同用例。目前围绕eBPF已经形成工具、产品和应用经验的生态系统。尽管对eBPF的支持首先是在Linux内核中实现的,但人们对eBPF在其他操作系统上的应用兴趣越来越大,而且除了内核模式之外,还希望可以扩展到用户模式。

今天,我们很高兴地宣布了一个新的微软开源项目,以使eBPF可以在Windows 10和Windows Server 2016及更高版本上工作。ebpf-for-windows项目旨在让开发者在现有版本的Windows之上使用熟悉的eBPF工具链和API。该项目基于现有的eBPF开源项目之上添加“glue”以保证在Windows上的运行。

架构概述

下图说明了本项目的架构和相关组件:

如图所示,现有的eBPF工具链,如clang,可用于从各种语言的源代码生成eBPF字节码。然后,生成的字节码可以被任何应用程序使用,或者通过Windows netsh命令行工具手动使用,这两个工具都使用支持Libbpf API的共享库,当前这项工作仍在进行中。

这是eBPF的一个Fork吗?

简而言之,NO。

eBPF for Windows利用了现有的开源项目,包括IOVisor uBPF项目PREVAIL verifier,通过添加Windows特定的托管环境保证代码在Windows上的运行。

是否具备与Linux环境下eBPF程序的APP兼容性?

项目目的是为使用通用hook和helper的源代码提供兼容性,这些hook和helper适用于多个操作系统的生态系统。

Linux提供了许多hook和helper,其中一些是Linux特定的(例如使用Linux内部数据结构),这种情况将不适用于其他平台。除此之外的hook和helper是普遍适用的,目的是支持他们应用于eBPF程序。

同样,eBPF for Windows项目支持Libbpf APIs,为与eBPF交互的应用程序提供源代码兼容性。

0 人点赞