Файлы, отображаемые в память, предназначены для того, чтобы содержимое файла отображалось как область памяти в вашей программе. Они не о создании специального файла «в памяти». Концепция Boost взята непосредственно из доступности системного вызова mmap
в Unix и аналогичных средств в большинстве других операционных систем. Он предназначен для использования в качестве общей обертки для этой возможности.
Если вы пытаетесь создать область памяти, разделяемую двумя процессами, файлы с отображением в памяти могут сделать это за вас, но за счет наличия файла на диске, который отражает содержимое этой памяти. В Linux это все еще будет достаточно эффективным, поскольку содержимое файла будет просто кэшироваться в памяти, а страницы памяти вашей программы, соответствующие содержимому файла, будут такими же точными физическими страницами, какие используются в кэше.
Если то, что вы хотите, это просто виртуальный диск ...
Большинство современных операционных систем используют память для дискового кэша, которая не нужна процессам. Нет необходимости в виртуальном диске. В Linux существует тип файловой системы tmpfs
, который можно использовать для файловых систем, которые не должны сохраняться между загрузками. Его файлы обычно находятся в памяти, но они могут быть выгружены так же, как и любой другой вид памяти.
Да, общая память System V существует и имеет абсолютно ужасный дизайн. Я бы не трогал примитивы межпроцессного взаимодействия sys V с 10-футовым шестом.