系统调用

Linux 系统调用深度实战:从 int 0x80 到 VDSO 与 io_uring 的 Syscall Entry/Exit 内核实现与 eBPF 追踪

从硬件指令层拆解 Linux 系统调用的完整生命周期:syscall 历史演进(int 0x80→sysenter→syscall)、entry_SYSCALL_64 汇编级的 swapgs/per-cpu/pt_regs 构建安全分析、VDSO 如何让 gettimeofday 绕过 syscall、vDSY vs ASLR 兼容、syscall 分发表、Spectre/Meltdown 对 syscall 延迟的量化影响、sysret 与 iret 返回路径选择、io_uring 用共享环形队列绕过 syscall 的架构、eBPF tracepoint/kprobe/fentry 三种观测方式对比、strace 的 ptrace 代价与替代方案、生产环境减少 syscall 频率的 7 种工程策略、跨架构对比(x86_64/ARM64/RISC-V)。

Linux BPF Iterator 深度实战:可观测性革命的内核级数据导出技术

深入解析 Linux 5.8 引入的 BPF Iterator 机制——一种可编程的内核级数据导出框架。从内核源码层面剖析 bpf_iter 注册模型、seq_file 回调链、批处理迭代语义,到用户态 perf_event 与 ring buffer 的高效数据搬运。涵盖 task_iter/task_file_iter/mmap_iter/vmap_iter/mem_iter/tcp_iter/udp_iter 等十余种标准 iterator 的实现原理与性能特征,并给出生产实践中用 BCC/bpftrace 构建自定义 iterator 的完整范例(进程网络画像、容器级 PID 命名空间遍历、脏页追踪)。

深入 Linux vDSO:用户态加速系统调用的零拷贝艺术

本文深入剖析 Linux vDSO(Virtual Dynamic Shared Object)机制——内核如何将用户态可执行代码映射到进程地址空间,使 clock_getdaytime 等高频系统调用完全绕过内核态切换,实现零上下文切换的极致加速。覆盖 vsyscall 历史、ELF 加载流程、seqlock 无锁设计、sigreturn 优化、ARM64/x86 差异与工程陷阱排查。