- tmpfs
-
tmpfs es el nombre que recibe un sistema de almacenamiento en muchos sistemas operativos de tipo Unix. Aparece como un sistema de archivos montado aunque usa memoria volátil. Es similar a los discos RAM, que aparecen como discos virtuales, y pueden contener sistemas de archivos.
tmpfs normalmente también usa espacio de intercambio en situaciones en las que hay poca memoria volátil disponible.
Como los datos están principalmente en memoria volátil, las velocidades para realizar operaciones en tmpfs son generalmente mucho mayores en comparación a un sistema de archivos en otros dispositivos de almacenamiento como discos rígidos.
Por usar memoria volátil, los datos en tmpfs no persisten después de reiniciar el sistema.
Muchas distribuciones de Unix tienen habilitado y usan tmpfs montado por defecto en /tmp o para memoria compartida.
Contenido
Implementaciones
SunOS / Solaris
SunOS 4 incluye la que es probablemente la primera implementación de tmpfs; apareció en SunOS 4.0 a finales de 1987 junto a una nueva administración ortogonal del espacio de memoria que permitía que cualquier objeto sea mapeado en memoria.[1] [2]
A partir de Solaris 2.1 (publicado en noviembre de 1994), /tmp usa por defecto tmpfs. La salida de `
df
`, sin embargo, resulta un tanto diferente en tanto que no muestra "tmpfs", sino "swap", aun habiendo sido montado con `mount -F tmpfs tmpfs /tmp/test
`# df -k Filesystem kbytes used avail capacity Mounted on swap 601592 0 601592 0% /tmp/test
Linux
tmpfs está soportado en Linux desde la versión 2.4 en adelante. [3]
Antes era conocido como shmfs. Está basado en el código de ramfs usado en el inicio del sistema y también usa la caché de páginas, pero a diferencia de ramfs soporta por ejemplo intercambiar páginas con poco uso en el espacio de intercambio, limitar el tamaño del sistema de archivos y limitar la cantidad máxima de inodes para evitar que el sistema se quede sin memoria. Estos valores tienen efecto desde el montaje y pueden modificarse remontando el sistema de archivos.
Un uso de tmpfs por ejemplo es "mount -t tmpfs -o size=1G,nr_inodes=10k,mode=0700 tmpfs /space" el cual permite hasta 1 GiB en la memoria RAM/swap con 10240 inodos y es accesible sólo por el dueño del directorio /space.
Es preciso notar que si tmpfs es usado por /tmp entonces se debe colocar el sticky bit por cuestiones de seguridad,[4] y "mode=1777" deberá ser usado normalmente, en lugar de "mode=0777" o "mode=777".
/var/run y /var/lock también pueden ser sistemas de archivos tmpfs.
BSD
4.2BSD introdujo MFS,[5] un sistema de archivos basado en memoria implementado aplicando el sistema de archivos FFS a una región de memoria virtual.
tmpfs, un sistema de archivos implementado usando estructuras de datos convencionales en memoria para mejorar el rendimiento de MFS, fue integrado al código oficial de NetBSD el 10 de septiembre del 2005;[6] está disponible desde la versión 4.0. FreeBSD trasladó la implementación de NetBSD, y está disponible desde la versión 7.0 en adelante.[7] DragonFly BSD trasladó la implementación de NetBSD, y está disponible desde la versión 2.5.1.
Referencias
- ↑ Peter Snyder (marzo de 1990). «tmpfs: A Virtual Memory File System» (PDF). Consultado el 07-05-2007.
- ↑ Hal L. Stern. «SunOS 4.1 Performance Tuning» (GZipped PostScript). Consultado el 07-05-2007.
- ↑ Daniel Robbins (1 de septiembre de 2001). «Advanced filesystem implementor's guide». Consultado el 07-05-2007. – Artículo que describe la implementación de Linux
- ↑ Computer Incident Advisory Capability, U.S. Department of Energy (17 de agosto de 1995). «F-27: Incorrect Permissions on /tmp». Archivado desde el original, el 2008-12-10. Consultado el 17-11-2008. – Ejemplo de vulnerabilidad de seguridad de /tmp
- ↑ «NetBSD mount_mfs(8) man page» (8 de diciembre de 2007). Consultado el 12-03-2011.
- ↑ Julio M. Merino Vidal (24 de febrero de 2006). «NetBSD-SoC: Efficient memory file-system». Consultado el 07-05-2007.
- ↑ Derek Morr (2 de diciembre de 2008). «FreeBSD tmpfs manpage». Consultado el 02-12-2008.
Enlaces externos
- Documentation/filesystems/tmpfs.txt documentation in Linux source tree
- tmpfs(7FS) Solaris 10 man page
- mount_tmpfs(8) NetBSD man page
Wikimedia foundation. 2010.