Когда процесс разветвлен, Linux делает очень минимальный объем копирования и использует копию на методе записи. Эта копия на записи означает, что, если оба процесса (родитель и ребенок) делают чтения, они будут читать из тех же самых блоков памяти. После того как один из них пишет в ту память, он копируется и больше не совместно используется.
Теперь программы не знают, что это происходит. Это вызвано тем, что ядро поддерживает таблицу страниц для каждого процесса. Когда процесс говорит, что 'Я хочу получить доступ к памяти 0xbeef' перекарты ядра это в фактическое местоположение в физической памяти. Это необходимо, потому что программа сохранит эти адреса в переменных, поэтому когда программа будет разветвлена, она, наклон знает, если или куда данные в его памяти перемещены в (все те адреса, сохраненные в переменных, должны продолжить быть допустимыми).
Это также, что позволяет подкачке работать. Ядро может взять физическую память, содержащую данные, и сохранить его к диску, но программа все еще сошлется на адрес 0xbeef, и ядро переведет это.
Таким образом, абсолютный минимум, который ядро заканчивает тем, что копировало, является таблицей страниц, которая делает это отображение адресов и структуру задачи (покрытия открытые файлы, состояние процесса, незаконченные сигналы, и т.д.).
Необходимо искать тот хост с помощью-R опцию в grep.
grep -R opensuse /etc/yum.repos.d/ | cut -d":" -f1
выше команды распечатает точные файлы соответствия.
и можно прокомментировать, что связывает на лету использование:
grep -R opensuse /etc/yum.repos.d/ | cut -d":" -f1 | xargs -n1 sed -i.bkp "/opensuse/ s/^/#/"