来学点eBPF and XDP装一下

简介: 来学点eBPF and XDP装一下

前言

接触到这个概念总是在所难免,毕竟搞安全的,之前也看过eBPF,但是没有深究,这次就来看看这个,有个大概得认知,知道这个是什么东西。以后有涉及的时候,才知道从哪里下手。

原文链接:【Linux新技术基石 |eBPF and XDP】

eBPF

1-概念

BPF 是 Linux 内核中高度灵活和高效的类似虚拟机的技术允许以安全的方式在各个挂钩点执行字节码。它用于许多 Linux 内核子系统,突出的是网络、跟踪和安全(例如沙箱)

BPF 是一个通用目的 RISC 指令集,其初的设计目标是:用 C 语言的一个子集编 写程序,然后用一个编译器后端(例如 LLVM)将其编译成 BPF 指令,稍后内核再通 过一个位于内核中的(in-kernel)即时编译器(JIT Compiler)将 BPF 指令映射成处理器的原生指令(opcode ),以取得在内核中的佳执行性能。

尽管 BPF 自 1992 年就存在,扩展的 Berkeley Packet Filter (eBPF) 版本出现在 Kernel3.18中,如今被称为“经典”BPF (cBPF) 的版本已过时。许多人都知道 cBPF是tcpdump使用的数据包过滤语言。现在Linux内核只运行 eBPF,并且加载的 cBPF 字节码在程序执行之前被透明地转换为内核中的eBPF表示。除非指出 eBPF 和 cBPF 之间的明确区别,一般现在说的BPF就是指eBPF。

2-框架

XDP

1-概念

XDP的全称是: eXpress Data Path

XDP 是Linux 内核中提供高性能**、可编程的网络数据包处理框架。**

  • 直接接管网卡的RX数据包(类似DPDK用户态驱动)处理;
  • 通过运行BPF指令快速处理报文;
  • 和Linux协议栈无缝对接;

2-框架

目录
相关文章
|
7月前
|
Linux 编译器 C语言
《Linux从练气到飞升》No.05 Linux编译器gcc/g++的使用及编译过程 【云边有个小卖部】上新
《Linux从练气到飞升》No.05 Linux编译器gcc/g++的使用及编译过程 【云边有个小卖部】上新
165 0
|
安全 Linux 编译器
linux下c语言内存检测神器asan,专治各种疑难杂症
linux下c语言内存检测神器asan,专治各种疑难杂症
linux下c语言内存检测神器asan,专治各种疑难杂症
|
Ubuntu Linux 网络安全
[linux学习记录]wsl2踩坑指北
[linux学习记录]wsl2踩坑指北
[linux学习记录]wsl2踩坑指北
|
存储 算法 调度
好记性不如烂笔头——操作系统
好记性不如烂笔头——操作系统
好记性不如烂笔头——操作系统
|
安全 IDE Java
杂谈 | 讲讲用Linux系统作为主力的感受
杂谈 | 讲讲用Linux系统作为主力的感受
675 0
杂谈 | 讲讲用Linux系统作为主力的感受
|
Unix Java Linux
聊了聊宏内核和微内核,并吹了一波 Linux
内核是操作系统非常重要的组成部分,同时也是操作系统的核心。内核管理着系统资源,内核向上连接着应用程序,向下连接着硬件,它是应用程序和硬件的桥梁。
聊了聊宏内核和微内核,并吹了一波 Linux
|
运维 安全 Java
很重要但常被忽视的几个Linux指令--《我的linux初体验》
服务崩溃、CPU跑满、通信错误、服务卡死等等各种各样的常见问题,其实用几个常常被忽视的Linux系统管理指令就可以解决或定位问题。本文仅用于给新手抛砖引玉,会涉及top、ps、free、echo等。
204 0
很重要但常被忽视的几个Linux指令--《我的linux初体验》
|
Web App开发 自然语言处理 程序员
这些软件太强了,Mac必装!尤其程序员!
这些软件太强了,Mac必装!尤其程序员!
624 0