0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

openEuler倡议建立eBPF软件发布标准

openEuler 来源:openEuler 作者:openEuler 2022-12-06 10:29 次阅读

eBPF 是一个能够在内核运行沙箱程序的技术,提供了一种在内核事件和用户程序事件发生时安全注入代码的机制,使得非内核开发人员也可以对内核进行控制。随着内核的发展,eBPF 逐步从最初的数据包过滤扩展到了网络、内核、安全、跟踪等,而且它的功能特性还在快速发展中,早期的 BPF 被称为经典 BPF,简称 cBPF,正是这种功能扩展,使得现在的 BPF 被称为扩展 BPF,简称 eBPF。

如今 eBPF 被广泛应用在云原生、可观测、性能调优、安全、硬件加速等领域,并且其应用场景还在快速扩展,各种场景基于 eBPF 技术的创新 idea 呈现井喷现象,eBPF 的时代已经来临。

eBPF 技术现状

虽然 eBPF 技术应用呈现井喷现象,但是开发、发布、安装等相关的基础技术出现碎片化现象,导致技术成果无法快速平移至行业客户生产环境;相似 eBPF 技术应用在重复实践。这些问题阻碍 eBPF 技术的普及与推广。

如下图所示,总结目前 eBPF 的开发、发布方式基本可以划分成 2 种技术路线:

开发态、运行态分离(典型代表 libbpf)

优点:ELF 文件形式(或者链接进应用程序)发布,运行时轻量化,适合生产环境大规模应用。

缺点:应用技术门槛高,且不具备可移植性(比如高内核版本的 eBPF 程序无法移植至低内核版本中)。

开发态、运行态融合(典型代表 BCC)

优点:源码形式发布天然具备可移植性;封装抽象运行时,提供高级语言 API,降低开发难度。

缺点:运行时重型化,对生产环境要求较高(需要安装开发态一系列工具);高度抽象后,降低使用灵活度,不适合大型应用开发。

03500d2e-7486-11ed-8abf-dac502259ad0.png

这两种技术路线都存在弊端,随着 eBPF 技术的发展,出现 BumbleBee 、eunomia-bpf 等项目致力于综合这两类技术路线的优点,但依旧缺乏对 eBPF 基础技术的整体规划。

eBPF 发展展望

eBPF summit 2022 《The future of eBPF in the Linux Kernel》展望了 eBPF 的发展方向,具体的演进方向包括几个方面:

更完备的编程能力:当前 eBPF 的编程能力存在一些局限性(比如不支持变量边界的循环,指令数量受限等),演进目标提供图灵完备的编程能力。

更强的安全性:支持类型安全,增强运行时 Verifier,演进目标是提供媲美 Rust 的安全编程能力。

更广泛的移植能力:增强 CO-RE,加强 Helper 接口可移植能力,实现跨体系、平台的移植能力。

更强的可编程能力:支持访问/修改内核任意参数、返回值,实现更强的内核编程能力。

概括其演进目标是希望将 eBPF 打造成一款针对内核(包括硬件)运行时的安全编程语言,通过该语言构建 eBPF 软件,用来承载内核(或硬件)的能力。演进结果产生一个有趣现象:按照传统软件类型划分方式,我们很难将 eBPF 软件归类成应用软件或是系统软件。所以,干脆将其定义成一种独立软件形态:内核态服务(eBPF as Service)。

036b4fd0-7486-11ed-8abf-dac502259ad0.png

eBPF Service 形态

建立 eBPF 行业标准的思路

eBPF 软件有别于系统软件、应用软件,从软件自身特点而言,其应具备符合其自身特点的开发、编译、打包、发布、安装、升级等工具系列。

当前 eBPF 的开发框架、发布形式发展迅速,但也存在一些问题,包括跨版本移植能力、多场景支持能力、开发易用性、服务可获得性等问题。openEuler 可编程内核 SIG 希望标准化 eBPF 软件相关基础技术(包括打包、发布、安装、升级等),方便 eBPF 技术在各行业、场景的推广。为此,由多家企业/高校在 openEuler 社区倡议建立行业标准,通过标准化发布将内核定制能力、硬件卸载能力向社区用户提供性能加速、安全加固、智能观测等服务。

预计我们将在 12 月份组织一次线上 meetup,当前参与企业/组织包括天翼云、深信服、华为、西邮、中山大学、中科驭数、信通院、锐捷等,希望国内对 eBPF 技术有诉求、规划的厂商加入本次 meetup,建立 eBPF 技术相关标准,为 eBPF 技术应用、科研提供较好的基础平台。

具体讨论范围划分成三个方向:

eBPF runtime:负责提供具备可移植性的软件安装能力,软件热升级能力,包管理等能力。

eBPF Development Kit:负责提供一站式开发、调试、编译工具,提供具备跨体系、平台移植能力的软件包发布能力。

eBPF Service HUB:负责提供 eBPF Service 集市化管理,提供 eBPF Service 推送、分发等能力。

03901144-7486-11ed-8abf-dac502259ad0.png

openEuler 可编程内核 SIG 目标

openEuler 可编程内核 SIG 目标之一就是推动 eBPF as Service 标准化工作,将内核能力、硬件加速能力服务化、集市化,惠及更多的社区用户。

与此同时,openEuler 社区会将行业标准内的一些基础软件、技术标准推送至 Linux 上游社区,加强 eBPF 技术生态建设,提升国内 eBPF 技术在上游社区影响力。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3467

    浏览量

    92829
  • 云原生
    +关注

    关注

    0

    文章

    224

    浏览量

    7896
  • openEuler
    +关注

    关注

    2

    文章

    292

    浏览量

    5717

原文标题:openEuler 倡议建立 eBPF 软件发布标准

文章出处:【微信号:openEulercommunity,微信公众号:openEuler】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    润和软件受邀参与openEuler 24.03 LTS发布

    近日,由OpenAtom openEuler(简称"openEuler")社区主办的openEuler 24.03 LTS版本发布会(以下简称“发布
    的头像 发表于 06-15 10:07 487次阅读

    openEuler 24.03 LTS正式发布,首个AI原生开源操作系统

    。”6月6日,openEuler委员会主席江大勇正式对外发布openEuler首个AI原生开源操作系统——openEuler24.03LTS版本。
    的头像 发表于 06-15 08:36 257次阅读
    <b class='flag-5'>openEuler</b> 24.03 LTS正式<b class='flag-5'>发布</b>,首个AI原生开源操作系统

    eBPF动手实践系列三:基于原生libbpf库的eBPF编程改进方案简析

    在上一篇文章《eBPF动手实践系列二:构建基于纯C语言的eBPF项目》中,我们初步实现了脱离内核源码进行纯C语言eBPF项目的构建。libbpf库在早期和内核源码结合的比较紧密,如今的libbpf库更加成熟,已经完全脱离内核源码
    的头像 发表于 03-19 14:19 412次阅读
    <b class='flag-5'>eBPF</b>动手实践系列三:基于原生libbpf库的<b class='flag-5'>eBPF</b>编程改进方案简析

    openEuler安全配置基线标准首发

    信安、超聚变、华为等公司共同发布openEuler 安全配置基线标准 v1.0》。 在当今日益复杂的数字化环境中,操作系统安全已成为企业和个人必须面对的挑战,运行环境的多样性和不一致性使得安全加固、核查、巡检等工作变得异常艰巨
    的头像 发表于 01-04 13:43 450次阅读
    <b class='flag-5'>openEuler</b>安全配置基线<b class='flag-5'>标准</b>首发

    天合光能等龙头发布700W+光伏组件标准化联合倡议,推动700W+生态联盟升级

    常州2023年12月21日 /美通社/ -- 12月11日,阿特斯、东方日升、TCL中环、天合光能、通威股份、正泰新能发布《关于推动700W+光伏组件标准设计和应用的联合倡议》,约定700W+
    的头像 发表于 12-22 05:56 564次阅读

    介绍一种基于eBPF的Linux安全防护系统

    针对操作系统、内核安全,联通云操作系统团队开发了的一个基于 eBPF 的 Linux 安全防护系统 safeguard,可以实现安全操作的审计拦截及安全防护功能。项目采用 libbpfgo
    的头像 发表于 11-07 17:43 572次阅读
    介绍一种基于<b class='flag-5'>eBPF</b>的Linux安全防护系统

    ebpf的快速开发工具--libbpf-bootstrap

    基于ubuntu22.04-深入浅出 eBPF 基于ebpf的性能工具-bpftrace 基于ebpf的性能工具-bpftrace脚本语法 基于ebpf的性能工具-bpftrace实战
    的头像 发表于 09-25 09:04 522次阅读
    <b class='flag-5'>ebpf</b>的快速开发工具--libbpf-bootstrap

    OpenAtom openEuler亮相2023欧洲开源峰会

    ,并在Keynote和多场分论坛上发表主题演讲,话题涵盖Linux Kernel、编译器、AI、多样性计算、软件供应链安全、机密计算、社区治理等领域及多个创新项目。 峰会首日,openEuler技术
    的头像 发表于 09-21 18:40 374次阅读

    基于ebpf的性能工具-bpftrace脚本语法

    bpftrace 通过高度抽象的封装来使用 eBPF,大多数功能只需要寥寥几笔就可以运行起来,可以很快让我们搞清楚 eBPF 是什么样的,而暂时不关心 eBPF 复杂的内部机理。由于
    的头像 发表于 09-04 16:04 640次阅读
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace脚本语法

    基于ebpf的性能工具-bpftrace

    在前面我已经分享了关于ebpf入门的文章: 基于ubuntu22.04-深入浅出 eBPF 。 这篇文章介绍一个基于ebpf技术的强大工具--bpftrace。 在现代计算机系统中,了解系统的内部
    的头像 发表于 09-04 16:02 446次阅读
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace

    eBPF的前世今生?eBPF在使用中遇到的问题有哪些?

    在介绍eBPF (Extended Berkeley Packet Filter)之前,我们先来了解一下它的前身-BPF (Berkeley Packet Filter)伯克利数据包过滤器。
    的头像 发表于 08-12 15:10 1280次阅读
    <b class='flag-5'>eBPF</b>的前世今生?<b class='flag-5'>eBPF</b>在使用中遇到的问题有哪些?

    如何在openEuler WSL中体验完整的桌面环境?

    WSL是微软发布的让用户能够在windows上使用Linux环境的技术,openEuler发布多个版本的WSL镜像。
    的头像 发表于 08-02 18:22 2958次阅读
    如何在<b class='flag-5'>openEuler</b> WSL中体验完整的桌面环境?

    润和软件上榜openEuler社区创新项目贡献企业名录

    近日,OpenAtom openEuler(以下简称“openEuler”)社区发布《操作系统技术白皮书(创新项目总览)》。 江苏润和软件股份有限公司(以下简称“润和
    的头像 发表于 07-28 10:10 711次阅读

    如何使用openEuler WSL sideload

    openEuler 22.03 LTS SP2版本开始,repo仓库里默认发布WSL sideload压缩包,不方便访问Windows Store的用户可以使用这种方法安装体验openEuler WSL。
    的头像 发表于 07-15 11:00 565次阅读
    如何使用<b class='flag-5'>openEuler</b> WSL sideload

    润和软件发布openEuler分布式软总线最新贡献成果

    近日,江苏润和软件股份有限公司(以下简称“润和软件”)与openEuler社区共同提出并首次在openEuler 2203 LTS SP2 中实现分布式软总线及相关组件以独立中间件形态
    的头像 发表于 07-11 09:20 1120次阅读
    润和<b class='flag-5'>软件</b><b class='flag-5'>发布</b><b class='flag-5'>openEuler</b>分布式软总线最新贡献成果