【BPF】第001篇 使用 eBPF 监控 Linux 内核内存分配
深入探索eBPF技术,该方案通过非侵入式方式在Linux内核中高效运行自定义字节码,实现对kmalloc内存分配的实时监控,兼具安全性和灵活性。文章详细展示了内核态插桩与用户态应用的协同原理与代码实践,支持多维过滤和实用输出,适合于系统性能分析及生产环境部署,为内核行为追踪和资源优化提供了极具价值的案例
深入探索eBPF技术,该方案通过非侵入式方式在Linux内核中高效运行自定义字节码,实现对kmalloc内存分配的实时监控,兼具安全性和灵活性。文章详细展示了内核态插桩与用户态应用的协同原理与代码实践,支持多维过滤和实用输出,适合于系统性能分析及生产环境部署,为内核行为追踪和资源优化提供了极具价值的案例
聚焦智能设备BMS中I2C通信瓶颈,提出结合属性缓存与自适应刷新机制的创新方案,通过缓存属性并动态调整TTL,有效减少I2C访问冲突和通信负担。自适应算法根据属性变化及噪声门限、窗口振幅智能控制刷新频率,提升系统实时性与稳定性,同时引入并发控制与总线熔断机制,确保关键数据高效、安全传输。
2025年,作者在人生与职业的双重转折中,聚焦于“尝试平衡”。工作上勇于转型,持续分享与协作,实现技术与心态的成长;生活中,婚姻和家庭成为新的关注重心。通过经验总结、系统学习和乐于成就他人,收获个人成长,体会到快速学习和适应变化是核心能力,并在自我反思中展望未来。
深入解析Linux内核中kmalloc的内存池体系,详解其在高效分配小至中等连续物理内存块中的核心作用。文章重点说明kmalloc通过预先创建多种尺寸的slab内存池,有效应对频繁的通用及专属内存分配需求,并结合源码分析创建流程、类型划分及对应场景,帮助开发者理解内核内存分配机制的高效性与灵活性。
copyright_author: bin的技术小屋 copyright_author_href:
以实际dump为例,文章用trace32深入解析了Linux slab cache的内部逻辑,带你逐层解读kmalloc-64实例中的数据结构,从kmalloc_caches和kmem_cache到per-CPU区与节点node的内存组织和管理特性。
秘柯絮语
船舶配积载 最近一直在忙船舶配积载考试,而且又到期末周了😭 杂货配积载
秘柯絮语
自建 docker 镜像加速 契机 近来,由于感到 1panel 的 docker 加速地址经常拉去超时,而恰好我使用的 IDC 降价了所以花了10块买了台美国机子做一下 docker 加速镜像,并水一篇文章。 我在简单的搜索了一下发现大多使用 Docker-Proxy 这个项目来搭建镜像,所以在简
秘柯絮语
缓一会 ECDIS —— 电子海图显示与信息系统(Electronic Chart Display and Information System 的缩写,SOLAS
菲兹克斯喵
绝热近似:简单的例子是,一个人拿着一个箱子,箱子里有一个单摆. 如果人不动,那么单摆有一个固有的周期,这就是系统内部的某种时间尺度. 但是人在移动 (不管是在走动,还是随着地球转动),也有一个外在的时间尺度. 如果两个时间尺度相差比较大,那么可以做某些好的近似. 在量子力学的 adiabatic approximation 中,一般考虑的是内部的时间尺度远远短于外部的时间尺度. /Example/...
菲兹克斯喵
生物网络: 直接物理交互:比如核糖体附着在 DNA 上 相关性:有相关性的不同分子或者细胞器 …… 上面的这些内容整体上可以组成一个「图」,图中可以存在加权重的连接等等. 一维正反馈效应: d[x]dt=v[x]nKdn+[x]n−d⋅[x]\frac{\text{d}[x]}{\text{d}t}=v\frac{[x]^n}{K_d^n+[x]^n} - d\cdot[x] dtd[x]=vKd...
菲兹克斯喵
内积空间与函数空间 /Definition/ (函数空间完备性) 如果由空间内函数组成的 Cauchy 序列的极限仍保持在该空间内,那么称为该空间是完备的. 平方可积函数空间是完备的. 把完备的内积空间称为 Hilbert 空间;物理上常用可数的 Hilbert 空间. 函数内积定义的推广: (f1,f2)=∫f1(x)f2(x)ρ(x)dx(f_1,f_2) = \int f_1(x)f_2(x...
2025年,作者在人生与职业的双重转折中,聚焦于“尝试平衡”。工作上勇于转型,持续分享与协作,实现技术与心态的成长;生活中,婚姻和家庭成为新的关注重心。通过经验总结、系统学习和乐于成就他人,收获个人成长,体会到快速学习和适应变化是核心能力,并在自我反思中展望未来。
系列深入剖析Linux内存管理在ARM64架构下的原理与实现,覆盖物理内存初始化流程、核心分配器机制(如buddy、slab、vmalloc、CMA等)、缺页异常处理、页面回收、内存节点解析等关键环节,结合Kernel 5.15源码与丰富补充资料,帮助读者系统理解底层架构与内存管理优化要点
本文摘要:文章通过一个嵌入的Xmind思维导图,展示了某个主题的结构化思考。思维导图涵盖关键点,以直观的方式呈现信息,便于读者快速理解和把握核心内容。
系列深入剖析Linux内存管理在ARM64架构下的原理与实现,覆盖物理内存初始化流程、核心分配器机制(如buddy、slab、vmalloc、CMA等)、缺页异常处理、页面回收、内存节点解析等关键环节,结合Kernel 5.15源码与丰富补充资料,帮助读者系统理解底层架构与内存管理优化要点
深入解析Linux内核中kmalloc的内存池体系,详解其在高效分配小至中等连续物理内存块中的核心作用。文章重点说明kmalloc通过预先创建多种尺寸的slab内存池,有效应对频繁的通用及专属内存分配需求,并结合源码分析创建流程、类型划分及对应场景,帮助开发者理解内核内存分配机制的高效性与灵活性。
copyright_author: bin的技术小屋 copyright_author_href:
梳理Linux内核启动早期内存管理的四个阶段,文章深入分析了slab分配器自举的“鸡生蛋”难题:分配器本身依赖尚未初始化的自身结构体。详细解读slab分配器如何通过静态变量及多层自举逻辑,巧妙解决这一循环依赖困境,进而实现对象级缓存的高效分配与初始化,为内核后续稳定运行打下坚实基础。
linux/android稳定性文章
进入分类本文摘要:文章通过一个嵌入的Xmind思维导图,展示了某个主题的结构化思考。思维导图涵盖关键点,以直观的方式呈现信息,便于读者快速理解和把握核心内容。
本文集深入探讨了Android稳定性问题,分为方法篇、原理篇和问题篇三个部分。方法篇介绍了稳定性分析的方法,包括高通Android平台稳定性分析、watchdog分析流程、crash分析以及RCU Stall问题的分析等。原理篇详细解析了subsystem ramdump、mtdoops、minidump、blackbox等稳定性相关原理,以及高通平台watchdog机制和QCOM常见reboot类型流程。问题篇则列举了多种稳定性问题案例,如原子状态调度引起的死机、中断风暴导致的panic、内存分配失败、slab内存泄露等,并分析了其原因及解决方案。
以实际dump为例,文章用trace32深入解析了Linux slab cache的内部逻辑,带你逐层解读kmalloc-64实例中的数据结构,从kmalloc_caches和kmem_cache到per-CPU区与节点node的内存组织和管理特性。
一台售后机器频繁重启,日志分析定位到kernel在同一代码处异常crash,且product分区未损坏。无论刷super单镜像还是整包软件,问题都复现,确认是存储损坏(storage corruption)导致。后续将通过UFS交叉验证和检测,进一步排查硬件问题,以寻找更深层次故障原因。
本文档详细介绍了 Armv8-A 指令集架构,特别是 A64 指令集。A64 指令集是固定长度的 32 位指令集,用于 AArch64 执行状态。文档首先概述了指令集的基本格式、分类、助记符和条件码。接着,详细介绍了跳转指令、PC 相对寻址、系统操作指令、异常产生和返回指令、系统存储器指令、数据运算指令和 load/store 指令。最后,文档还介绍了内存屏障指令,包括 DMB、DSB 和 ISB。
ARM架构自1985年起不断发展,从早期的ARM内核逐步演进,增加了特性和功能。ARMv8-A架构是最新一代,支持32位和64位执行状态,引入了64位宽寄存器,同时保持与ARMv7软件的向后兼容性。它具备多项增强,如大物理地址、64位虚拟寻址、自动事件信号等,以及硬件加速密码学等功能。ARMv8-A架构的处理器包括Cortex-A53和Cortex-A57,分别针对中档、低功耗和高端计算需求,提供高性能和能源效率。
AArch64执行状态提供了32个64位通用寄存器,每个寄存器都有32位形式。此外,还有几个特殊寄存器,如零寄存器、栈指针、程序计数器、异常链接寄存器、程序状态保存寄存器等。处理器状态PSTATE包含多个独立访问的字段,如ALU标志、执行状态、异常级别等。系统配置通过系统寄存器进行控制,使用MSR和MRS指令进行访问。字节序控制可以通过SCTLR_ELn寄存器中的EE位进行设置。在AArch64和AArch32之间切换时,AArch64寄存器映射到AArch32寄存器集,并保留状态。NEON和浮点寄存器提供128位浮点寄存器,用于保存浮点操作数和NEON操作的标量操作数和向量操作数。
您好,我已经阅读了您提供的文章内容,下面是对文章的100字左右摘要总结: 本文详细介绍了ARM架构中异常的概念和处理流程,涵盖了中断、中止、复位等不同类型的异常,并解释了同步与异步中断的区别。文章还深入剖析了异常处理寄存器的作用,以及AArch64异常向量表的配置和中断处理流程,最后以Linux内核中的中断处理机制为例,展示了从中断触发到最终处理函数的调用过程。
这里存放着没有分类的文章
进入分类crash是一款基于GDB、专为Linux内核崩溃转储文件分析而设计的开源工具,补足了GDB无法读取内核核心信息的不足。文章详解crash的手动编译安装流程,并重点介绍利用GitHub Action实现自动化编译和发布,极大简化部署环节,高效便捷,适合开发者快速上手与持续集成。
Claude Code高效助力Linux内核学习,文章详细介绍其在Windows系统上的安装流程及环境变量设置,并对API KEY获取及费用问题给出第三方解决方案。通过配置和使用Claude-code-router,可灵活切换API服务,支持针对不同目录乃至全局的内核源码智能分析,大幅提升开发和学习
printk 是 Linux 内核用于输出调试信息的接口,通过 log buffer 存储日志信息,并在系统出现问题后记录错误信息。文章详细介绍了 printk 内核框架,包括 printk 接口的作用、log buffer 的设计和初始化、log buffer 的数据结构,以及 printk 函数的流程。文章还分析了 printk ring buffer 的写入过程,包括 prb_reserve、printk_sprint 和 prb_commit 等函数的核心作用。最后,文章通过 trace32 读取 printk_ringbuffer 在内存中的数据,并解释了 printk_ringbuffer 在内存中的增长方向,使读者对环形缓冲区的整体印象更加清晰。
OneMore 是一款高度自定义的集成工具,由 PyQt6 和 fluent-widgets 开发,采用侧边导航栏和新建标签页的方式呈现工具功能。OneMore 框架设计包括通用接口、资源文件、主窗口、界面设计界面、账号登录界面、设置界面、通用工具和插件安装目录等。已实现功能包括登录界面、设置界面、导航栏、标签页、插件执行页面、插件市场和软件在线更新插件功能。插件开发指南包括插件组成元素、插件 interface 和插件上传。OneMore 遵循 GPL 协议,允许二次开发,但必须标注原作者。
本文主要探讨了泡泡玛特的成功案例,从创始人王宁的个人特质、泡泡玛特的市场策略、以及结构性机会三个方面进行了深入分析。王宁展现出了“狠、软、灵、巧”的复合特质,泡泡玛特通过“盲盒+IP”的玩法,将潮玩从小众文化变成了大众消费品,并成功抓住了中国市场的实验性和中国制造的丰饶两个结构性机会。文章还分析了情绪消费的心理机制,认为泡泡玛特的成功在于其将“低门槛+高不确定性”的心理机制设计成了一套令人欲罢不能的上瘾模型,并将这个“液态时代”的集体焦虑,升华为一种可供消费和展示的身份符号。
在快节奏生活中,高效时间管理是提升工作效率和生活质量的关键。通过明确目标、合理排序优先级、专注当前任务并灵活应对变化,可显著减少焦虑。结合Google Calendar、Todoist等工具和番茄工作法,制定每日计划、分解任务、设定时间边界,有效避免过度安排与拖延。科学的时间管理不仅助力高效工作,更是一种生活态度!
“琴棋书画诗酒花”承载了对诗意生活的向往,而“柴米油盐酱醋茶”则是真实生活的基石。文章探讨了理想与现实的平衡,强调在琐碎中发现美好,在平凡中融入浪漫。通过茶的沉静和酒的浓烈跨越生活两端,真正的生活韵味蕴藏于酸甜苦辣交织的日常。以心存情调面对现实,既能享受水墨画般的悠然,也能静观人间烟火的丰盈。
每个人的人生意义源自独特的生命体验,无法以单一答案概括。从自我认知入手,明确内心需求,再通过行动和创造赋予生命价值。在接受无常中成长,于人际关系中找到归属感,并通过持续反思调整方向。人生的意义并非固定,而是在探索与实践中逐渐沉淀,关键是倾听内心、珍视当下,让生命绽放独特光芒。
发表在「[linux内存管理] 第031篇 内核启动早期的slab分配器的自举」
每次看到内核的初始化流程都觉得很神奇,特别是slab分配器的自举部分,真的有点“鸡生蛋”既视感。看完后终于明白为什么要先用静态变量顶一下,写得很细致,感谢作者!
发表在「[Android稳定性] 第055篇 从dump信息角度学调度schedule」
作为一个刚接触内核开发的新手,看到这么详细的dump分析真是受益匪浅!特别是关于内核线程借用用户空间地址空间的部分解释得很清楚。
发表在「[Android稳定性] 第051篇 [原理篇] 从timer角度学习高通平台的watchdog」
沙发!正好打算研究这个,太棒了👏「手动点赞」
发表在「[linux内存管理] 第027篇 Linux ARM64 虚拟地址布局」
「手动点赞」😏,原来是2019改的,长知识了,之前一直傻傻分不清楚到底是在高地址还是低地址🤡
发表在「 [Android稳定性] 第049篇 [问题篇] 软中断霸占CPU导致watchdog无法及时喂狗」
琦哥太强了🤞