【操作系统百科】splice/tee/vmsplice
splice 在内核 pipe buffer 间移动数据——不经过用户态。本文讲 splice/tee/vmsplice 原理、pipe_buffer 与 page 生命周期、sendfile 的前世、CVE-2022-0847 Dirty Pipe 复盘。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 2 篇文章 · 返回首页
splice 在内核 pipe buffer 间移动数据——不经过用户态。本文讲 splice/tee/vmsplice 原理、pipe_buffer 与 page 生命周期、sendfile 的前世、CVE-2022-0847 Dirty Pipe 复盘。
管道是 Unix 最古老的 IPC。但内核里它不是一条 FIFO 字节流——它是一个环形页缓冲(pipe_buffer 数组),支持 splice/vmsplice 零拷贝。本文讲 pipe/pipe2、PIPE_BUF 原子写边界、O_NONBLOCK 与 SIGPIPE、命名管道 FIFO、socketpair 与 SCM_RIGHTS 传 fd、splice/tee 的数据平面优化。