Tmpfs

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 1 de julio de 2018; las comprobaciones requieren 4 ediciones .

Tmpfs  es un almacenamiento de archivos temporal en muchos sistemas operativos similares a Unix. Diseñado para montar un sistema de archivos , pero está ubicado en la memoria RAM en lugar de un disco físico. Tal construcción es similar a un disco RAM .

Semántica

Todos los datos en Tmpfs son temporales, en el sentido de que no se creará ningún archivo en el disco duro . Después de reiniciar, se perderán todos los datos contenidos en Tmpfs.

La memoria utilizada para Tmpfs varía en tamaño según la cantidad de archivos que se le asignen y se puede expandir con intercambio . Muchas distribuciones de Unix utilizan Tmpfs de forma predeterminada para la colocación de /tmp o el uso compartido de memoria. Esto se puede ver en la salida del comando df , por ejemplo:

Tamaño del sistema de archivos utilizado % de uso disponible Montado en tmpfs 256M 688K 256M 1% /tmp

Implementaciones

SunOS/Solaris

SunOS 4 incluyó los primeros desarrollos de Tmpfs; apareció por primera vez en SunOS 4.0 a fines de 1987, junto con una nueva administración del espacio de direcciones ortogonales que permite colocar cualquier objeto en la memoria. [1] [2]

En Solaris , /tmp estaba alojado en Tmpfs, que se convirtió en estándar en Solaris 2.1, lanzado en noviembre de 1994. La salida del comando df en Solaris mostraba swap como el sistema de archivos de cualquier partición Tmpfs:

# df-k Sistema de archivos kbytes utilizados capacidad disponible Montado en intercambiar 601592 0 601592 0% /tmp/prueba

linux

Tmpfs ha sido compatible con Linux desde la versión 2.4. [3] Tmpfs (también conocido como shmfs ) se diferencia del disco RAM de Linux en que asigna memoria de forma dinámica y mueve las páginas no utilizadas para intercambiar . RAMfs, por otro lado, no usa intercambio (esto puede ser tanto una ventaja como una desventaja). Además, MFS y algunas versiones anteriores de RAMfs no cambiaron su tamaño de forma dinámica, sino que mantuvieron el mismo tamaño en el que estaban montadas.

Usando Tmpfs por ejemplo:

montaje -t tmpfs -o tamaño=1G,nr_inodes=10k,modo=0700 tmpfs/espacio

que crecerá a 1 GiB con 10240 inodos en RAM/swap y solo estará disponible para el propietario del directorio /space . El tamaño máximo del sistema de archivos se puede cambiar sobre la marcha, por ejemplo:

montar -o volver a montar, tamaño = 2G / espacio

Tmpfs puede contener cualquier directorio que almacene datos temporales que se eliminan cuando se reinicia el sistema: /var/lock, /var/run, /tmp, etc. Además, para reducir la cantidad de operaciones de disco (para maximizar el rendimiento del sistema o guardar SSD de recursos) Tmpfs a veces contiene directorios que generalmente almacenan datos entre reinicios, como /var/tmp (este directorio a menudo se borra, aunque se recomienda no hacerlo [4] ) o directorios de almacenamiento en caché de algunos programas (navegadores de Internet ).

BSD

Tmpfs se implementó en la versión 4.0 de NetBSD el 10 de septiembre de 2005 [5] . FreeBSD 7.0 introdujo Tmpfs portado desde NetBSD . [6] DragonFly BSD , desde la versión 2.5.1, también tiene una implementación portada de Tmpfs de NetBSD .

Microsoft Windows

Windows tiene un análogo aproximado de Tmpfs en forma de "archivos temporales". Los archivos creados con el atributo FILE_ATTRIBUTE_TEMPORARY y el indicador FILE_FLAG_DELETE_ON_CLOSE se colocan en la RAM y se escriben en el disco duro solo si el sistema se queda sin RAM. Por lo tanto, los "archivos temporales" son similares a Tmpfs, excepto que cuando se quedan sin memoria, se escriben en la ruta especificada cuando se crearon, y no en el archivo de intercambio. Este método se usa a menudo en servidores con TransmitFile para preparar el contenido y almacenarlo antes de enviarlo al cliente.

Notas

  1. Peter Snyder. tmpfs: un sistema de archivos de memoria virtual (PDF) . Consultado el 2 de julio de 2010. Archivado desde el original el 1 de mayo de 2012.
  2. Hal L. Stern. Ajuste del rendimiento de SunOS 4.1 ( PostScript comprimido en GZipped ). Consultado el 2 de julio de 2010. Archivado desde el original el 1 de mayo de 2012.
  3. Daniel Robbins. Guía del implementador del sistema de archivos avanzado (1 de septiembre de 2001). Consultado el 2 de julio de 2010. Archivado desde el original el 1 de mayo de 2012. Artículo que describe implementaciones en Linux
  4. Estándar de jerarquía del sistema de archivos . Consultado el 10 de noviembre de 2012. Archivado desde el original el 3 de enero de 2013.
  5. Julio M. Merino Vidal. NetBSD-SoC: sistema de archivos de memoria eficiente (24 de febrero de 2006). Consultado el 2 de julio de 2010. Archivado desde el original el 1 de mayo de 2012.
  6. Derek Morr. Página de manual de FreeBSD tmpfs (2 de diciembre de 2008). Consultado el 2 de julio de 2010. Archivado desde el original el 1 de mayo de 2012.

Enlaces