【io_uring 系列】liburing 基础 API 详解:从 Hello World 到文件 I/O
手把手教你使用 liburing 编写第一个 io_uring 程序。详解 io_uring_queue_init, io_uring_submit 等核心 API 的使用流程。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 7 篇文章 · 返回首页
手把手教你使用 liburing 编写第一个 io_uring 程序。详解 io_uring_queue_init, io_uring_submit 等核心 API 的使用流程。
深入网络编程,实现一个异步 TCP 服务器。学习如何使用 user_data 管理连接上下文,处理 Accept, Read, Write 链式调用。
上篇讲哲学,这篇写代码。用 C + ngtcp2 从 UDP socket 开始,手撕 Initial → Handshake → 1-RTT,逐帧拆解 QUIC 握手到底在干什么。
AI 生成的 C/C++ 代码里有多少未定义行为?我用 UBSan、ASan、MSan 扫了 200 段 AI 生成的代码。结果:38% 包含至少一个 UB。
拿仓库里现成的 io_uring echo server 做基线,一行一行往 Rust 翻。记录编译器拦下来的五个瞬间——每一个都对应 C 版本里一个真实的 crash 或泄漏风险。Rust 的价值不在更快,在更难把雷带到线上。
Rust 的所有权系统在 FFI 边界会失效——一旦指针跨过 extern \"C\",borrow checker 就看不到了。本文从 bindgen 自动生成绑定、cbindgen 导出 Rust 接口、内存所有权跨语言传递,到为 C 库编写安全的 Rust wrapper,系统拆解 FFI 实战中的每一个坑。
不是'谁快'——而是'什么维度上谁更合适'。在延迟、吞吐量、内存占用、编译速度、并发模型五个维度上正面对比,用同一个任务的三种实现说话。