En un sistema de archivos de computadora , una bifurcación es un conjunto de datos asociados con un objeto del sistema de archivos. Los sistemas de archivos sin bifurcaciones solo permiten un único conjunto de datos para el contenido, mientras que los sistemas de archivos con bifurcaciones permiten múltiples contenidos de este tipo. Cada archivo no vacío debe tener al menos una bifurcación, a menudo del tipo predeterminado, y dependiendo del sistema de archivos, un archivo puede tener una o más bifurcaciones asociadas, que a su vez pueden contener datos primarios integrales al archivo, o solo metadatos .
A diferencia de los atributos extendidos , una característica similar del sistema de archivos que normalmente tiene un tamaño fijo, las bifurcaciones pueden tener un tamaño variable, posiblemente incluso mayor que la bifurcación de datos principal del archivo. El tamaño de un archivo es la suma de los tamaños de cada bifurcación.
Los sistemas de archivos populares que pueden utilizar bifurcaciones incluyen HFS+ de Apple y NTFS de Microsoft .
En sistemas de archivos sin bifurcaciones, se pueden utilizar varios archivos separados que estén asociados entre sí, en particular archivos sidecar para metadatos. Sin embargo, la conexión entre estos archivos no se conserva automáticamente por el sistema de archivos, y en su lugar debe ser manejada por cada programa que trabaja con archivos. Otra alternativa es un archivo contenedor , que almacena datos adicionales dentro de un formato de archivo determinado, o un archivo de almacenamiento , que permite almacenar varios archivos y metadatos dentro de un archivo (dentro de una única bifurcación). Esto requiere que los programas procesen el archivo contenedor o el archivo de almacenamiento, en lugar de que el sistema de archivos maneje las bifurcaciones. Estas alternativas requieren trabajo adicional por parte de los programas que usan los datos, pero se benefician de la portabilidad a sistemas de archivos que no admiten bifurcaciones.
Las bifurcaciones del sistema de archivos están asociadas con el Sistema de archivos jerárquico (HFS) de Apple . [1] HFS, y el sistema de archivos original de Apple Macintosh MFS , permitían que un objeto del sistema de archivos tuviera dos tipos de bifurcaciones: una bifurcación de datos y una bifurcación de recursos .
La bifurcación de recursos fue diseñada para almacenar datos no compilados que serían utilizados por la interfaz gráfica de usuario (GUI) del sistema, como cadenas de texto localizables, el icono de un archivo que se utilizaría en el Finder o los menús y cuadros de diálogo asociados con una aplicación. [2] Sin embargo, la característica era muy flexible, por lo que se encontraron usos adicionales, como dividir un documento de procesamiento de texto en contenido y presentación, y luego almacenar cada parte en recursos separados. Como el código de software compilado también se almacenaba en un recurso, a menudo las aplicaciones constaban solo de una bifurcación de recursos y ninguna bifurcación de datos.
Una de las características más desconocidas de HFS+ es que un archivo puede tener una cantidad arbitraria de "bifurcaciones con nombre" personalizadas además de las tradicionales bifurcaciones de datos y recursos. Esta característica ha pasado casi desapercibida, ya que Apple nunca agregó soporte para ella en Mac OS 8.1 - 10.3.9 . A partir de 10.4 , se realizó una implementación parcial para admitir los atributos en línea extendidos de Apple . [3]
En Mac OS X hasta Mac OS X v10.4 , los usuarios que ejecutaban utilidades de línea de comandos de Unix como tar corrían el riesgo de perder datos, ya que las utilidades no habían sido actualizadas para manejar las bifurcaciones de recursos de los archivos. [4]
A partir de 1985, Novell NetWare File System (NWFS) y su sucesor, Novell Storage Services (NSS), se diseñaron desde cero para utilizar una variedad de métodos para almacenar los metadatos de un archivo. Algunos metadatos residen en Novell Directory Services (NDS), otros se almacenan en la estructura de directorios del disco y otros se almacenan en, como lo denomina Novell, "múltiples flujos de datos" con el propio archivo. Los múltiples flujos de datos también permiten que los clientes Macintosh se conecten a servidores NetWare y los utilicen .
NTFS , el sistema de archivos introducido con Windows NT 3.1 , admite bifurcaciones del sistema de archivos conocidas como flujos de datos alternativos (ADS). [5] ReFS , un nuevo sistema de archivos introducido con Windows Server 2012 , originalmente no admitía ADS, [6] [7] [8] pero en Windows 8.1 de 64 bits y Server 2012 R2, se agregó a ReFS compatibilidad con ADS, con longitudes de hasta 128K. [9]
ADS fue originalmente pensado para añadir compatibilidad con sistemas operativos existentes que soportan bifurcaciones. [ cita requerida ] Un programa de computadora puede ser dirigido a abrir un ADS especificando el nombre del ADS después de un signo de dos puntos (:) después de la ruta del archivo. [10] A pesar del soporte, la mayoría de los programas, incluyendo Windows Explorer y el comando dir (antes de Windows Vista) ignoran ADS. Windows Explorer copia ADS y advierte cuando el sistema de archivos de destino no los soporta, pero solo calcula el tamaño del flujo principal y no lista los flujos de un archivo o carpeta. Desde Windows Vista , el dir
comando soporta mostrar ADS. [11] Windows PowerShell v3.0 y posteriores soportan la manipulación de ADS. [12]
Windows 2000 utiliza ADS para almacenar miniaturas en archivos de imagen y para almacenar información de resumen (como título y autor) en cualquier archivo, sin cambiar la secuencia principal. [13] [14] Con Windows XP , Microsoft se dio cuenta de que ADS es susceptible de pérdida cuando los archivos que los contienen se mueven fuera de los volúmenes NTFS; por lo tanto, Windows XP los almacena en la secuencia principal siempre que el formato de archivo lo admita. [13] Windows Vista descontinuó el soporte para agregar información de resumen por completo, ya que Microsoft decidió que son demasiado sensibles para que ADS los maneje. [15] Pero el uso de ADS para otros fines no se detuvo. El Service Pack 2 para Windows XP introdujo el Servicio de ejecución de archivos adjuntos que almacena detalles sobre el origen de los archivos descargados en un ADS llamado identificador de zona , en un esfuerzo por proteger a los usuarios de los archivos descargados que pueden presentar un riesgo. [16] Internet Explorer y Windows 8 extendieron esta función a través de SmartScreen . [17] Internet Explorer también utiliza ADS para almacenar faviconos en archivos de acceso directo a Internet . [10]
La versión 9 de Solaris y posteriores permiten que los archivos tengan bifurcaciones. Las bifurcaciones se denominan atributos extendidos en Solaris, aunque no están dentro del significado habitual de " atributo extendido ". El tamaño máximo de un atributo extendido de tipo Solaris es el mismo que el tamaño máximo de un archivo, y se leen y escriben de la misma manera que los archivos. Internamente, en realidad se almacenan y se accede a ellos como archivos normales, por lo que su propiedad y permisos pueden diferir de los del archivo principal. Los subdirectorios están deshabilitados administrativamente [ aclaración necesaria ] , por lo que sus nombres no pueden contener caracteres "/".
Los atributos extendidos en Network File System versión 4 son similares a los atributos extendidos de estilo Solaris.
Cuando un sistema de archivos admite diferentes bifurcaciones, las aplicaciones deben tenerlas en cuenta, ya que de lo contrario pueden surgir riesgos de seguridad. Permitir que un software heredado acceda a los datos sin las correcciones adecuadas es el principal culpable de estos problemas. [ cita requerida ]
Si las diferentes utilidades del sistema (explorador de discos, software antivirus, archivadores, etc.) no conocen las diferentes bifurcaciones, pueden surgir los siguientes problemas: