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 .
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% /tmpSunOS 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/pruebaTmpfs 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/espacioque 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 / espacioTmpfs 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 ).
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 .
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.
Sistemas de archivos ( lista , comparación ) | |||||||
---|---|---|---|---|---|---|---|
Disco |
| ||||||
Distribuido (red) | |||||||
Especial |
|