stringtranslate.com

HFS Plus

HFS Plus o HFS+ (también conocido como Mac OS Extended o HFS Extended ) es un sistema de archivos con registro desarrollado por Apple Inc. Reemplazó al Sistema de archivos jerárquico (HFS) como el sistema de archivos principal de las computadoras Apple con el lanzamiento de Mac OS 8.1 en 1998. HFS+ continuó como el sistema de archivos principal de Mac OS X hasta que fue reemplazado por el Sistema de archivos de Apple (APFS), lanzado con macOS High Sierra en 2017. HFS+ también es uno de los formatos compatibles con el reproductor de música digital iPod .

En comparación con su predecesor HFS , también llamado Mac OS Standard o HFS Standard, HFS Plus admite archivos mucho más grandes (las direcciones de bloque tienen una longitud de 32 bits en lugar de 16 bits) y usa Unicode (en lugar de Mac OS Roman o cualquiera de varios otros conjuntos de caracteres) para nombrar elementos. Al igual que HFS, HFS Plus usa árboles B para almacenar la mayoría de los metadatos de volumen , pero a diferencia de la mayoría de los sistemas de archivos que admiten enlaces duros , HFS Plus admite enlaces duros a directorios. HFS Plus permite nombres de archivo de hasta 255 caracteres de longitud y archivos n-bifurcados similares a NTFS , aunque hasta 2005 casi ningún software de sistema aprovechó otras bifurcaciones que no fueran la bifurcación de datos y la bifurcación de recursos . HFS Plus también usa una tabla de asignación de mapeo de 32 bits completa en lugar de los 16 bits de HFS, lo que mejora el uso del espacio en discos grandes.

Historia

Con nombre en código Sequoia en desarrollo, [5] HFS+ se introdujo con el lanzamiento de Mac OS 8.1 el 19 de enero de 1998. [2]

Con el lanzamiento de la actualización de Mac OS X 10.2.2 el 11 de noviembre de 2002, Apple agregó funciones de registro opcionales a HFS Plus para mejorar la confiabilidad de los datos. Estas funciones eran accesibles a través de la interfaz gráfica de usuario, utilizando la aplicación Disk Utility en Mac OS X Server, pero solo a través de la línea de comandos en el cliente de escritorio estándar. [6]

Con Mac OS X v10.3, todos los volúmenes HFS Plus en todas las Mac se configuraron para que se registraran en el diario de manera predeterminada. Dentro del sistema, un volumen HFS Plus con un registro se identifica como HFSJ .

Mac OS X 10.3 también introdujo otra versión de HFS Plus llamada HFSX . Los volúmenes HFSX son casi idénticos a los volúmenes HFS Plus, excepto que nunca están rodeados por el HFS Wrapper que es típico de los volúmenes HFS Plus y, opcionalmente, admiten la distinción entre mayúsculas y minúsculas para los nombres de archivos y carpetas. Los volúmenes HFSX se pueden reconocer por dos entradas en el encabezado del volumen, un valor de HX en el campo de firma y 5 en el campo de versión. [2]

Mac OS X 10.3 también marcó la adopción por parte de Apple de la descomposición Unicode 3.2, reemplazando la descomposición Unicode 2.1 utilizada anteriormente. Este cambio causó problemas a los desarrolladores que escribían software para Mac OS X. [7]

Mac OS X 10.3 introdujo una serie de técnicas destinadas a evitar la fragmentación de archivos en HFS+. [8]

Con Mac OS X 10.4, Apple agregó soporte para registros de datos de atributos en línea, algo que había sido parte de la implementación de HFS Plus en Mac OS X desde al menos la versión 10.0 , pero siempre marcado como "reservado para uso futuro". [9] Hasta el lanzamiento de Mac OS X Server 10.4 , HFS Plus solo admitía los permisos del sistema de archivos estándar de UNIX ; sin embargo, 10.4 introdujo soporte para la seguridad de archivos basada en listas de control de acceso , que proporciona un mecanismo más rico para definir permisos de archivos y también está diseñado para ser completamente compatible con los modelos de permisos de archivos en otras plataformas como Microsoft Windows XP y Windows Server 2003. [ 10]

En Mac OS X Leopard 10.5, se agregó la vinculación fija de directorios como parte fundamental de Time Machine.

En Mac OS X Snow Leopard 10.6, se agregó la compresión HFS+ usando Deflate (Zlib). En código abierto y en otras áreas, esto se conoce como AppleFSCompression o decmpfs. Los datos comprimidos se pueden almacenar en un atributo extendido o en la bifurcación de recursos. Cuando se usan API que no son de Apple, AppleFSCompression no siempre es completamente transparente. [11] OS X 10.9 introdujo dos nuevos algoritmos: LZVN (libFastCompression) y LZFSE .

En Mac OS X Lion 10.7, se agregó al sistema operativo el cifrado de volúmenes lógicos (conocido como FileVault 2 ). Esta incorporación al sistema operativo no modificó en ningún modo la estructura lógica del sistema de archivos. El administrador de volúmenes lógicos de Apple se conoce como Core Storage y su cifrado a nivel de volumen se puede aplicar a sistemas de archivos distintos de HFS Plus. Con el hardware adecuado, tanto el cifrado como el descifrado deberían ser transparentes.

Diseño

Los volúmenes HFS Plus se dividen en sectores (llamados bloques lógicos en HFS), que suelen tener un tamaño de 512 bytes. Estos sectores se agrupan en bloques de asignación que pueden contener uno o más sectores; la cantidad de bloques de asignación depende del tamaño total del volumen. HFS Plus utiliza un valor mayor para direccionar los bloques de asignación que HFS, 32 bits en lugar de 16 bits; esto significa que puede acceder a 4.294.967.296 (= 2 32 ) bloques de asignación en lugar de los 65.536 (= 2 16 ) bloques de asignación disponibles para HFS. [2] Cuando los discos eran pequeños, esto tenía poca importancia, pero a medida que se disponía de unidades de mayor capacidad, significó que la cantidad mínima de espacio que cualquier archivo podía ocupar (un solo bloque de asignación) se volvió excesivamente grande, desperdiciando cantidades significativas de espacio. Por ejemplo, en un disco de 1 GB, el tamaño del bloque de asignación en HFS es de 16 KB, por lo que incluso un archivo de 1 byte ocuparía 16 KB de espacio en disco. Como resultado, el sistema HFS Plus mejora enormemente la utilización del espacio en discos más grandes.

Los nombres de archivos y carpetas en HFS Plus también están codificados en UTF-16 [12] y normalizados a una forma casi igual a la Forma de Normalización Unicode D (NFD) [13] (lo que significa que los caracteres precompuestos como "å" se descomponen en el nombre de archivo HFS+ y, por lo tanto, cuentan como dos unidades de código [14] y UTF-16 implica que los caracteres de fuera del Plano Multilingüe Básico también cuentan como dos unidades de código en un nombre de archivo HFS+). HFS Plus permite nombres de archivo de hasta 255 unidades de código UTF-16 de longitud.

Anteriormente, los volúmenes HFS Plus se incrustaban dentro de un sistema de archivos estándar HFS. Esto se eliminó gradualmente con la transición de Tiger a las Mac Intel, donde el sistema de archivos HFS Plus no estaba incrustado dentro de un contenedor. El contenedor había sido diseñado para dos propósitos; permitía a las computadoras Macintosh sin soporte HFS Plus en su ROM iniciar volúmenes HFS Plus y también fue diseñado para ayudar a los usuarios a realizar la transición a HFS Plus al incluir un volumen HFS mínimo con un archivo de solo lectura llamado Where_have_all_my_files_gone? , explicando a los usuarios con versiones de Mac OS 8.0 y anteriores sin HFS Plus, que el volumen requiere un sistema con soporte HFS Plus. El volumen HFS original contiene una firma y un desplazamiento al volumen HFS Plus incrustado dentro de su encabezado de volumen. Todos los bloques de asignación en el volumen HFS que contienen el volumen incrustado se asignan fuera del archivo de asignación HFS como bloques defectuosos . [2]

Entre los sistemas de archivos utilizados para sistemas Unix, HFS Plus no admite archivos dispersos .

Hay nueve estructuras que componen un volumen HFS Plus típico: [2]

  1. Los sectores 0 y 1 del volumen son bloques de arranque HFS . Son idénticos a los bloques de arranque de un volumen HFS. Forman parte del contenedor HFS. [15]
  2. El sector 2 contiene el encabezado de volumen , que es equivalente al bloque de directorio maestro en un volumen HFS. El encabezado de volumen almacena una amplia variedad de datos sobre el volumen en sí, por ejemplo, el tamaño de los bloques de asignación, una marca de tiempo que indica cuándo se creó el volumen o la ubicación de otras estructuras de volumen, como el archivo de catálogo o el archivo de desbordamiento de extensión. El encabezado de volumen siempre se encuentra en el mismo lugar.
  3. El archivo de asignación, que lleva un registro de los bloques de asignación que están libres y los que están en uso, es similar al mapa de bits de volumen de HFS, en el que cada bloque de asignación está representado por un bit. Un cero significa que el bloque está libre y un uno significa que el bloque está en uso. La principal diferencia con el mapa de bits de volumen de HFS es que el archivo de asignación se almacena como un archivo normal, no ocupa un espacio reservado especial cerca del comienzo del volumen. El archivo de asignación también puede cambiar de tamaño y no tiene que almacenarse de forma contigua dentro de un volumen.
  4. El archivo de catálogo es un árbol B que contiene registros de todos los archivos y directorios almacenados en el volumen. El archivo de catálogo HFS Plus es muy similar al archivo de catálogo HFS , las principales diferencias son que los registros son más grandes para permitir más campos y para permitir que esos campos sean más grandes (por ejemplo, para permitir los nombres de archivo Unicode más largos de 255 caracteres en HFS Plus). Un registro en el archivo de catálogo HFS tiene un tamaño de 512 bytes; un registro en el archivo de catálogo HFS Plus tiene 4 KB en el Mac OS clásico y 8 KB en macOS . Los campos en HFS son de tamaño fijo, mientras que en HFS Plus el tamaño puede variar según el tamaño real de los datos que almacenan.
  5. El archivo de desbordamiento de extensiones es otro árbol B que registra los bloques de asignación que se asignan a cada archivo como extensiones. Cada registro de archivo en el archivo de catálogo puede registrar ocho extensiones para cada bifurcación de un archivo; una vez que se utilizan, se registran extensiones adicionales en el archivo de desbordamiento de extensiones. Los bloques defectuosos también se registran como extensiones en el archivo de desbordamiento de extensiones. El tamaño predeterminado de un registro de extensión en el sistema operativo Mac clásico es de 1 KB y de 4 KB en macOS.
  6. El archivo de atributos es un nuevo árbol B en HFS Plus que no tiene una estructura correspondiente en HFS. El archivo de atributos puede almacenar tres tipos diferentes de registros de 4 KB: registros de atributos de datos en línea , registros de atributos de datos de bifurcación y registros de atributos de extensión . Los registros de atributos de datos en línea almacenan atributos pequeños que pueden caber dentro del propio registro. Los registros de atributos de datos de bifurcación contienen referencias a un máximo de ocho extensiones que pueden contener atributos más grandes. Los atributos de extensión se utilizan para ampliar un registro de atributos de datos de bifurcación cuando sus ocho registros de extensión ya están en uso.
  7. El archivo de inicio está diseñado para sistemas que no son Mac OS y que no son compatibles con HFS o HFS Plus. Es similar a los bloques de arranque de un volumen HFS.
  8. El penúltimo sector contiene el encabezado de volumen alternativo , que es equivalente al bloque de directorio maestro alternativo de HFS. Este es el penúltimo sector del disco, no del volumen; si el disco es más grande que el volumen, el AVH estará fuera del rango del sistema de archivos.
  9. El último sector del volumen está reservado para Apple y se utiliza durante el proceso de fabricación de ordenadores. [2]

Críticas

HFS Plus carece de varias características consideradas básicas de los sistemas de archivos modernos como ZFS y NTFS . [16] Las sumas de comprobación de datos son la característica faltante que se cita con mayor frecuencia. [17]

Además de la suma de comprobación, las características de los sistemas de archivos modernos de las que HFS+ carece incluyen:

HFS Plus no fue diseñado para sistemas tipo Unix , por lo que características como los permisos del sistema de archivos y los enlaces duros tuvieron que ser adaptados cuando Apple pasó a Mac OS X. [17]

Otros sistemas operativos

Linux

El núcleo de Linux incluye el módulo hfsplus [19] para montar sistemas de archivos HFS+ en modo lectura-escritura. Los archivos fsck y mkfs de HFS+ se han adaptado a Linux y forman parte del paquete hfsprogs. [20]

En 2009, se diagnosticó que estos controladores estaban dañando las unidades HFS+ con una capacidad superior a 2 TB. [21] En consecuencia, las distribuciones de Linux como Debian y Ubuntu dejaron de permitir el montaje de unidades HFS+ o particiones mayores a 2 TB. [22] A febrero de 2011 , se está trabajando para levantar esta restricción. [23] [ necesita actualización ]

En el controlador HFS+ actual de Linux, el registro en diario debe estar deshabilitado para escribir datos de forma segura en una partición HFS+. Siempre que la partición no esté siendo utilizada por el software Time Machine de Apple , el registro en diario se puede deshabilitar en macOS: [24] Al utilizar la Utilidad de Discos en OS X Yosemite, el usuario puede mantener presionada la tecla Alt/Opción y hacer clic en "Deshabilitar registro en diario" en el menú Archivo, después de haber seleccionado primero una partición montada.

Una partición HFS+ con registro habilitado se puede montar a la fuerza con acceso de escritura en Linux, pero esto no es compatible y no es recomendable. [24] [25]

En 2011, la Linux Foundation aceptó un proyecto de Google Summer of Code para implementar compatibilidad con escritura en HFS+ con registro [26], pero no se completó en ese momento y todavía es un trabajo en progreso. Los avances y las mejoras del controlador HFS+, incluidas algunas actualizaciones de compatibilidad con registro, se publican en la lista de correo linux-fsdevel [27] de vez en cuando.

A partir de julio de 2011 , Paragon Software Group proporcionó controladores de kernel que permiten acceso completo de lectura y escritura a volúmenes registrados en HFS+. [28] El producto es una implementación propietaria de HFS+ basada en la biblioteca UFSD propietaria de Paragon. Existen ediciones gratuitas y pagas del controlador, e incluyen una utilidad para verificar y reparar volúmenes HFS+. Según la documentación en línea (versión gratuita [29] o edición paga [30] ), tanto la edición gratuita como la paga actualmente admiten kernels Linux desde 2.6.36 hasta 4.12.x. Ubuntu , Debian , Fedora Linux , Rocky Linux , Red Hat Enterprise Linux , OpenSUSE y CentOS son las únicas distribuciones Linux oficialmente compatibles. [31]

Ventanas

A partir de mayo de 2012, Apple ha lanzado únicamente controladores HFS+ de solo lectura para Windows XP, Windows Vista y Windows 7 como parte del software Boot Camp en Mac OS X 10.6 . [32] Esto significa que los usuarios de estos sistemas pueden leer datos en la unidad HFS+, pero no escribir en ellos. Microsoft ha creado un controlador HFS+ para Xbox 360 principalmente con el propósito de leer iPods formateados con HFS+. [ cita requerida ]

Se puede utilizar un software gratuito y de código abierto, jHFSplus, basado en HFSExplorer y jpfm, para montar particiones hfs/hfs+ como carpetas virtuales de solo lectura. [33]

Existe un complemento gratuito para Total Commander que puede leer, entre otros, sistemas de archivos HFS y HFS+. [34]

DiskInternals Linux Reader se puede utilizar para extraer/guardar carpetas/archivos de discos duros/particiones HFS y HFS+. [35]

También está disponible un producto comercial, MacDrive, para montar unidades HFS y HFS+, discos ópticos y otros medios en el Explorador de Windows, y permite tanto leer como escribir en el volumen, así como reparar y formatear discos Mac. [36]

HFS+ de Paragon es un producto comercial para Windows que permite la lectura y escritura completas y la administración de discos desde todas las versiones de Windows, desde Windows XP hasta Windows Server 2008. [37]

Multiplataforma

Una alternativa libre ( GPL ) es HFSExplorer escrito por Erik Larsson. [38] HFSExplorer es una aplicación Java para ver y extraer archivos de un volumen HFS+ (Mac OS Extended) o un volumen HFSX (Mac OS Extended, sensible a mayúsculas y minúsculas). El volumen puede estar ubicado en un disco físico, en varios formatos de imagen de disco de Apple y de imagen de disco dispersa , o en un volcado de sistema de archivos sin procesar. Sin embargo, HFSExplorer es una solución de solo lectura; no puede escribir en volúmenes formateados en HFS.

Véase también

Referencias

  1. ^ "OS X: límites de volumen y archivos del formato extendido de Mac OS (HFS Plus)". Support.apple.com. 2008-07-29. Archivado desde el original el 2010-07-30 . Consultado el 2010-07-05 .
  2. ^ abcdefg «Nota técnica TN1150: formato de volumen HFS Plus». Apple Developer Connection . 5 de marzo de 2004. Archivado desde el original el 22 de junio de 2013. Consultado el 28 de marzo de 2007 .
  3. ^ "Fechas de HFS Plus". Formato de volumen de HFS Plus . Apple Inc. 5 de marzo de 2004. Nota técnica TN1150.
  4. ^ "10.6: Comprimir archivos con compresión HFS+ – Consejos para Mac OS X". Archivado desde el original el 1 de abril de 2012.
  5. ^ Gregg Williams (19 de mayo de 2000). "Strategy Mosaic: Sequoia: almacenamiento masivo para el futuro y el futuro". Archivado desde el original el 19 de mayo de 2000.
  6. ^ John Gruber (11 de noviembre de 2002). "Cuervo". DaringFireball.net . Archivado desde el original el 9 de abril de 2007. Consultado el 28 de marzo de 2007 .
  7. ^ "Re: git en MacOSX y archivos con nombres de archivo utf-8 descompuestos". KernelTrap. 7 de mayo de 2010. Archivado desde el original el 15 de marzo de 2011. Consultado el 5 de julio de 2010 .
  8. ^ "Fragmentación en volúmenes HFS Plus". osxbook.com . Archivado desde el original el 3 de enero de 2020 . Consultado el 10 de enero de 2020 .
  9. ^ John Siracusa (28 de abril de 2005). «OS X 10.4 Tiger: Metadata revisited». Ars Technica . Archivado desde el original el 5 de abril de 2007. Consultado el 28 de marzo de 2007 .
  10. ^ "Apple – OS X Server – Servicios de Windows". Apple.com . Archivado desde el original el 2007-12-31 . Consultado el 2007-11-12 .
  11. ^ iohead LLC (2011). «Guía del usuario y referencia de fileXray» (PDF) . iohead LLC. pág. 31. Consultado el 14 de julio de 2020 .
  12. ^ "¿Qué es el formato HFS+ de Mac OS?". AppleXsoft . Archivado desde el original el 24 de agosto de 2018 . Consultado el 6 de noviembre de 2018 .
  13. ^ "Preguntas y respuestas técnicas QA1235: Conversión a Unicode precompuesto". Apple Developer Connection . 7 de febrero de 2003. Archivado desde el original el 18 de mayo de 2008. Consultado el 28 de marzo de 2007 .
  14. ^ Existen algunas diferencias menores derivadas del hecho de que el formato HFS Plus se finalizó antes de que Unicode hubiera estandarizado el formato NFD (consulte "Sutilezas de Unicode" Archivado el 22 de junio de 2013 en Wayback Machine para obtener más información)
  15. ^ "Boot Blocks". Inside Macintosh . Apple Inc. 2 de julio de 1996.
  16. ^ Harris, Robin. «La mayor decepción de la WWDC – ZDNet». ZDNet . Archivado desde el original el 22 de octubre de 2015.
  17. ^ abcdefg John Siracusa (20 de julio de 2011). "Mac OS X 10.7 Lion: la revisión de Ars Technica". Ars Técnica. Archivado desde el original el 22 de diciembre de 2016 . Consultado el 18 de enero de 2017 .
  18. ^ "Mac OS X – ForensicsWiki". forensicswiki.org . Archivado desde el original el 2017-04-10 . Consultado el 2017-04-09 .
  19. ^ "kernel/git/torvalds/linux.git – Árbol de fuentes del kernel de Linux". Archivado desde el original el 9 de julio de 2012.
  20. ^ "Debian – Detalles del paquete hfsprogs en sid". Archivado desde el original el 3 de julio de 2009.
  21. ^ "kernel/git/torvalds/linux.git – Árbol de código fuente del kernel de Linux". git.kernel.org . Archivado desde el original el 2012-07-11 . Consultado el 2016-10-14 .
  22. ^ "#550010 – hfsplus corrompe sistemas de archivos >2TB – Registros de informes de errores de Debian". Archivado desde el original el 8 de enero de 2016. Consultado el 17 de febrero de 2011 .
  23. ^ "[PARCHE 2/3] hfsplus: eliminamos el límite de tamaño de 2 TB — Desarrollo de sistemas de archivos Linux". Archivado desde el original el 18 de julio de 2011.
  24. ^ ab "¿Cómo montar una partición HFS en Ubuntu como lectura/escritura?". Archivado desde el original el 2011-11-30.
  25. ^ Banks, Wyatt (31 de julio de 2007), Sistema de archivos HFSPlus de Macintosh para Linux, archivado desde el original el 22 de julio de 2012
  26. ^ "Implementar HFSPlus Journal en Linux". Archivado desde el original el 5 de abril de 2011.
  27. ^ "'hfsplus' en linux-fsdevel – MARC". Archivado desde el original el 8 de enero de 2016. Consultado el 21 de septiembre de 2012 .
  28. ^ "Descripción general: Paragon NTFS&HFS+ para Linux 9.5 Express". Archivado desde el original el 6 de agosto de 2011. Consultado el 29 de junio de 2012 .
  29. ^ "Características completas: Paragon NTFS/HFS+ para Linux 9.5 Express". Archivado desde el original el 3 de septiembre de 2012. Consultado el 21 de septiembre de 2012 .
  30. ^ "Características completas: Paragon NTFS&HFS+ para Linux 9.5 Professional". Archivado desde el original el 2012-12-02 . Consultado el 2012-09-21 .
  31. ^ "Preguntas frecuentes y glosario: Paragon NTFS&HFS+ para Linux 9.5 Professional". Archivado desde el original el 7 de junio de 2016. Consultado el 30 de junio de 2016 .
  32. ^ "Apple – Soporte – Descargas – Bootcamp". apple.com . Archivado desde el original el 19 de octubre de 2016. Consultado el 18 de octubre de 2016 .
  33. ^ "jHFSplus". Shashank Tulsyan. 29 de junio de 2011. Archivado desde el original el 9 de julio de 2011.
  34. ^ "DiskInternals Reader para Total Commander". DiskInternals. 16 de marzo de 2011. Archivado desde el original el 16 de noviembre de 2011. Consultado el 23 de noviembre de 2011 .
  35. ^ "DiskInternals Linux Reader". DiskInternals. Archivado desde el original el 6 de abril de 2012. Consultado el 18 de octubre de 2016 .
  36. ^ "MacDrive 9 Standard". Mediafour. 19 de septiembre de 2013. Archivado desde el original el 21 de septiembre de 2013. Consultado el 19 de septiembre de 2013 .
  37. ^ "Escribir volúmenes HFS+ en Windows – Paragon HFS+ para Windows". Archivado desde el original el 13 de octubre de 2016. Consultado el 14 de octubre de 2016 .
  38. ^ "HFSExplorer". Catacombae . Erik Larsson. 13 de octubre de 2015. Archivado desde el original el 24 de septiembre de 2018. Consultado el 23 de septiembre de 2018 .

Enlaces externos