Los atributos de archivo extendidos son características del sistema de archivos que permiten a los usuarios asociar archivos de computadora con metadatos no interpretados por el sistema de archivos, mientras que los atributos regulares tienen un propósito estrictamente definido por el sistema de archivos (como permisos o registros de tiempos de creación y modificación). A diferencia de las bifurcaciones , que generalmente pueden ser tan grandes como el tamaño máximo de archivo, los atributos extendidos generalmente tienen un tamaño limitado a un valor significativamente menor que el tamaño máximo de archivo. Los usos típicos incluyen almacenar el autor de un documento, la codificación de caracteres de un documento de texto sin formato o una suma de verificación , hash criptográfico ocertificado digital e información de control de acceso discrecional .
En sistemas similares a Unix, los atributos extendidos generalmente se abrevian como xattr . [1]
Implementaciones
AIX
En AIX , el sistema de archivos JFS2 v2 da soporte a atributos ampliados, a los que se puede acceder mediante el mandato getea . [2] El getea , [3]setea , [4]escucha , [5]statea , [6] y Las API removeea [7] admiten la obtención, configuración, listado, obtención de información y eliminación de atributos extendidos.
BeOS / Haiku
En el ahora desaparecido BeOS y sucesores como Haiku , los atributos de archivo extendidos se utilizan ampliamente en programas básicos y de terceros. El sistema de archivos Be permite la indexación y consulta de atributos, dando esencialmente el sistema de archivos de base de datos -como características. Los usos de los atributos extendidos en los sistemas Be-like son variados: por ejemplo, Tracker y OpenTracker , los administradores de archivos de BeOS y Haiku respectivamente, almacenan las ubicaciones de los íconos de archivos en atributos, [8] El servicio "Correo" de Haiku almacena todo el contenido del mensaje y los metadatos en los atributos de archivos extendidos, [9] y los tipos de archivos MIME se almacenan en sus atributos. Los atributos de archivo extendidos se pueden ver y editar en la GUI de los sistemas Be-like a través del administrador de archivos, a menudo Tracker o sus derivados.
FreeBSD
En FreeBSD 5.0 y posteriores, los sistemas de archivos UFS1 , UFS2 y ZFS admiten atributos extendidos, utilizando el extattr_ [10] familia de llamadas al sistema. Cualquier archivo normal puede tener una lista de atributos extendidos. Cada atributo consta de un nombre y los datos asociados. El nombre debe ser una cadena terminada en nulo y existe en un espacio de nombres identificado por un identificador de espacio de nombres de número entero pequeño. Actualmente, existen dos espacios de nombres: usuario y sistema. El espacio de nombres de usuario no tiene restricciones en cuanto a nombres o contenidos. El kernel utiliza principalmente el espacio de nombres del sistema para las listas de control de acceso y el control de acceso obligatorio .
Linux
En Linux , los sistemas de archivos ext2 , ext3 , ext4 , JFS , Squashfs , Yaffs2 , ReiserFS , Reiser4 , XFS , Btrfs , OrangeFS , Lustre , OCFS2 1.6 , ZFS y F2FS [11] admiten atributos extendidos (abreviado xattr ) cuando están habilitados en el configuración del kernel. Cualquier archivo o directorio normal puede tener atributos extendidos que consisten en un nombre y datos asociados. El nombre debe ser una cadena terminada en nulo precedida por un identificador de espacio de nombres y un carácter de punto. Actualmente, existen cuatro espacios de nombres: usuario, confiable, seguridad y sistema. El espacio de nombres de usuario no tiene restricciones en cuanto a nombres o contenidos. El kernel utiliza principalmente el espacio de nombres del sistema para las listas de control de acceso . SELinux , por ejemplo, utiliza el espacio de nombres de seguridad .
El soporte para el concepto de atributo extendido de un borrador POSIX.1e [ cita requerida ] que se había retirado en 1997 se agregó a Linux alrededor de 2002. [12] [13] A partir de 2016, aún no están en uso generalizado por el espacio de usuario Programas de Linux, pero son utilizados por Beagle , OpenStack Swift , Dropbox , el marco de metadatos semánticos de KDE (Baloo), Chromium , Wget y cURL . Un conjunto de recomendaciones para su uso está disponible en freedesktop.org . [14]
El núcleo de Linux permite atributo extendido para tener nombres de hasta 255 bytes y valores de hasta 64 KIB, [15] al igual que XFS y ReiserFS , pero ext2 / 3 / 4 y btrfs imponer límites mucho más pequeñas, que requiere que todos los atributos (nombres y valores) de un archivo para que quepa en un "bloque del sistema de archivos" (generalmente 4 KiB). Según POSIX.1e, [ cita requerida ] los nombres deben comenzar con uno de seguridad , sistema , confiable y usuario más un punto. Esto define los cuatro espacios de nombres de atributos extendidos. [dieciséis]
Se puede acceder a los atributos extendidos y modificarlos usando los comandos getfattr
y setfattr
del attr
paquete en la mayoría de las distribuciones. [17] Las API se denominan getxattr
y setxattr
.
Mac OS
Mac OS X 10.4 y versiones posteriores admiten atributos extendidos mediante el uso de la función de árbol B * de Atributos del sistema de archivos HFS + que permite bifurcaciones con nombre. Aunque las bifurcaciones nombradas en HFS + admiten cantidades arbitrariamente grandes de datos a través de extensiones, el soporte del sistema operativo para atributos extendidos solo admite atributos en línea, lo que limita su tamaño a lo que puede caber dentro de un solo nodo de árbol B *. [ cita requerida ] Cualquier archivo regular puede tener una lista de atributos extendidos. HFS + admite una cantidad arbitraria de bifurcaciones con nombre y se desconoce si macOS impone algún límite en la cantidad de atributos extendidos.
Cada atributo consta de un nombre y los datos asociados. El nombre es una cadena Unicode terminada en nulo . No existen restricciones de espacio de nombres (lo que lo convierte en un sistema xattr abierto ) y la convención es utilizar una cadena DNS inversa (similar a los identificadores de tipo uniforme ) como nombre de atributo.
macOS admite listar, [18] obtener, [19] configurar, [20] y eliminar [21] atributos extendidos de archivos o directorios utilizando una API similar a Linux. Desde la línea de comandos, estas habilidades se exponen a través de la utilidad xattr . [22]
Desde macOS 10.5, los archivos que se originan en la web se marcan con com.apple.quarantine
atributos de archivo extendidos. [23] En algunas versiones anteriores de macOS (como Mac OS X 10.6 ), los atributos extendidos del espacio de usuario no se conservaban al guardar en aplicaciones comunes de Cocoa (TextEdit, Preview, etc.). [ cita requerida ]
OpenBSD
El soporte para atributos de archivo extendidos se eliminó del código fuente de OpenBSD en 2005 debido a la falta de interés en las listas de control de acceso . [24]
OS / 2
En OS / 2 versión 1.2 y posteriores, el sistema de archivos de alto rendimiento se diseñó teniendo en cuenta los atributos extendidos, pero el soporte para ellos también se instaló en el sistema de archivos FAT de DOS. Para compatibilidad con otros sistemas operativos que utilizan una partición FAT, los atributos de OS / 2 se almacenan dentro de un único archivo " EA DATA. SF
" ubicado en el directorio raíz. Este archivo es normalmente inaccesible cuando un sistema operativo que soporta atributos extendidos administra el disco, pero se puede manipular libremente bajo, por ejemplo, DOS. Los archivos y directorios que tienen atributos extendidos utilizan uno o más clústeres dentro de este archivo. El número de grupo lógico del primer grupo utilizado se almacena dentro de la entrada del directorio del directorio o del archivo propietario . [25] Estos dos bytes se utilizan para otros fines en el sistema de archivos FAT32 y, por lo tanto, los atributos extendidos de OS / 2 no se pueden almacenar en este sistema de archivos.
Partes de OS / 2 versión 2.0 y posteriores, como Workplace Shell, utilizan varios atributos extendidos estandarizados (también llamados EA ) para propósitos como identificar el tipo de archivo, comentarios, íconos de computadora y palabras clave sobre el archivo. Los programas escritos en el lenguaje interpretado Rexx almacenan una versión ya analizada del código como un atributo extendido, para permitir una ejecución más rápida.
Solaris
Solaris versión 9 y posteriores permiten que los archivos tengan "atributos extendidos", que en realidad son bifurcaciones ; el tamaño máximo de un "atributo extendido" es el mismo que el tamaño máximo de un archivo, y se leen y escriben de la misma forma que los archivos. Internamente, en realidad se almacenan y se accede a ellos como archivos normales, por lo que sus nombres no pueden contener caracteres "/" [26] y su propiedad y permisos pueden diferir de los del archivo principal.
La versión 4 del sistema de archivos de red admite atributos ampliados de la misma forma que Solaris.
Windows NT
En Windows NT , los atributos extendidos de longitud limitada son compatibles con FAT , [25] HPFS y NTFS . Esto se implementó como parte del subsistema OS / 2 . En particular, son utilizados por el servidor NFS del subsistema Interix POSIX para implementar permisos similares a Unix. El Subsistema de Windows para Linux agregado en la Actualización de aniversario de Windows 10 los usa para propósitos similares, almacenando el modo de archivo de Linux, el propietario, la ID del dispositivo (si corresponde) y la hora del archivo en los atributos extendidos. [27]
Además, NTFS puede almacenar atributos extendidos de longitud arbitraria en forma de flujos de datos alternativos (ADS), un tipo de bifurcación de recursos . Complementos para el administrador de archivos Total Commander , como descripciones de NTFS y QuickSearch eXtended, permiten filtrar la lista de archivos o buscar metadatos contenidos en ADS. [28] [29] NTFS-3G admite la asignación de ADS a atributos extendidos en FUSE ; también asigna atributos de archivo de esa manera. [30]
Ver también
- Par atributo-valor
- Atributo de archivo
Referencias
- ^ - Manual del programador de Linux - Descripción general, convenciones y miscelánea
- ^ "comando getea" . Documentación de IBM AIX V7.2 . IBM . Consultado el 11 de julio de 2017 .
- ^ "Getea Subrutina" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 1 . IBM . Consultado el 11 de julio de 2017 .
- ^ "setea subrutina" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 2 . IBM . Consultado el 11 de julio de 2017 .
- ^ "escucha una subrutina" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 1 . IBM . Consultado el 11 de julio de 2017 .
- ^ "Statea Subrutina" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 2 . IBM . Consultado el 11 de julio de 2017 .
- ^ "removeea subrutina" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 2 . IBM . Consultado el 11 de julio de 2017 .
- ^ "Atributos" . Guía del usuario de Haiku . Haiku, Inc . Consultado el 28 de enero de 2021 .
- ^ "Taller: Gestión de correos electrónicos" . Guía del usuario de Haiku . Haiku, Inc . Consultado el 28 de enero de 2021 .
- ^ - Manual de llamadas al sistema FreeBSD
- ^ Kim, Jaegeuk (5 de octubre de 2012). "[PATCH 13/16] f2fs: agregar funcionalidades xattr y acl" . Consultado el 11 de julio de 2017 .
- ^ "v2.5.3 registro de confirmación de git" . 2002-02-05 . Consultado el 11 de julio de 2017 .
- ^ "Notas de la versión de Red Hat Enterprise Linux AS 3 (edición x86)" . Red Hat . 2003. Archivado desde el original el 21 de diciembre de 2015 . Consultado el 11 de julio de 2017 .
La funcionalidad EA (atributos extendidos) y ACL (listas de control de acceso) ahora está disponible para los sistemas de archivos ext3. Además, la funcionalidad ACL está disponible para NFS.
- ^ "Directrices para atributos ampliados" . 2013-05-18 . Consultado el 11 de julio de 2017 .
- ^ "linux / include / uapi / linux / limits.h" . 2012-10-13 . Consultado el 11 de julio de 2017 .
- ^ - Manual del programador de Linux - Descripción general, convenciones y miscelánea
- ^ "Comandos para manipular atributos extendidos del sistema de archivos" . GNU Savannah . Consultado el 11 de julio de 2017 .
- ^ - Manual de llamadas al sistema de Darwin y macOS
- ^ - Manual de llamadas al sistema de Darwin y macOS
- ^ - Manual de llamadas al sistema de Darwin y macOS
- ^ - Manual de llamadas al sistema de Darwin y macOS
- ^ - Manual de comandos generales de Darwin y macOS
- ^ "Notas de lanzamiento de servicios de lanzamiento" . developer.apple.com .
- ^ Dale Rahn (3 de julio de 2005). "Registro de CVS para src / sys / ufs / ufs / Attic / extattr.h" .
- ^ a b Ansioso, Bob (28/10/2000). "Implementación de atributos extendidos en el sistema de archivos FAT" . Consultado el 11 de julio de 2017 .
- ^ - Manual de referencia de estándares, entornos y macros de Solaris 10
- ^ Hammons, Jack (15 de junio de 2016). "Soporte del sistema de archivos WSL" . MSDN . Consultado el 11 de julio de 2017 .
- ^ "Descripciones NTFS 1.2.1" . TotalCmd.net . Consultado el 16 de abril de 2018 .
- ^ "QuickSearch eXtended" . TotalCmd.net . Consultado el 16 de abril de 2018 .
- ^ "Atributos extendidos" . Tuxera .