Windows 也可以用 eBPF 了
此项目允许在 Windows 上使用 Linux 生态中熟悉的现有 eBPF 工具链和应用接口。也就是说,该项目将现有的 eBPF 项目作为子模块,并添加中间层,使其能在 Windows 上运行。
下图显示了本项目的基本架构和相关组件:
现有的 eBPF 工具链(clang 等)可用于从各种语言的源代码生成 eBPF 字节码。字节码可以被任何应用程序使用,也可以通过 bpftool 或 Netsh 命令行工具使用。
eBPF 字节码会被发送到一个静态验证器(PREVAIL 验证器),该验证器托管在一个安全的用户模式环境中,如系统服务、飞地或可信虚拟机。如果 eBPF 程序通过了验证器的所有检查,就可以加载到内核模式执行上下文中。通常情况下,这是通过 JIT 编译器(通过 uBPF JIT 编译器)将程序编译成本地代码并传递给执行上下文来实现的。在调试构建中,字节码可直接加载到解释器(从内核模式执行上下文中的 uBPF),但解释器不会仅在调试模式中支持,不提供发布构建频道支持,因为它被认为安全性较低。
安装到内核模式执行上下文中的 eBPF 程序可以附加到各种钩子上,并调用 eBPF shim 公开的各种辅助 API,eBPF shim 内部封装了公共 Windows 内核 API,允许在现有版本的 Windows 上使用 eBPF。许多辅助程序已经存在,随着时间的推移,还将添加更多钩子和辅助程序。
此项目并不是 eBPF 的分支,eBPF for Windows 利用现有项目,包括 IOVisor uBPF 项目和 PREVAIL 校验器,通过为代码添加 Windows 特定的托管环境,将它们运行在 Windows 上。
Linux 提供了许多钩子和辅助工具,其中有些是 Linux 特有的(例如,使用 Linux 内部数据结构),不适用于其它平台,而其它钩子和辅助工具则是通用的,目的是为 eBPF 程序提供支持。
eBPF 还可以与 HyperVisor-enforced Code Integrity(HyperVisor 强制代码完整性,HVCI)一起使用。启用 HVCI 后,eBPF 程序无法进行 JIT 编译,但可以以本地模式或解释模式运行。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
昆仑万维「天工 SkyAgents」Beta 版全网测试
12月25日,昆仑万维AI Agents开发平台「天工SkyAgents」Beta版正式开放测试,用户可在 https://model-platform.tiangong.cn/ 立即体验。 昆仑万维「天工SkyAgents」AI Agents开发平台,基于昆仑万维「天工大模型」打造,具备从感知到决策,从决策到执行的自主学习和独立思考能力。用户可以通过自然语言构建自己的单个或多个“私人助理”,并能将不同任务模块化,通过操作系统模块的方式,实现执行包括问题预设、指定回复、知识库创建与检索、意图识别、文本提取、http请求等任务。 在大模型技术高速发展、AI Agents应用不断进步的当下,昆仑万维「天工SkyAgents」是我们在智能体领域的一次探索与尝试。这个平台也许并不完美,但我们希望与广大开发者们携手共建、互助成长,不断开拓人工智能技术的应用边界。现在不完美是为了未来的完美,我们一直在技术追求的过程中,坚信而勇于突破。 携手探索,合作共创 大模型时代,交互式AI有望成为未来大模型技术的主流落地方向。历史告诉我们,新兴事物的演进总会找到一个稳定的术语来描述这种载体,而AI Agent...
- 下一篇
开源,想说爱你不容易~
前言 其实很早以前,我就想写一篇文章,聊聊我之前的开源历程,我不是什么大牛,只是github上千万项目中一名普通owner,但是我热爱开源,热爱分享,热爱编程,正因为如此,我打算借着teamlinker开源之际,从一名普通开源从业者的角度和大家聊聊我开源生涯中的种种过往,对自己对别人也算是一种借鉴和启发吧。 我不是计算机科班出身,只是秉持着从小对编程的热爱,通过自学走上了软件开发的道路,这一路上有风雨有彩虹,受到过质疑,但也受到过更多的鼓励和支持,也正因为如此,我格外能感受到所谓的自我学习和提升是一件多么不容易的事情,所以当我接触到开源的时候,自然而然的就有种说不出的亲切感,看着那些工整的源码,就仿佛像一个老师,循循善诱的给我们讲解着它的结构和功能,只要你愿意探索,就可以在其中发现无穷的乐趣。 从开源走向创业 还记得在2016年的时候,我当时在一家软件公司担任技术总监的职务,其中遇到的一个令人头疼的问题就是前后端总是为接口文档的同步问题争执不下,我当时就想如何有一个产品可以管理并且自动的同步接口文档,让前后端都有一个唯一的参照物的话,这个问题就可以得到很大的缓解,在网上找了一遍后并没有...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G