结论:写时复制(Copy-on-Write)是一种延迟复制策略:复制操作发生时双方先共享同一份物理数据并标记为只读,任何一方真正写入时才拷贝出私有副本。它把"复制"的成本从必然付出变成按需付出。

展开:操作系统中的典型应用:1)fork——父子进程共享全部物理页,页表项标只读,写入触发 page fault 后内核复制该页并恢复可写;大多数情况下子进程立刻 exec,几乎一页都不用拷。2)文件系统的快照(如 ZFS/Btrfs 快照、qcow2 增量镜像)——快照创建只记录元数据,原数据块被修改时先拷贝旧块。3)内存映射文件(MAP_PRIVATE)——进程对映射页的修改不落回文件,靠 COW 产生匿名页。易错点:COW 不是免费的——第一次写每个页都要付出 page fault + 复制的代价,fork 后父进程大量写内存的负载要评估;另外透明大页(THP)与 COW 交互可能放大复制粒度。

追问方向:fork + exec 场景为何催生了 vfork、Redis 用 fork 做 RDB 持久化时 COW 带来的内存峰值问题。