tmpfs is a common name for a temporary file storage facility on many Unix-like
operating systems. It is intended to appear as a mounted file system, but
stored in volatile memory instead of a persistent storage device. A similar
construction is a RAM disk, which appears as a virtual disk drive and
hosts a disk file system. Semantics
Everything stored in tmpfs is temporary in the sense that no files will be
created on the hard drive; however, swap space is used as backing store in case
of low memory situations. On reboot, everything in tmpfs will be lost.
The memory used by tmpfs grows and shrinks to accommodate the files it
contains and can be swapped out to swap space.
Many Unix distributions enable and use tmpfs by default for the /tmp branch of
the file system or for shared memory. This can be observed with df as in this
example: Filesystem Size Used Avail
Use% Mounted on tmpfs 256M 688K 256M
1% /tmp On some Linux distributions, /tmp is a
normal directory, but shm uses tmpfs. Implementations
= SunOS/Solaris = SunOS 4 includes what is most likely the
earliest implementation of tmpfs; it first appeared in SunOS 4.0 in late
1987, together with new orthogonal address space management that allowed
any object to be memory mapped. The Solaris /tmp directory was made a
tmpfs file system by default starting with Solaris 2.1, released in December
1992. Output for the Solaris df command will show swap as the background storage
for any tmpfs volume: # df -k
Filesystem kbytes used avail capacity Mounted on
swap 601592 0 601592 0% test
= Linux = tmpfs is supported by the Linux kernel
from version 2.4 and up. tmpfs is based on the ramfs code used during bootup and
also uses the page cache, but unlike ramfs it supports swapping out less-used
pages to swap space as well as filesystem size and inode limits to
prevent out of memory situations. = BSD =
4.2BSD introduced MFS, a memory-based file system implemented by applying the
existing FFS disk filesystem to a virtual memory region.
tmpfs, a memory filesystem implemented using conventional in-memory data
structures in order to improve on the performance of MFS, was merged into the
official NetBSD source tree on September 10, 2005; it is available in 4.0 and
later versions. FreeBSD has ported NetBSD's
implementation, where it is available in 7.0 and later versions.
DragonFly BSD has also ported NetBSD's implementation, where it is available in
2.5.1 and later versions. OpenBSD ported NetBSD's tmpfs
implementation as well, initially started by Pedro Martelletto and
improved by many others. It has got linked to build on December 17, 2013.
The first release of OpenBSD with tmpfs included was 5.5.
References External links
"Solaris tmpfs(7FS) man page". Retrieved 2013-02-25.
"Kernel.org tmpfs documentation". Retrieved 2015-10-05.