Nos sistemas modernos, nenhuma da memória é realmente copiada apenas porque uma chamada do sistema fork é usada. Tudo é marcado como somente leitura na tabela de páginas, de modo que, na primeira tentativa de escrever uma armadilha no código do kernel, isso acontecerá. Somente quando o primeiro processo tentar escrever, a cópia acontecerá.
Isso é conhecido como copy-on-write.
No entanto, pode ser necessário acompanhar também o espaço de endereço confirmado. Se nenhuma memória ou troca estiver disponível no momento em que o kernel tiver que copiar uma página, ele terá que matar algum processo para liberar memória. Isso nem sempre é desejável, portanto, é possível manter o controle da quantidade de memória com a qual o kernel se comprometeu.
Se o kernel for submetido a mais do que a memória + troca disponível, ele pode fornecer um código de erro na tentativa de chamar fork. Se houver bastante disponível, o kernel se comprometerá com o tamanho virtual completo do pai para ambos os processos após a bifurcação.