- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 linux内核故障分析及调测工具使用能力
Linux内核的故障分析和调测工具非常丰富,根据使用场景大致可以分为这几大类。下面我为你整理了典型工具的归类表,方便快速查阅,后面再详细解读几个核心工具的实战能力。
2026-03-27 16:40:27
167
原创 Linux实时性能数据监控系统方案设计
本报告深入探讨了ARM64架构下嵌入式Linux实时性能监控系统的设计方案。针对工业4.0、自动驾驶等场景对实时性的严苛要求,报告提出了基于LKM和eBPF+Perf两种技术路径的监控方案。系统重点关注周期性任务抖动、信号延迟、线程同步等六大核心指标,利用ARM64硬件计时器实现纳秒级测量。LKM方案通过静态跟踪点注册和Per-CPU环形缓冲区实现低损耗监控,可直接访问内核数据结构,适用于对性能要求极高的场景。报告详细阐述了系统架构、关键指标实现机制及核心代码框架,为ARM64平台实时性能优化提供了重要参考
2026-03-25 15:25:02
30
原创 ARM64 Linux 平台中 Pstore 的典型应用
Pstore是Linux内核提供的内核崩溃数据持久化存储机制,尤其适用于ARM64平台(如车载、工业控制、边缘计算等场景)。它可将内核崩溃信息、日志和调试数据写入掉电不丢失的存储介质(RAM/Flash/MMC),在系统重启后进行分析。Pstore解决了ARM64设备在无控制台环境下的崩溃诊断难题,支持多种存储介质,并适配ARM64特有故障(如EFI启动失败、SMP核间通信异常)。典型应用包括内核崩溃定位、Watchdog超时分析、实时性故障诊断等。实现上通过保留RAM区域或Flash存储,结合ARM64优
2026-03-23 10:33:38
372
原创 systemd看门狗机制应用示例
本文展示了systemd看门狗机制的应用实现,包含服务程序、配置文件和监控脚本。主服务程序(service-app.c)通过systemd接口定期发送"喂狗"信号,模拟正常工作与卡死状态。配套的systemd服务单元文件(mywatchdog.service)配置了5秒超时的看门狗机制,当服务卡死时会自动重启。示例还提供了Makefile编译文件和监控脚本,完整实现了从编码、部署到监控的全流程,帮助开发者快速掌握systemd看门狗功能的应用方法。
2026-03-18 16:13:04
205
原创 systemd看门狗与softdog对比分析
本文对比了Linux系统中softdog和systemd两种进程存活性检测机制。softdog是内核级全局复位方案,通过写入/dev/watchdog喂狗,超时触发系统重启。systemd看门狗则是用户态服务级方案,通过sd_notify发送心跳,超时仅重启单个服务。两者主要区别在于:softdog适用于内核级故障防护,影响整个系统;systemd看门狗针对单个用户态服务,集成度更高。建议将systemd看门狗作为用户态进程检测的首选方案,而softdog作为系统级故障的最后防线,二者可配合使用实现多层次保
2026-03-17 15:36:47
242
原创 最基础的 eBPF 示例程序 - Hello World
eBPF(Extended Berkeley Packet Filter)是Linux 内核的动态执行框架,本质是一套 “运行在内核态的安全沙箱虚拟机”—— 允许用户编写的小型程序(eBPF 程序)在内核中安全运行,无需修改内核源码或加载内核模块,是近十年 Linux 内核最具革命性的技术之一。
2026-03-12 23:13:54
158
原创 深入解析ARM64内核Oops:从原理到实战调试
ARM64 内核 Oops 是内核态非法操作触发的错误报告(如空指针、非法内存访问),调试核心是定位错误指令→分析异常原因→验证修复效果。本文从 “日志解析→工具调试→实战案例” 三个维度,给出一套标准化的 ARM64 Oops 分析调试流程。
2026-03-10 13:45:52
371
原创 linux实时性分析--延时影响
Linux内核的实时性(即系统响应外部事件的确定性和速度)受到多个因素的制约。这些因素主要可以分为调度延迟、中断处理延迟、内核抢占机制、锁机制以及其他子系统干扰。
2026-03-05 15:27:43
374
原创 Linux内核Lockup机制实现原理分析
Linux内核的Lockup检测机制通过hrtimer + watchdog线程实现软锁死检测,通过perf + NMI实现硬锁死检测,构建了一个全面的系统稳定性监控体系。核心设计思想分层检测:软锁死检测调度问题,硬锁死检测中断问题低开销:利用现有子系统(hrtimer/perf)实现可配置:提供丰富的配置选项适应不同场景可观测:触发时提供完整的上下文信息这一机制是Linux内核稳定性的重要保障,通过合理配置和及时响应,可以有效避免系统长期不可用的问题。
2026-03-05 10:22:27
370
原创 hung_task内核自检原理分析
hung_task是Linux内核中一种用于检测D状态死锁的机制,专门监控那些处于TASK_UNINTERRUPTIBLE状态(即D状态)过久的进程。当进程因等待磁盘I/O、NFS或内核锁等资源而无法被中断,且超过预设时间(默认120秒)仍未恢复时,hung_task机制会判定该进程"hung住",并打印告警信息,甚至可根据配置直接触发内核panic重启系统
2026-03-04 17:05:20
371
原创 C++学习之内存分区模型
C++程序执行时,主要分为4个区域:代码区:存放函数体的二进制代码,由操作系统进行管理全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值、局部变量等堆区:由程序员分配释放,若程序员不释放,程序结束时操作系统回收有四个区的概念对于编程灵活性提高有很大的帮助程序运行前,未执行程序前分为两个区域代码区:共享、只读全局区:全局变量、静态变量(static)、常量区、字符串常量、其他常量。该区域数据在程序结束后操作系统释放const局部变量和局部变量都不在全局区。程
2020-05-28 19:34:09
146
原创 C++学习之函数
函数默认参数: 返回值类型 函数名(参数=默认值)如果传入自己得数据,就用自己的数据,没有进行参数的传递,就会直接使用默认值。注意事项:如果某个位置,已经有了默认参数,那么从这个位置往后,从左到右必须有默认值。如果函数声明有默认参数,函数实现就不能有默认参数。声明和实现只能有一个默认参数。函数的占位参数:返回值类型 函数名 (数据类型)void func(int a,int){ code;} //第二个int就是占位参数,必须传递一个整型。函数重载(C++中允许功能相近的函数在
2020-05-28 19:14:26
157
原创 数据结构之链表篇
数据结构之链表篇所有代码均出自郝斌老师数据结构教学视频单链表的学习过程,我们需要明白几个重要定义:头指针:头结点:首结点(第一个结点):尾结点:抽象链表的数据结构typedef struct Node{ int data; struct Node* pNext;}Node;//NODE 等价于struct NODE PNODE等价于struct Node*typede...
2020-01-16 16:47:58
236
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅