В Linux я знаю, что это реализовано COW из-за расточительства. Но в книге говорится, что когда ребенок вызывает exec() сразу после fork(), адресные пространства никогда не копируются. Но я думаю, что если ребенок использует exec(), это означает создание новых данных или кодов в адресном пространстве, которое еще не скопировано. Таким образом, когда вызывается exec(), адресное пространство копируется (копирование при записи), и сюда записываются новые данные или коды.
Я ошибся? Почему вызовы exec() никогда не копируют родительские вещи?
Или, если ребенок вызывает exec(), тогда ребенок просто создает свою собственную mm_struct и записывает новые данные в свое собственное адресное пространство, которое было создано заново? (не копируется из родителя)