BLOG

Record, summarize, and improve.
6/17

clfow分析静态函数调用关系

本文使用 cflow、tree2dotx 和 Graphviz 分析 C/C++ 项目的静态函数调用关系,并将调用树转换为 DOT/SVG 图形。

常见benchmark

本文整理 bonnie++、dbench、glxgears、iozone、pingpong、stream、UnixBench 和 x11perf 等常见基准测试工具及其测试指标。

自旋锁

本文介绍 Linux 自旋锁、raw_spinlock、ticket spinlock 和 MCS queued spinlock,说明其临界区约束、排队机制、实时内核差异及缓存同步优化。

linux虚拟架构

本文梳理 Hypervisor、KVM、QEMU、QEMU-KVM 和 libvirt 的虚拟化架构,比较裸机、托管和操作系统级虚拟化以及 CPU、内存和 I/O 的职责分工。

ACPI与FDT

本文比较 ARM 服务器中的 ACPI 与 Device Tree,说明 UEFI、SBSA、SBBR、AML、电源管理和硬件描述接口对多操作系统生态的意义。

tracepoint_sched

本文整理 Linux 调度器 tracepoint,重点说明 sched_switch、sched_wakeup、sched_migrate_task 及 blocked、sleep、iowait、wait、runtime 等统计事件。

arm汇编

本文介绍 ARM 汇编语法、寻址方式、数据处理、加载存储、分支、协处理器、异常指令和 GNU as 伪操作,并对比 ARM 与 x86 汇编差异。

IO

本文介绍 Linux I/O 子系统及设备访问路径,围绕字符设备、块设备、文件接口和输入输出操作说明内核与硬件之间的数据交互。

图灵机

本文介绍图灵机的纸带、字符表、读写头和状态寄存器,解释图灵完备性以及命令式计算、条件、循环和存储能力对可计算性的意义。

linux内核抢占

本文对比不可抢占内核与可抢占内核,梳理用户抢占和内核抢占发生的时机,包括系统调用/异常返回、内核重新具备可抢占性以及任务阻塞等场景。