自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 eBPF(5)--raw tracepoint程序类型

摘要:BPF raw tracepoint机制可用于系统调用追踪,通过查看/sys/kernel/debug/tracing/available_events获取可用事件。使用时需定义SEC(raw_tp/<name>)函数,上下文结构为bpf_raw_tracepoint_args。以sys_enter为例,可获取系统调用号和参数,并通过PT_REGS_PARM宏读取寄存器参数。示例展示了如何追踪unlinkat系统调用,提取其文件路径参数。

2025-06-10 19:16:43 156

原创 eBPF(4)--tracepoint程序类型

《BPFtrace跟踪点上下文解析方法》 摘要: 本文介绍了BPFtrace中跟踪点(tracepoint)的上下文处理方法。首先通过bpftrace -l "tracepoint:*:*"命令列出所有可用插桩点,然后通过系统文件查看具体跟踪点的上下文格式。文章详细说明了两种处理上下文的方式:1)自定义结构体方法,需根据/sys/kernel/tracing/events下的事件格式文件重构上下文结构体;2)使用vmlinux.h预定义的结构体,但需注意并非所有跟踪点都有预定义结构。

2025-06-10 19:11:50 273

原创 eBPF(3)--BPF映射(Maps)

eBPF映射是内核与用户空间共享数据的关键机制,支持多种交互方式。摘要介绍了eBPF映射的基本概念、定义方法(包括内核态和用户态创建),以及环形缓冲区等特殊映射的使用。重点阐述了通过BPF系统调用和libbpf库操作映射的API,并提供了实践案例展示进程监控的实现。该技术可实现高效的数据共享,适用于性能监控、安全检测等场景,代码结构具有通用性。

2025-06-08 20:54:47 355

原创 eBPF(2)--代码通用架构

本文介绍了BPF程序的开发流程,重点讲解了skel骨架文件的生成和使用。通过bpftool工具可以生成包含BPF操作结构体的头文件,简化BPF程序的加载。文中详细说明了如何生成vmlinux.h内核类型定义文件,并演示了修改后的hello_kernel.c和hello_user.c程序,展示了完整的Makefile编译配置。最终生成的BPF程序可通过trace_pipe查看输出。该流程充分利用了BPF的CO-RE技术,实现了一次编译多处运行的特性,同时通过骨架文件简化了用户空间与内核空间的交互。

2025-06-05 23:53:52 706

原创 eBPF(1)--基础知识简介

eBPF(Extended Berkeley Packet Filter)是一种在内核运行沙箱程序的技术,允许非内核开发者安全地注入代码以控制内核行为。它从最初的数据包过滤扩展到网络、安全、跟踪等领域,具有安全性(通过验证器校验)、高效性(借助JIT编译器)和标准化(BPFHelpers等接口)特点。eBPF程序分为用户态和内核态两部分,支持多种程序类型如跟踪(kprobe、tracepoint)、网络(xdp)和安全(lsm)。开发工具包括LLVM、libbpf和BCC等,生态完善。实践示例展示了如何编写

2025-06-05 21:56:49 845

原创 ubuntu + pyocd + 正点原子 DAPLink 搭建STM32H562 下载环境

pyocd下载与使用

2024-11-07 22:27:53 659

原创 C语言二叉树

每个子节点最多只有两个子节点,并且两个子节点要按照一定顺序排列左节点和右节点。

2024-06-12 19:13:48 266

原创 Linux下得内存布局

运行栈:保存局部变量和形参,每调用一个函数就会相应的产生数据存放到栈中,函数结束时就会释放函数中的局部变量。运行堆:程序员自主操控的内存,自定义生命周期,malloc()/calloc()/realloc().rodata 只读数据(常量区),比如 100,3.14,‘w’,“hello”.data 已经初始化的静态数据(全局变量和static 声明的局部变量).init 用于启动代码,调用main函数,并传入argc,argv参数。在LINUX下 执行 gcc main.c -o main。

2024-06-12 19:10:21 236

原创 c语言柔性数组

在一个结构体中,通常我们会发送一些固定的内容,例如两个人发消息,每次发送的字数不一定,有时多,有时少,我们定义msg字符串时,就不知道定义多少,这时候使用柔性数组。

2024-06-09 20:29:39 220

原创 c语言变参函数

【代码】c语言变参函数。

2024-06-09 20:28:37 125

原创 Linux下简单shell命令

【代码】Linux下简单shell命令。

2024-06-08 22:19:05 100

原创 C语言二叉平衡搜索树

【代码】C语言二叉平衡搜索树。

2024-06-08 22:17:50 518

原创 C语言循环队列实现

5。

2024-06-06 20:46:56 229

原创 C语言栈结构实现

通过next指针指向下一个数据,用一个大的结构体来存放top和size。好处是不用先指定栈的大小。

2024-06-06 20:44:47 651

原创 Linux内核链表源代码

/* SPDX-License-Identifier: GPL-2.0 */#ifndef _LINUX_LIST_H#define _LINUX_LIST_H#include <linux/types.h>#include <linux/stddef.h>#include <linux/poison.h>#include <linux/const.h>#include <linux/kernel.h>/* * Simple

2024-06-05 20:46:37 1589

原创 c语言链表

缺点:每一个节点都是特殊的,导致每一条链表也是特殊的,因此每一种链表的增删查改也是特殊的。所以针对不同数据要写不同的链表,代码不能复用。当一个节点处于变化的数据结构网络中时,节点指针无法指向稳定不变的节点。实现原理:将只有双向链表逻辑的小结构体,放入有具体数据的大结构体中。

2024-06-05 20:45:08 295

原创 C语言顺序表

使用c语言实现顺序表

2024-06-04 19:50:54 116

原创 C语言文件IO

1、通过读写文件时,每次操作都会执行相关系统调用。这样处理的。可以看成是在文件IO的基础上封装了。先读写缓冲区,必要时再访问实际文件,从而。2、 文件IO中用文件描述符表现一个打开的文件,可以访问不同类型的文件,如普通文件、设备文件和管道文件等。而标准IO中用FILE(流)表示一个打开的文件,通常只用来访问普通文件。3、需要的使用系统IO,例如各种设备文件. 否则一般使用标准IO.

2024-06-03 20:45:45 1525 1

原创 UE4学习

UE4学习目录一、UE4灰度图导入一、UE4灰度图导入 首先在搜索引擎上搜索到一张灰度图,通过PS打开,将其模式改为灰度、16通道,并导出为png文件格式。UE4只支持png格式的灰度图。

2020-11-06 11:09:04 265 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除