fork-exec中的copy-on-write如何工作?

进程fork是subprocess,并在subprocess中调用exec() 。 随着写入时拷贝, fork之后父进程和subprocess共享内存。

当subprocess调用exec()来加载另一个进程时,Linux会将父内存复制到新内存中,并且subprocess还将另一个进程加载到这个新内存中? 如果是这样,这是否意味着在fork-exec时没有数据的写入时复制的过程呢?

随着写入时拷贝, fork之后父进程和子进程共享内存。

是的阅读,没有写作。 为分叉的子进程创建一个新的地址空间,只有在子进程写入之前,才会填充它。

如果fork()紧跟在exec() ,则通常不会使用为fork()创建的地址空间,而是会使用新的地址空间,也就是为进程exec () ed创建的地址空间。