Tmpfs
tmpfs is a temporary file storage paradigm implemented in many Unix-like operating systems.  It is intended to appear as a mounted file system, but data is 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 directly created on non-volatile storage such as a hard drive (although 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.

Many Unix distributions enable and use tmpfs by default for the  branch of the file system or for shared memory. This can be observed with  as in this example:

 Filesystem            Size  Used Avail Use% Mounted on
 tmpfs                 256M  688K  256M   1%  /tmp

Some Linux distributions such as Debian, however, does not have a tmpfs mounted on  by default; in this case files under  will be store in same file system as .

And on almost all Linux distributions, a tmpfs is mounted on  or  to store temporary run-time files such as PID files and Unix domain sockets.

Implementations 

There are several independent variants of the tmpfs concept. One of the earliest was developed by Sun Microsystems for SunOS, and other operating systems like the BSDs and Linux provided their own.

SunOS 
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  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%    /tmp/test

Linux 
tmpfs is supported by the Linux kernel beginning in version 2.4. Linux tmpfs (previously known as shmfs) 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 (defaulting to half of physical RAM and half the number of RAM pages, respectively).

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 was enabled in builds from December 17, 2013. The first release of OpenBSD with tmpfs included was 5.5. OpenBSD 6.0 disabled tmpfs due to lack of maintenance.

References

External links
 
 

Special-purpose file systems
Special-purpose file systems supported by the Linux kernel
Computer-related introductions in 1987