3.1 Android eBPF代码仓解读

本文详细介绍了Android系统中eBPF的实现,包括加载器bpfloader及其工作原理,以及eBPF在Android 12中的具体应用,如clatd.o、gpu_mem.o、netd.o和time_in_state.o等,用于网络监控和CPU性能跟踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

前面已经介绍,Android从9.0版本开始支持eBPF,并且主要用于网络及CPU性能的监控上。它包含一个eBPF加载器和库。加载器在Andoroid init启动/system/etc/bpf/下的所有eBPF程序,ebpf程序在完成加载后,内核ebpf程序进行verify和attach,顺利的话,最终,ebpf程序会被hook或插入到指定的内核函数中,这样就可以完成对内核活动的监控。

本章,我们继续探索eBPF在Android上的应用。首先我们来看,ebpf的代码仓分布。

一,bpfloader

  • android/system/bpf
  • android/system/bpf/bpfloader

这个bpf代码仓基本上是ebpf加载器在android上的唯一实现。系统编译时生成bpfloader可执行程序,系统镜像打包后的路径为/system/bin/bpfloader。

它包含bpfloader.rc文件和bpfloader主程序。而rc我们就比价熟悉了,它是很多native服务的初始化及运行入口,那么bpfloader.rc自然而然也是bpfloader程序运行的入口。

bpfloader负载在系统初始化时,会创建相关的目录,并加载/system/etc/bpf目录下的所有eBPF程序。android 12默认支持的eBPF程序包括clatd.o,gpu_mem.o,netd.o,time_in_state.o等。

  • android/system/bpf/libbpf_android

系统编译时生成libbpf_android.so,系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高桐@BILL

分享快乐,快乐分享...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值