Что происходит на уровне ядра Linux при вызове fork() процессами [компания/сервис] и как работает механизм Copy-on-Write?

fork создаёт дочерний процесс с отдельным адресным пространством, логически копирующим родителя. Linux использует copy-on-write: физические страницы сначала разделяются, а копирование происходит при записи.

Короткий ответ

Что ответить на собеседовании

fork создаёт дочерний процесс с отдельным адресным пространством, логически копирующим родителя. Linux использует copy-on-write: физические страницы сначала разделяются, а копирование происходит при записи.

Подробный разбор

Ответ с пояснениями

fork создаёт дочерний процесс с отдельным адресным пространством, логически копирующим родителя. Linux использует copy-on-write: физические страницы сначала разделяются, а копирование происходит при записи.

Ядро создаёт структуры процесса и отображения памяти; попытка записи в разделяемую COW-страницу вызывает fault и выделение собственной копии. Дескрипторы наследуются и могут ссылаться на общее open file description. В многопоточном процессе ребёнок получает только вызвавший поток, поэтому состояние locks и допустимые действия до exec требуют особой осторожности.

Источник: man7.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее