系统调用

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 Futex 深度实战:从内核源码到高性能锁设计

系统调用 futex 是 Linux 用户空间同步原语的基石。本文从内核实现源码出发,逐层剖析 futex 的七种操作码、PI futex 优先级继承协议、robust list 死锁恢复,再到用户空间用 20 行 syscall 搭建一个可工业部署的 mutex,最后讨论 NUMA 感知等待队列和 FUTEX_WAKE_OP 实现读写锁的 tricks。

Linux 系统调用全链路深度工程实战:从 syscall 指令到 VFS 的完整旅程

系统调用是用户空间进入内核空间的唯一受控通道。本文从 x86_64 SYSCALL 指令出发,完整拆解系统调用链路中的每一个关键阶段:entry_SYSCALL_64、pt_regs、syscall table 分发、文件操作全路径(openat→read/write/close)、io_uring 替代方案、安全加固策略(strace/ftrace/eBPF 调试实战)。