Некоторые системы, которые являются либо очень старыми (ранний Unix), либо очень специальными (mmu-linux) или verfy crappy (windows через cygwin), должны делать полную копию всех страниц («каждый байт») на fork так что потенциал есть.
Современные ядра Unix не копируют всю память процесса, вместо этого выбирая виртуальную копию. Хотя для этого требуется только часть копирования (необходимо скопировать таблицы страниц), это может занять много мегабайт и занять значительное время.
Таким образом, ответ в общем да, но в большинстве современных реализаций для создания быстрой виртуальной копии используется оборудование, но даже эта виртуальная копия не является бесплатной.
Как в старых, так и в некоторых современных системах реализован специальный вызов vfork (), который имеет несколько строгие ограничения (хотя и менее строгие, чем требования POSIX для vfork), но избегает эту копию из соображений производительности.
Чтобы привести некоторые реальные цифры, в моей системе GNU / Linux я могу выполнить команду выхода + 1340 раз в секунду из процесса с 20 МБ, но только с 235 раз / с в процессе с 2000 МБ. В обоих случаях это быстрее, чем vfork + execve, что несколько не интуитивно понятно, потому что многие думают, что «форк быстр» и «execve должен быть медленным».