En informática , un sistema de archivos sintético o pseudo-sistema de archivos es una interfaz jerárquica para objetos que no son archivos y que se comportan como si fueran archivos regulares en el árbol de un sistema de archivos basado en disco o de almacenamiento a largo plazo . Se puede acceder a estos objetos que no son archivos mediante las mismas llamadas al sistema o programas de utilidad que a los archivos y directorios regulares . El término común para referirse tanto a los archivos regulares como a los objetos que no son archivos es nodo .
La ventaja de los sistemas de archivos sintéticos radica en que la semántica de sistemas de archivos bien conocidos se puede reutilizar para lograr un enfoque universal y fácilmente implementable para la comunicación entre procesos . Los clientes pueden usar dicho sistema de archivos para realizar operaciones sencillas en sus nodos sin necesidad de implementar métodos complejos de codificación y transmisión de mensajes ni otros aspectos de la ingeniería de protocolos . Para la mayoría de las operaciones, se pueden usar utilidades de archivos comunes, por lo que incluso la creación de scripts resulta bastante sencilla.
Esto se conoce comúnmente como " todo es un archivo" y generalmente se considera que tiene su origen en Unix .
Ejemplos
Sistema de archivos /proc
En el mundo Unix, suele haber un sistema de archivos especial montado en /proc . Este sistema de archivos se implementa dentro del núcleo y publica información sobre los procesos . Para cada proceso, existe un directorio (identificado por su ID ) que contiene información detallada sobre el mismo: estado , archivos abiertos, mapas de memoria , puntos de montaje, etc.
/proc apareció por primera vez en Unix 8.ª edición, [ 1 ] y su funcionalidad se amplió enormemente en Plan 9 de Bell Labs . [ 2 ]
Sistema de archivos Linux /sys
El sistema de archivos /sys en Linux complementa a /proc, proporcionando al espacio de usuario mucha información detallada (no relacionada con procesos) sobre el estado del núcleo. Los sistemas Unix más tradicionales localizan esta información en las llamadas a sysctl.
ObexFS
ObexFS es un sistema de archivos basado en FUSE que proporciona acceso a objetos OBEX a través de un sistema de archivos. Las aplicaciones pueden trabajar con objetos remotos mediante el protocolo OBEX como si fueran simplemente archivos (locales).
Servidores de archivos Plan 9
En la familia de sistemas operativos Plan 9 de Bell Labs , el concepto de sistema de archivos sintético 9P se utiliza como método genérico de comunicación entre procesos (IPC) . A diferencia de la mayoría de los demás sistemas operativos, el diseño de Plan 9 es altamente distribuido: mientras que en otros sistemas operativos existen numerosas (y a menudo extensas) bibliotecas y marcos de trabajo para tareas comunes, Plan 9 los encapsula en servidores de archivos. La principal ventaja es que las aplicaciones pueden ser mucho más sencillas y que los servicios se ejecutan independientemente de la red y la plataforma; pueden residir en prácticamente cualquier host y plataforma de la red, y en prácticamente cualquier tipo de red, siempre que la aplicación pueda montar el servidor de archivos.
El Plan 9 lleva este concepto al extremo: la mayoría de los servicios del sistema operativo, como el acceso al hardware y la pila de red, se presentan como servidores de archivos. De esta forma, resulta muy sencillo utilizar estos recursos de forma remota (por ejemplo, un host accediendo directamente a los dispositivos de bloques o las interfaces de red de otro host) sin necesidad de protocolos adicionales.
También existen otras implementaciones del protocolo del sistema de archivos 9P para muchos otros sistemas y entornos. [ 3 ]
Sistemas embebidos
Es bien sabido que la depuración de sistemas embebidos, e incluso de dispositivos de sistema en chip (SoC), es compleja. Se han implementado varios protocolos para proporcionar acceso directo a los dispositivos integrados en el chip, pero suelen ser propietarios, complejos y difíciles de manejar.
Basándose en 9P , el sistema de archivos de red de Plan 9, algunos estudios sugieren el uso de sistemas de archivos sintéticos como esquema de acceso universal a dicha información. La principal ventaja es que 9P es muy sencillo, por lo que resulta bastante fácil de implementar en hardware y puede utilizarse fácilmente en prácticamente cualquier tipo de red (desde un enlace serie hasta internet).
Ventajas y desventajas
El principal argumento a favor del uso de sistemas de archivos sintéticos podría ser la flexibilidad y el fácil acceso a las arquitecturas orientadas a servicios . Una vez que un número considerable de aplicaciones utilice este esquema, la sobrecarga general (código, consumo de recursos, mantenimiento) puede reducirse significativamente. Muchos de los argumentos generales a favor de las SOA también son aplicables en este caso.
Entre los argumentos en contra de los sistemas de archivos sintéticos se encuentra el hecho de que la semántica de los sistemas de archivos puede no ser adecuada para todos los escenarios de aplicación. Por ejemplo, las llamadas a procedimientos remotos complejos con muchos parámetros suelen ser difíciles de asignar a los esquemas de los sistemas de archivos y pueden requerir un rediseño de la aplicación.
Referencias
Enlaces externos
- El protocolo del sistema de archivos sintéticos 9P .
- BROWN, Geoffrey: Sistemas de archivos en chip para soportar sistemas embebidos complejos
- PISUPATI, Bhani N.: Un marco de sistema de archivos virtual para apoyar el desarrollo de software embebido
- Minnich, Ron: Por qué Plan 9 no está muerto y qué podemos aprender de ello.
- Sistemas de archivos de propósito especial