Linux / 存储
从 fsync、无锁到 io_uring:系统层踩坑入口
按工程问题找文章:fsync 失败语义、内存屏障、Zero Copy、Direct I/O、文件锁与分配器擂台。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
第一次访问时先按主题切入,比直接沿着时间线翻文章更快。
Linux / 存储
按工程问题找文章:fsync 失败语义、内存屏障、Zero Copy、Direct I/O、文件锁与分配器擂台。
系统架构
限流与过载、混沌实验、多租户、Cloudflare/Discord 案例,以及 AI 原生架构。
大模型基础设施
把训练、推理、量化与服务化串成一条工程主线;先建立 GPU 心智模型,再进入引擎与量化落地。
可观测性
从 Continuous Profiling 到 eBPF 全景与 ftrace/kprobe 生产实战。
把已经形成系列阅读闭环的主题集中在首页,减少在 400 多篇文章里盲找的成本。
按最近更新时间排序;如果你想系统性阅读一个主题,优先回到上面的专题入口。
探索 Linux 下一代高性能异步 I/O 接口 io_uring,从核心原理到性能对比,再到与现有网络库的集成。
从就绪通知到完成通知:梳理 epoll 与 io_uring 的架构差异、系统调用开销、适用场景,并附最小可运行 C 示例与示意图。
汇总本站 Linux 内核工程相关文章:eBPF / Cilium、io_uring、零拷贝权衡、无锁与内存屏障,以及分配器与调度实践。
拆穿高星「无锁」库:隐藏 mutex、被滥用的 memory_order_relaxed,以及 CAS 重试循环的阻塞本质;附 x86 vs ARM 差异。
一个在 x86 上跑了两年的内核模块,迁移到 ARM 后开始随机丢数据。三天的调试过程教会了我 smp_wmb() 的真正含义。附 Linux 内核屏障 API 完整分类与 x86/ARM 编译产物对比。
sendfile/splice/io_uring 的 zero-copy 路径深度解析与实测。揭示小数据包场景下传统 copy 因 cache locality 反而更快的反直觉真相。
本站所有系列专题的总目录。按大模型基础设施、Transformer、量化交易与金融科技、数据与数据库、分布式与存储、密码学与安全、操作系统与底层、网络与 I/O、算法与可观测等方向分类整理,每个系列均给出简介与入口链接。
定位 SPDK 相对内核块层、O_DIRECT+io_uring 与 NVMe 协议百科的生态位;钉住 I/O 路径、线程模型、设备独占、块抽象、远端传输五条坐标系,并给出 16 篇阅读路线。
钉住 SPDK event framework:每核 reactor、事件队列、poller 轮询与跨核消息;说明 shared-nothing 边界,以及在 reactor 上阻塞等于饿死同核所有工作。
说明 SPDK 运行前 env:大页分配、CPU 绑核语义、setup.sh 将 NVMe 从内核驱动解绑到 VFIO/UIO;钉住设备独占代价与 reset 回退路径。
拆解 SPDK 被动式 NVMe 库:probe/attach、admin 与 I/O qpair、完成轮询与 poll group;说明单线程独占 qpair、零拷贝提交路径及相对内核驱动的边界。
解释为何 SPDK 数据缓冲必须经 DMA 安全分配:物理/IOVA 翻译、PRP 约束、hugepage 与 IOMMU;并说明 mempool 复用、对齐失败模式及零拷贝相对显式拷贝的边界。
把 SPDK bdev 钉成用户态块栈:相对 Linux block 层统一了什么、砍掉了什么;一次 I/O 从提交、多无锁队列排队到完成回调的落点;队列满与 reset 的失败语义。
按后端与虚拟层两类划清 SPDK bdev 模块边界:nvme、aio、malloc、null、raid、lvol 各自保证什么;说明叠层何时伤害延迟与排障,并拒绝做成模块百科。
拆解 SPDK NVMe-oF target:lib/nvmf 中 tgt/subsystem/listener/namespace 与 bdev 的映射;说明 poll group 如何驱动 I/O,以及 app/nvmf_tgt 相对库的角色。