A memory-mapped file is a segment of
virtual memory
In computing, virtual memory, or virtual storage is a Memory management (operating systems), memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "cre ...

that has been assigned a direct byte-for-byte correlation with some portion of a file or file-like resource. This resource is typically a file that is physically present on disk, but can also be a device,
shared memory
In computer science
Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application.
Computer science is the study of , ...

object, or other resource that the
operating system
An operating system (OS) is system software
System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android (operating system), Android and Mi ...

can reference through a
file descriptor
In Unix and Unix-like computer operating systems, a file descriptor (FD, less frequently fildes) is a unique identifier (Handle (computing), handle) for a file (computing), file or other input/output System resource, resource, such as a pipe (Unix) ...
. Once present, this correlation between the file and the memory space permits applications to treat the mapped portion as if it were primary memory.
History
TOPS-20 PMAP
An early () implementation of this was the PMAP system call on the
DEC-20
The DECSYSTEM-20 was a 36-bit Digital Equipment Corporation PDP-10 mainframe computer running the TOPS-20 operating system (products introduced in 1977).
PDP-10 computers running the TOPS-10 operating system were labeled ''DECsystem-10'' as a w ...
's
TOPS-20
The TOPS-20 operating system
An operating system (OS) is system software
System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android (ope ...

operating system, a feature used by Software House's
System-1022 database system.
SunOS 4 mmap
SunOS 4 introduced
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser
Multi-user software is computer software
Software is a collection of Instruction (computer science), instructions that tell a computer how to work. This is in contrast t ...

's
mmap
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softw ...
, which permitted programs "to map files into memory."
Windows Growable Memory-Mapped Files (GMMF)
Two decades after the release of TOPS-20's PMAP,
Windows NT
Windows NT is a proprietary
{{Short pages monitor">DotNet
PHP supported memory-mapping techniques in a number of native file access functions such as file_get_contents() but has removed this in 5.3 (se
revision log
.
For the R programming language
R is a programming language for statistical computing and graphics supported by the R Core Team and the R Foundation for Statistical Computing. Created by statisticians Ross Ihaka and Robert Gentleman (statistician), Robert Gentleman, R is used ...
there exists a library on CRAN calle
bigmemory
which uses the Boost library and provides memory-mapped backed arrays directly in R. The packag
offers memory-mapped vectors, matrices, arrays and data frames.
The J programming language
J, or j, is the tenth letter
Letter, letters, or literature may refer to:
Characters typeface
* Letter (alphabet)
A letter is a segmental symbol
A symbol is a mark, sign, or word that indicates, signifies, or is understood as rep ...
has supported memory mapped files since at least 2005. It includes support for boxed array data, and single datatype files. Support can be loaded from 'data/jmf' J's Jdb and JD database engines use memory mapped files for column stores.
References
{{DEFAULTSORT:Memory-Mapped File
Virtual memory