En informática , un sistema de archivos sintético o un pseudo sistema de archivos es una interfaz jerárquica para objetos que no son archivos y que aparecen como si fueran archivos normales en el árbol de un sistema de archivos de almacenamiento a largo plazo o basado en disco . Se puede acceder a estos objetos que no son archivos con las mismas llamadas al sistema o programas de utilidad que los archivos y directorios normales . El término común tanto para los archivos normales como para los objetos que no son archivos es nodo .
El beneficio de los sistemas de archivos sintéticos es que la semántica del sistema de archivos bien conocida puede reutilizarse para un enfoque universal y fácilmente implementable para la comunicación entre procesos . Los clientes pueden utilizar un sistema de archivos de este tipo para realizar operaciones de archivos simples en sus nodos y no tienen que implementar métodos complejos de codificación y paso 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 es bastante fácil.
Esto se conoce comúnmente porque todo es un archivo y generalmente se considera que se originó en Unix .
Ejemplos de
/ proc sistema de archivos
En el mundo Unix, comúnmente hay un sistema de archivos especial montado en / proc . Este sistema de archivos se implementa dentro del kernel y publica información sobre los procesos . Para cada proceso, hay un directorio (nombrado por el ID del proceso ), que contiene información detallada sobre el proceso: estado , archivos abiertos, mapas de memoria , montajes, etc.
/ proc apareció por primera vez en Unix 8th Edition, [1] y su funcionalidad se expandió enormemente en Plan 9 de Bell Labs . [2]
Sistema de archivos Linux / sys
El sistema de archivos / sys en Linux complementa / proc, proporcionando mucha información detallada (no relacionada con el proceso) sobre el estado del kernel en el espacio de usuario. Los sistemas Unix más tradicionales ubican esta información en llamadas 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 en objetos remotos a través del protocolo OBEX como si fueran simplemente archivos (locales).
Planificar 9 servidores de archivos
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 de IPC genérico . A diferencia de la mayoría de los otros sistemas operativos, el diseño de Plan 9 está muy distribuido: mientras que en otros sistemas operativos hay muchas bibliotecas y marcos (y a menudo grandes) para cosas comunes, Plan 9 los encapsula en servidores de archivos. El beneficio más importante es que las aplicaciones pueden ser mucho más simples y que los servicios se ejecutan de forma independiente a la red y la plataforma: pueden residir en prácticamente cualquier host y plataforma de la red, y prácticamente en cualquier tipo de red, siempre que la aplicación pueda montar el servidor de archivos. .
Plan 9 impulsa ampliamente este concepto: la mayoría de los servicios del sistema operativo, por ejemplo, el acceso al hardware y la pila de redes, se presentan como servidores de archivos. De esta manera, es trivial utilizar estos recursos de forma remota (por ejemplo, un host accediendo directamente a los dispositivos de bloque o interfaces de red de otro host) sin la 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
La depuración de sistemas integrados o incluso de dispositivos de sistema en chip (SoC) es ampliamente conocida por su dificultad. [ citación necesitada ] Se han implementado varios protocolos para proporcionar acceso directo a dispositivos en chip, pero tienden a ser propietarios, complejos y difíciles de manejar.
Con base en 9P , el sistema de archivos de red de Plan 9, los estudios sugieren el uso de sistemas de archivos sintéticos como esquema de acceso universal a esa información. El principal beneficio es que 9P es muy simple y, por lo tanto, bastante fácil de implementar en hardware y se puede usar fácilmente y en prácticamente cualquier tipo de red (desde un enlace en serie hasta Internet).
Pros y contras
El principal argumento para usar sistemas de archivos sintéticos podría ser la flexibilidad y el fácil acceso a arquitecturas orientadas a servicios . Una vez que un número considerable de aplicaciones utilizan este esquema, la sobrecarga general (código, consumo de recursos, trabajo de mantenimiento) se puede reducir significativamente. Aquí también se aplican muchos argumentos generales a favor de las SOA.
Los argumentos en contra de los sistemas de archivos sintéticos incluyen el hecho de que la semántica del sistema de archivos puede no ajustarse a todos los escenarios de aplicación. Por ejemplo, las llamadas a procedimientos remotos complejos con muchos parámetros tienden a ser difíciles de asignar a los esquemas del sistema de archivos, [ cita requerida ] y pueden requerir el rediseño de la aplicación.
Referencias
- ^ "página de proc de la sección 4 del octavo manual de Unix" . Man.cat-v.org . Consultado el 28 de agosto de 2015 .
- ^ "Página de proceso de la Sección 3 del manual del plan 9" . Man.cat-v.org . Consultado el 28 de agosto de 2015 .
- ^ "Implementaciones 9P" . 9p.cat-v.org . Consultado el 28 de agosto de 2015 .
enlaces externos
- El protocolo del sistema de archivos sintéticos 9P .
- BROWN, Geoffrey: Sistemas de archivos en chip para admitir sistemas integrados complejos [ enlace muerto ]
- PISUPATI, Bhani N .: Un marco de sistema de archivos virtual para respaldar el desarrollo de software integrado
- Minnich, Ron: Por qué Plan9 no está muerto y qué podemos aprender de él