Linux на самом деле не делает различий между анонимными и отображаемыми в памяти страницами. Все они загружаются по требованию в любом случае через ошибки страницы.
Вы можете думать об анонимной памяти, как если бы она была частным отображением памяти / dev / zero.
Таким образом, вы можете отобразить столько, сколько захотите (разрешение адресного пространства, но я предполагаю, что вы находитесь на 64-битном поле здесь). Linux загружает их только тогда, когда процесс касается их, через сбои страниц.
Аналогично, в нем хранятся некоторые записи о том, как недавно использовались страницы, поэтому они получают приоритет при отбрасывании.
Если ваше сопоставление файлов MAP_SHARED, единственное отличие состоит в том, что страницы, которые отбрасываются, чтобы получить больше места для других вещей, не должны записываться в область подкачки, их можно просто прочитать обратно из оригинала файл.
Так что в ответ на ваш вопрос, нет, отображение большого файла не отнимает у кого-либо виртуальную память, если вы не читаете и не пишете страницы.