Fork me on GitHub

11 2023 档案

摘要:1. 前言 在本系列的第 1 部分和第 2 部分,我们介绍了 eBPF 虚拟机内部工作原理,在第 3 部分我们研究了基于底层虚拟机机制之上开发和使用 eBPF 程序的主流方式。 在这一部分中,我们将从另外一个视角来分析项目,尝试解决嵌入式 Linux 系统所面临的一些独特的问题:如需要非常小的自定义 阅读全文
posted @ 2023-11-29 21:49 yooooooo 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1. 前言 在本系列的第 1 部分和第 2 部分中,我们对 eBPF 虚拟机进行了简洁的深入研究。阅读上述部分并不是理解第 3 部分的必修课,尽管很好地掌握了低级别的基础知识确实有助于更好地理解高级别的工具。为了理解这些工具是如何工作的,我们先定义一下 eBPF 程序的高层次组件: 后端:这是在内核 阅读全文
posted @ 2023-11-26 23:26 yooooooo 阅读(105) 评论(0) 推荐(0) 编辑
摘要:在Linux中,透明巨页(Transparent HugePage)和巨页(HugePage)是两种不同的内存管理技术。 透明巨页是Linux内核中的一项特性,旨在提高内存的利用率和性能。它通过将内存分配为更大的巨页(通常为2MB或1GB),减少了对内存页表的访问次数,从而提高了内存访问的效率。透明 阅读全文
posted @ 2023-11-23 11:38 yooooooo 阅读(129) 评论(0) 推荐(0) 编辑
摘要:1. 前言 我们在第 1 篇文章中介绍了 eBPF 虚拟机,包括其有意的设计限制以及如何从用户空间进程中进行交互。如果你还没有读过这篇文章,建议你在继续之前读一下,因为没有适当的介绍,直接开始接触机器和字节码的细节是比较困难的。如果有疑问,请看第 1 部分开头的流程图。 本系列的第 2 部分对第 1 阅读全文
posted @ 2023-11-23 10:28 yooooooo 阅读(96) 评论(0) 推荐(0) 编辑
摘要:1. 前言 有兴趣了解更多关于 eBPF 技术的底层细节?那么请继续移步,我们将深入研究 eBPF 的底层细节,从其虚拟机机制和工具,到在远程资源受限的嵌入式设备上运行跟踪。 注意:本系列博客文章将集中在 eBPF 技术,因此对于我们来讲,文中 BPF 和 eBPF 等同,可相互使用。BPF 名字/ 阅读全文
posted @ 2023-11-20 23:43 yooooooo 阅读(94) 评论(0) 推荐(1) 编辑
摘要:这些参数主要是用来调整virtual memory子系统的行为以及数据的写出(从RAM到ROM)。 这些节点(参数)的默认值和初始化的过程大部分都可以在mm/swap.c中找到。 目前,/proc/sys/vm目录下有下面这些节点: admin_reserve_kbytes block_dump c 阅读全文
posted @ 2023-11-13 22:47 yooooooo 阅读(862) 评论(0) 推荐(0) 编辑
摘要:Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存。现代Linux内核部署了该缓存分配器以持有缓存,称之为片。不同类型的片缓存由片分配器维护。本文集中讨论slabtop命令,该命令显示了实时内核片缓存信息。 1.命令用法: 该命令用起来很简单,默认执行时 阅读全文
posted @ 2023-11-10 11:46 yooooooo 阅读(360) 评论(0) 推荐(1) 编辑
摘要:本实例中的用户空间地址从 0x00000000 到 0x80000000,从地址空间划分可知,从低到高依次是: 可执行文件的代码段、数据段、BSS段。 堆heap。 文件映射和匿名映射,包括vdso、库的映射、mmap映射的内存等等。 栈stack。 通过top或者procrank之类工具发现某个进 阅读全文
posted @ 2023-11-09 16:15 yooooooo 阅读(28) 评论(0) 推荐(0) 编辑
摘要:/proc/279/status是一个Linux内核中的文件,其中包含了当前进程的状态信息。每行的含义如下: Name: 进程的名称,例如"java"或"bash"。 State: 进程的状态,例如"running"或"sleeping"。 Tgid: 进程组ID,即进程的ID号。 Pid: 进程的 阅读全文
posted @ 2023-11-09 16:07 yooooooo 阅读(32) 评论(0) 推荐(0) 编辑
摘要:这个文件是将buddyinfo的内容进一步细分: Free pages count per migrate type at order -- 不同order 按照migrate type的空闲page数量 Number of blocks -- 连续内存块数量 root:/ # cat /proc/ 阅读全文
posted @ 2023-11-09 16:06 yooooooo 阅读(177) 评论(1) 推荐(0) 编辑
摘要:root@pita2_mr813_tina35:/# cat /proc/vmallocinfo 0xffffff80007d0000-0xffffff8000902000 1253376 load_module+0x854/0x1d48 pages=305 vmalloc 0xffffff8000 阅读全文
posted @ 2023-11-09 16:03 yooooooo 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Linux内存管理 -- /proc/{pid}/smaps讲解 基本介绍 /proc/PID/smaps 文件是基于 /proc/PID/maps 的扩展,他展示了一个进程的内存消耗,比同一目录下的maps文件更为详细。 值得说明一下的是,每一个VMA(虚拟内存区域,即一个 vm_area_str 阅读全文
posted @ 2023-11-09 15:51 yooooooo 阅读(167) 评论(0) 推荐(0) 编辑
摘要:cat /proc/39977/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data siz 阅读全文
posted @ 2023-11-09 15:47 yooooooo 阅读(84) 评论(0) 推荐(0) 编辑
摘要:root@pita2_mr813_tina35:/# cat /proc/zoneinfo Node 0, zone DMA per-node stats nr_inactive_anon 4749 nr_active_anon 70166 nr_inactive_file 89970 nr_act 阅读全文
posted @ 2023-11-09 15:45 yooooooo 阅读(308) 评论(0) 推荐(0) 编辑
摘要:Linux:/proc/meminfo参数详细解释 一、Linux内存总览图 二、meminfo参数的详细介绍 /proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比”fr 阅读全文
posted @ 2023-11-09 15:41 yooooooo 阅读(174) 评论(0) 推荐(0) 编辑
摘要:在应用程序设计过程中,内存是很重要的资源,而计算机主机的内存资源时有限的。一般而言我们可以申请到的内存是有限的,并不是想申请多大就有多大就可以申请多大的。/proc/buddyinfo文件里,就记录着系统的内存资源。 linux内核中使用了buddy算法来管理内存以减少内存碎片的产生,buddy算法 阅读全文
posted @ 2023-11-09 15:38 yooooooo 阅读(432) 评论(0) 推荐(0) 编辑
摘要:kmemleak 和kasan 都是 Linux 内核中的一些工具和特性,用于帮助进行内存错误检测和修复。然而,它们之间有一些区别: 功能:kmemleak 用于检测内核中未释放的内存泄漏,它可以跟踪内核中分配的内存块,并在系统运行时检查未释放的内存。kasan(内核地址Sanitizer)是一个内 阅读全文
posted @ 2023-11-07 11:12 yooooooo 阅读(158) 评论(0) 推荐(0) 编辑
摘要:CPU缓存什么东西?当然这个问题很多人有可能觉得比较傻,CPU缓存什么,肯定是缓存数据(代码)啊,要不然还能缓存啥,这个确实没问题,但是CPU到底缓存什么样的数据呢?因为对CPU来说,无论是指令,还是数据,都是数据,他如果要缓存,缓存的单位是啥?要缓存的内容是啥呢? 接下来咱们一点点解析这部分的内容 阅读全文
posted @ 2023-11-01 22:34 yooooooo 阅读(30) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示