¿Es el sistema de archivos de disco similar al sistema de archivos de RAM?

Por defecto y en general ? No. La RAM no se divide en archivos, solo en ubicaciones. Casi en todos los casos, cada ubicación es un solo byte, como si toda la RAM fuera simplemente una matriz de bytes. Cada programa que se ejecuta en la computadora (incluido el sistema operativo en sí) define dónde almacena qué datos. Ya sea solo un número entero, o un conjunto completo de líneas de texto, o cualquier otro tipo de datos que necesita para funcionar. No hay un “estándar” definido para la gestión de la memoria interna que pueda usar cualquier programa. Cada uno puede organizar los datos que desee de la forma que desee, siempre que estén en los límites asignados.

Lo más cercano a alguna forma de organización general de datos dentro de RAM es el modo protegido que la mayoría de los sistemas operativos imponen en cualquier programa que ejecuten. Es decir, le da una porción de RAM a ese proceso y solo a ese proceso, no permitiendo que otros procesos vean la misma porción de RAM. Pero todavía no es un “archivo”, no importa un “sistema de archivos”. En realidad, la mayoría de los sistemas operativos asignan una parte de la RAM “virtual” a cada proceso … esa parte puede que ni siquiera esté en la RAM real, sino como una posibilidad teórica: solo se vuelve real cuando se usa realmente. Y el sistema operativo puede intercambiar porciones hacia / desde una unidad, lo que le permite ejecutar procesos que necesitan más RAM de la que realmente tiene intercambiando porciones actualmente no utilizadas a un archivo en una unidad en alguna parte.

Es posible implementar un sistema de archivos sobre RAM si así lo desea. De hecho, incluso en los años 80, era común ver personas que usaban una unidad RAM como una unidad de almacenamiento en caché rápida. En este caso, es solo un programa que se ejecuta en la parte superior del sistema operativo, que toma la porción de RAM que se le da y usa un sistema de archivos para organizar el contenido en esa porción de RAM. Probablemente tendría alguna interfaz de controlador para hacer que el sistema operativo lo considere como otra pieza de hardware como cualquier otra unidad, tal vez incluso permitiendo que el sistema operativo lo particione y / o formatee con un sistema de archivos que ni siquiera forma parte de ese programa. haciendo que el programa sea aún menos complicado (simplemente dando una serie de posibles posiciones y dejando el resto a cualquier FS que esté “instalado” en él).

En estos días, estas unidades de almacenamiento en caché ya no son necesarias. Casi todos los sistemas operativos vienen con mecanismos de almacenamiento en caché integrados , lo que tiende a hacer que tales unidades RAM sean innecesarias para casi todos los casos de uso. Todo lo que significa es que el sistema operativo tiene algún programa incorporado al que se le pregunta si algún archivo ya se ha colocado en su porción de RAM, si no, el archivo se lee desde la unidad y se agrega a la lista de archivos del programa de almacenamiento en caché. Cada vez que se escribe algo en el archivo, también se le pide al caché que actualice su versión en caché, si no lo tiene, la escritura continúa directamente en la unidad. El programa de caché utiliza cualquier medio que quiera organizar qué archivo está almacenado en qué parte de la RAM se le asigna. Y si se da cuenta de que ya no tiene suficiente RAM, pide más del sistema operativo, si no se le permite más, entonces intenta escribir de nuevo los archivos que han cambiado o simplemente eliminar los archivos accedidos hace mucho tiempo. Es probable que también tenga algún subproceso ejecutado periódicamente para actualizar la unidad con cualquier cambio en los archivos en caché. Este tipo de cosas es la razón principal por la que se recomienda “Expulsar de forma segura” un dispositivo USB: para enviar un mensaje a este programa de almacenamiento en caché para actualizar todos los cambios en ese dispositivo primero, asegurando que todos los cambios se escriban antes de simplemente desenchufarlo.

La alternativa posterior al almacenamiento en caché generalmente se prefiere sobre una unidad RAM separada. Dado que permite mucha más flexibilidad que una unidad RAM. Puede crecer o reducirse fácilmente según sea necesario. No se requieren cambios para ninguna operación de E / S (siempre que dependan de las llamadas de E / S del sistema operativo en lugar de intentar el acceso directo de hardware a una unidad). Es decir, el programa no necesita cambiar las rutas que usa para realizar operaciones de E / S en los archivos que requiere, tampoco necesita emitir algún comando de reescritura para vaciar el caché (o más bien copiar los archivos nuevamente en la unidad real) , eso lo hace el propio programa de almacenamiento en caché). De hecho, esto tiende a ser la razón por la que a veces se ve más RAM utilizada que la cantidad de programas que se ejecutan: muchos sistemas operativos hacen que esta caché crezca para ocupar casi toda la RAM disponible, reduciendo su asignación tan pronto como necesite más para algún otro programa .

No, generalmente no hay un “sistema de archivos RAM” (e incluso si pierde datos cuando enciende su computadora); RAM es solo una serie de ubicaciones de memoria numeradas desde cero, a las que se puede acceder rápidamente mediante esos índices numerados.

No tiene ubicaciones especiales (pero generalmente solo se puede abordar en el límite de bytes / octetos). Además, la CPU generalmente agrupa esas ubicaciones en páginas usualmente de 4KB (y también líneas de caché, que son mucho más pequeñas pueden ser un detalle importante para saber (solo) para optimizar la velocidad).

[Puede crear un sistema de archivos RAM, pero no es la norma para usar RAM.]

El sistema operativo gestiona la RAM y asigna procesos a múltiples páginas (y guarda algo para sí mismo, y hay más que decir sobre esto, pero probablemente fuera del alcance de la pregunta …).

También proporciona un sistema de archivos, y son una abstracción sobre sectores, que proporcionan archivos; estrictamente hablando, el nivel más bajo de cada dispositivo también es lineal (pero no de acceso aleatorio, como en RA en RAM) debajo de la abstracción del sistema de archivos proporcionado.

Depende de la implementación del sistema de archivos basado en RAM.

En ramfs: se utiliza una asignación inicial de un bloque de memoria, que se inicializa con un sistema de archivos raíz. Después de eso, es la asignación de bloques / desasignación muy similar a un disco. La diferencia es que está limitado al tamaño de la memoria principal.

En tmpfs … no se parece en nada a un disco ya que todas las asignaciones se toman de la memoria caché del búfer del sistema. Por lo tanto, un archivo / datos eliminados se devuelve al caché como “no utilizado”. Los directorios están en una configuración “dcache” para directorios, y los bloques de datos son solo bloques de caché asignados a medida que se escribe el archivo. Los bloques Tmpfs se pueden paginar, por lo tanto, deben ser más grandes que la memoria principal (aunque eso suele ser un mal uso) y tienen límites impuestos sobre cuán grande puede ser; con el valor predeterminado de 1/2 de la memoria principal.

La diferencia entre un disco RAM tmpfs y ramfs »Wiki Ùtil JamesCoyle.net

https://www.kernel.org/doc/Docum