本篇文章通过一个案例,对systemtap、BPF/BCC、bpftrace三种不同类型的内核探测工具进行剖析和对比。这个程序就是简单对icmp_rcv函数,收到icmp报文,打印出对应的源IP地址和目的IP地址。使用BPF/BCC1.1在centos8...
阅读全文...
Linux伯克利子系统之四:使用sockmap示例:bypass内核协议栈
当我们使用127.0.0.1的localhost地址,在本地机器上进行发送和接受数据时,整个数据的发送还是要经过完整的内核协议栈。Cilimu的网络借用bfp的sockmap bypass提高整个网络的性能,参考《How to use eBPF for ...
阅读全文...
阅读全文...
Linux伯克利子系统之三:BPF示例程序
上一篇文章中BPF的例子是以BCC的整体框架为基础,本篇介绍一下基于libbpf库函数为基础,结合内核中的bpf的sample为基础编写一个BPF的程序,本篇介绍是以《linux-observability-with-bpf》这本书第二章的例子为基础,由...
阅读全文...
阅读全文...
Linux伯克利子系统之二:基于BCC的BPF示例程序
结合前面一篇针对BPF的学习,本篇文章重点介绍编写一个对内核系统调用exec的例子。本测试例子基本上包含了全部的,syscall类别系统调用的BPF的框架。#!/usr/bin/python
from __future__ import print_fu...
阅读全文...
阅读全文...