linux Copy-on-Write

传统意义上,在调用 fork() 生成子进程时,属于父进程的所有资源都会复制一份给子进程。

而采用复制所有资源给子进程的方法不仅是幼稚的也是低效的,更糟的是,如果子进程

生成后马上调用 exec() 执行了一个应用,那么之前复制给子进程的资源将被浪费。

在 linux 中, fork() 的实现采用了 写页时复制(copy-on-write) 的方法。

Copy-on-write 是一种延时复制或完全不复制资源给子进程的技术。父进程和子进程

可以共享一份进程地址空间而不是复制进程地址空间。资源的复制只在子进程需要执行

写操作时才发生,否则父进程的资源将只能被子进程以只读方式访问。

原文地址:https://www.cnblogs.com/aqing1987/p/4431900.html