Функция Copy-on-Write (COW) в Linux работает следующим образом: при чтении области данных используется общая копия, в случае изменения данных — создаётся новая копия. 3
Например, при работе UNIX-функции fork() вместо реального копирования ядро меняет дескрипторы страниц памяти материнского процесса, запрещая какую-либо запись в страницы данных. 3 Затем создаётся дочерний процесс, которому копируются дескрипторы страниц памяти материнского процесса. 3 При этом ядро помечает эти страницы как совместно используемые. 3 Попытка записи в отображённые страницы вызывает исключение, которое передаёт управление в ядро. 3 Ядро видит, что это обращение было законным, и создаёт копию изменяемой страницы. 3 Таким образом удаётся снизить количество потребляемой программами физической памяти. 3
В файловых системах Copy-on-Write при изменении файла данные считываются, изменяются и записываются в новое место. 4 Это предотвращает потерю данных во время транзакции чтения-изменения-записи, поскольку данные всегда находятся на диске. 4