Во FreeBSD реализована идея ''объекта VM'' общего вида. Объекты VM могут быть связаны
с хранилищами различного типа--без долговременного хранения, с хранением в области
подкачки, с хранением на физическом устройстве или с хранением в файле. Так как файловая
система использует одни и те же объекты VM для управления внутренними данными, связанными
с файлами, то в результате получается универсальный буферизирующий кэш.
Объекты VM могут затеняться. Это
значит, что они могут выстраиваться один над другим. Например, вы можете иметь объект VM
с хранением в области подкачки, который выстроен над VM-объектом с хранением в файле, для
реализации операции mmap() типа MAP_PRIVATE. Такое построение также используется для
реализации различных функций при совместном использовании, включая копирование при записи
для разветвляющегося адресного пространства.
Должно быть отмечено, что vm_page_t может быть одновременно
связана только с одним объектов VM. Затенение VM-объекта реализует эффективное совместное
использование одной и той же страницы между несколькими экземплярами.