草庐IT

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

eunomia-bpf0.3.0发布:只需编写内核态代码,轻松构建、打包、发布完整的eBPF应用eunomia-bpf简介eBPF源于BPF,本质上是处于内核中的一个高效与灵活的虚拟机组件,以一种安全的方式在许多内核hook点执行字节码,开发者可基于eBPF开发性能分析工具、软件定义网络、安全等诸多场景。但是,目前对于开发和使用eBPF应用而言还可能存在一些不够方便的地方:搭建和开发eBPF程序是一个门槛比较高、比较复杂的工作,必须同时关注内核态和用户态两个方面的交互和信息处理,有时还要配置环境和编写对应的构建脚本;目前不同用户态语言如C、Go、Rust等编写的工具难以兼容、难以统一管理,多种

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

eunomia-bpf0.3.0发布:只需编写内核态代码,轻松构建、打包、发布完整的eBPF应用eunomia-bpf简介eBPF源于BPF,本质上是处于内核中的一个高效与灵活的虚拟机组件,以一种安全的方式在许多内核hook点执行字节码,开发者可基于eBPF开发性能分析工具、软件定义网络、安全等诸多场景。但是,目前对于开发和使用eBPF应用而言还可能存在一些不够方便的地方:搭建和开发eBPF程序是一个门槛比较高、比较复杂的工作,必须同时关注内核态和用户态两个方面的交互和信息处理,有时还要配置环境和编写对应的构建脚本;目前不同用户态语言如C、Go、Rust等编写的工具难以兼容、难以统一管理,多种

基于 eBPF 的 Serverless 多语言应用监控能力建设

作者:竞霄监控能力作为基础运维能力和核心稳定性措施,开发运维人员可以通过监控系统有效进行故障定位,预防潜在风险,分析长期趋势进行容量规划和性能调优,是软件开发生命周期中必不可少的一环。与此同时,Serverless作为云计算的最佳实践和未来演进趋势,其全托管免运维的使用体验和按量付费的成本优势,使得其在云原生时代备受推崇,在下一个十年将成为云厂商提供的核心能力。随着Serverless的心智普及度越来越高,场景覆盖度越来越广,更多使用PHP,Python,C/C++,Node.Js,Golang等语言的用户开始进行Serverless架构升级。对于这部分用户来说,传统的应用监控方案存在以下痛点

基于 eBPF 的 Serverless 多语言应用监控能力建设

作者:竞霄监控能力作为基础运维能力和核心稳定性措施,开发运维人员可以通过监控系统有效进行故障定位,预防潜在风险,分析长期趋势进行容量规划和性能调优,是软件开发生命周期中必不可少的一环。与此同时,Serverless作为云计算的最佳实践和未来演进趋势,其全托管免运维的使用体验和按量付费的成本优势,使得其在云原生时代备受推崇,在下一个十年将成为云厂商提供的核心能力。随着Serverless的心智普及度越来越高,场景覆盖度越来越广,更多使用PHP,Python,C/C++,Node.Js,Golang等语言的用户开始进行Serverless架构升级。对于这部分用户来说,传统的应用监控方案存在以下痛点

how-to-write-rust-in-wasm

在WebAssembly中使用Rust编写eBPF程序并发布OCI镜像作者:于桐,郑昱笙eBPF(extendedBerkeleyPacketFilter)是一种高性能的内核虚拟机,可以运行在内核空间中,以收集系统和网络信息。随着计算机技术的不断发展,eBPF的功能日益强大,并且已经成为各种效率高效的在线诊断和跟踪系统,以及构建安全的网络、服务网格的重要组成部分。WebAssembly(Wasm)最初是以浏览器安全沙盒为目的开发的,发展到目前为止,WebAssembly已经成为一个用于云原生软件组件的高性能、跨平台和多语言软件沙箱环境,Wasm轻量级容器也非常适合作为下一代无服务器平台运行时,

how-to-write-rust-in-wasm

在WebAssembly中使用Rust编写eBPF程序并发布OCI镜像作者:于桐,郑昱笙eBPF(extendedBerkeleyPacketFilter)是一种高性能的内核虚拟机,可以运行在内核空间中,以收集系统和网络信息。随着计算机技术的不断发展,eBPF的功能日益强大,并且已经成为各种效率高效的在线诊断和跟踪系统,以及构建安全的网络、服务网格的重要组成部分。WebAssembly(Wasm)最初是以浏览器安全沙盒为目的开发的,发展到目前为止,WebAssembly已经成为一个用于云原生软件组件的高性能、跨平台和多语言软件沙箱环境,Wasm轻量级容器也非常适合作为下一代无服务器平台运行时,

Rust Aya 编写 eBPF 程序

本文地址:https://www.ebpf.top/post/ebpf_rust_aya1.前言Linux内核6.1版本中有一个非常引人注意的变化:引入了对Rust编程语言的支持。Rust是一种系统编程语言,Rust通过提供非常强大的编译时保证和对内存生命周期的明确控制。在内核开发中引入Rust语言,将会为内核开发的早期带来更多的安全保障。eBPF是在内核中基于事件运行用户自定义程序的技术,其验证器机制可以保障运行在内核中eBPF程序的安全性。Rust与eBPF有着一个共同的目标:保证内核安全,只是两者侧重的维度有所不同。尽管使用Rust编写eBPF程序多数情况下都需要通过不安全的方式在内核进

Rust Aya 编写 eBPF 程序

本文地址:https://www.ebpf.top/post/ebpf_rust_aya1.前言Linux内核6.1版本中有一个非常引人注意的变化:引入了对Rust编程语言的支持。Rust是一种系统编程语言,Rust通过提供非常强大的编译时保证和对内存生命周期的明确控制。在内核开发中引入Rust语言,将会为内核开发的早期带来更多的安全保障。eBPF是在内核中基于事件运行用户自定义程序的技术,其验证器机制可以保障运行在内核中eBPF程序的安全性。Rust与eBPF有着一个共同的目标:保证内核安全,只是两者侧重的维度有所不同。尽管使用Rust编写eBPF程序多数情况下都需要通过不安全的方式在内核进

图解eBPF Socket level 重定向的内核实现细节

上一篇《利用eBPF实现socketlevel重定向》,二哥从整体上介绍了eBPF的一个应用场景socketlevelredirect:如果一台机器上有两个进程需要通过loopback设备相互收发数据,我们可以利用ebpf在发送进程端将需要发送的数据跳过本机的底层TCP/IP协议栈,直接交给目的进程的socket,从而缩短数据在内核的处理路径和时间。这个流程如图1所示。本篇我们来详细看下图1右侧在内核里的实现细节。图1:利用ebpf进行socketlevelredirect,从而跳过TCP/IP协议栈和lo设备先来一张全局图,我们再依次剖析这张图上面的关键知识点。图2:利用ebpf进行sock

图解eBPF Socket level 重定向的内核实现细节

上一篇《利用eBPF实现socketlevel重定向》,二哥从整体上介绍了eBPF的一个应用场景socketlevelredirect:如果一台机器上有两个进程需要通过loopback设备相互收发数据,我们可以利用ebpf在发送进程端将需要发送的数据跳过本机的底层TCP/IP协议栈,直接交给目的进程的socket,从而缩短数据在内核的处理路径和时间。这个流程如图1所示。本篇我们来详细看下图1右侧在内核里的实现细节。图1:利用ebpf进行socketlevelredirect,从而跳过TCP/IP协议栈和lo设备先来一张全局图,我们再依次剖析这张图上面的关键知识点。图2:利用ebpf进行sock