# HFS+

HFS Plus o HFS+ (también conocido como Mac OS Extended o HFS Extended) es un sistema de archivos desarrollado por Apple Inc. para reemplazar al sistema anterior, el HFS. También es el formato usado por un iPod formateado desde una computadora Mac. HFS Plus también es conocido como HFS Extended y Mac OS Extended. Durante el desarrollo, Apple se refirió a él con el nombre clave Sequoia.
HFS Plus es una versión mejorada de HFS, soportando archivos mucho más grandes (bloques direccionables de 32 bits en vez de 16) y usando codificación Unicode (en vez de Mac OS Roman) para el nombre de los archivos, lo que además permitió nombres de archivo de hasta 255 caracteres.
HFS Plus permite nombres de fichero de hasta 255 caracteres de longitud UTF-16, y archivos n-bifurcados similares a NTFS, aunque casi ningún software se aprovecha de bifurcaciones con excepción de la bifurcación de los datos y de la bifurcación del recurso. HFS Plus también utiliza una tabla de asignación de 32 bits, en lugar de los 16 bits de HFS. Ésta era una limitación seria de HFS, significando que ningún disco podría direccionar más de 65.536 bloques de la asignación sobre HFS.
Cuando los discos eran pequeños esto no suponía problema, pero cuando el tamaño de los discos comenzó a acercarse a la marca de 1 GB, la cantidad de espacio mínima que requería cualquier archivo (un solo bloque de la asignación) llegó a ser excesivamente grande, perdiendo cantidades significativas de espacio de disco. Por ejemplo, en un disco de 1 GB, el tamaño de bloque de la asignación debajo del HFS es 16 KB, es decir que un archivo de un byte tomaría 16 KB de espacio de disco. Al igual que HFS, HFS Plus emplea una estructura Árbol-B* para almacenar la mayoría de los metadatos del volumen.

## Historia
### Inicios

Con el nombre en código Sequoia durante su desarrollo, HFS+ se introdujo con el lanzamiento de Mac OS 8.1 el 19 de enero de 1998. Sin embargo, su primer aspecto como sistema de archivos estaba en las betas nunca lanzadas del OS de Copland.

### Mac OS X 10.2

Con el lanzamiento de la actualización 10.2.2 el 11 de noviembre de 2002, Apple agregó características que metían en diario opcionales al más de HFS para la confiabilidad mejorada de los datos. Estas características eran fácilmente accesibles en servidor del OS X del Mac, pero solamente accesibles a través de la línea de comando en el cliente de escritorio estándar. Con el Mac el OS x v10.3, todo el HFS Plus volúmenes en todos los Macs se fijan para ser metidos en diario por el defecto. Dentro del sistema, un HFS más volumen con un diario se identifica como HFSJ. 10.3 también introdujeron otra versión de HFS más HFSX llamado. Los volúmenes de HFSX son casi idénticos a HFS más volúmenes, salvo que nunca son rodeados por la envoltura de HFS que es típica de HFS más volúmenes y apoyan la sensibilidad del caso para los nombres del archivo y de la carpeta. Los volúmenes de HFSX se pueden reconocer por dos entradas en el jefe del volumen, un valor de HX en el campo de la firma y 5 en el campo de la versión.

### Mac OS X 10.4

Con 10.4, Apple agregó la ayuda para los expedientes de datos en línea de la cualidad, algo que había sido una parte de la puesta en práctica del OS X del Mac de HFS Plus desde por lo menos 10.0, pero marcado siempre según lo “reservado para el uso futuro”. Hasta el lanzamiento del servidor 10.4 del OS X del Mac, HFS Plus solamente apoyado los permisos estándares del sistema de ficheros del UNIX, no obstante la ayuda introducida 10.4 para el control de acceso lista-basó la seguridad de archivo, que se diseña para ser totalmente compatible con el sistema del permiso del archivo utilizó por el Microsoft Windows XP y el servidor 2003 de Windows. Mientras que el HFS más formato preve capacidad casi ilimitada, las varias versiones del OS del Mac apoyan solamente un subconjunto de él: El OS del Mac archiva por tamaño máximo del volumen del tamaño del archivo de la carpeta El OS 8 del Mac 32767 (2^15) 2 asegura 2 con una llave TiB OS 9 del Mac 32767 (2^15) 2 TiB 2 TiB OS 2^31 2 TiB 2 TiB de X 10 y 10.1 del Mac OS X del Mac 10.2 2^31 15 TiB 8 TiB OS 2^31 16 TiB 16 TiB de X 10.3 y 10.4 del Mac HFS más 16 ilimitados EiB 16 EiB El número máximo de archivos o de carpetas dentro de una carpeta es limitado más a fondo por el tamaño máximo del volumen dividido por el tamaño de bloque. Más información sobre limitaciones se puede encontrar en la comparación del sistema de ficheros. [corregir] diseño HFS más volúmenes se dividen en los sectores (llamados los bloques lógicos en HFS), de que son generalmente 512 octetos de tamaño. Estos sectores entonces se agrupan juntos en los bloques de la asignación que pueden contener unos o más sectores; el número de los bloques de la asignación depende del tamaño total del volumen. HFS más aplicaciones un valor más grande de tratar bloques de la asignación que HFS, 32 pedacitos más bien que 16 pedacitos; esto significa que puede tener acceso a 4.294.967.296 bloques de la asignación (=232) más bien que a los 65.536 bloques de la asignación (=216) disponibles para HFS.

## Diseño

Los volúmenes de HFS+ están divididos en sectores (bloques lógicos en HFS), de 512 Bytes. Estos sectores están agrupados juntos en un bloque de asignación que contiene uno o más sectores; el número de bloques de asignación depende del tamaño total del volumen. HFS+ usa un valor de dirección para los bloques de asignación mayor que HFS, 32 bit frente a 16 bit de HFS; lo que significa que puede acceder a 232 bloques de asignación. Típicamente un volumen HFS+ está embebido en un Envoltorio HFS (HFS Wrapper), aunque esto es menos relevante. El envoltorio fue diseñado para dos propósitos; permitir a los ordenadores Macintosh HFS+ sin soporte para HFS+, arrancar los volúmenes HFS+ y ayudar a los usuarios a realizar la transición a HFS+. HFS+ arrancaba con un volumen de ficheros de solo lectura llamado Where_have_all_my_files_gone?, que explicaba a los usuarios con versiones del Mac OS sin HFS+, que el volumen requiere un sistema con soporte para HFS+. El volumen origina HFS contiene una firma y un desplazamiento en los volúmenes HFS + embebidos en su cabecera del volumen. Todos los bloques de asignación en el volumen HFS que contienen el volumen embebido son mapeados fuera del archivo de asignación HFS como bloques dañados. Hay nueve estructuras que conforman un volumen típico de HFS+:
* Sectores 0 y 1 del volumen son bloques de arranque. Son idénticos a los bloques de arranque de HFS. Son parte de la envoltura de HFS.
* Sector 2 contiene la cabecera del volumen (Volume Header) equivalente al Master Directory Block del HFS. Esta cabecera almacena una amplia variedad de datos sobre el volumen, por ejemplo el tamaño de los bloques de asignación, una marca de tiempo que indica cuando se creó el volumen o la localización de otras estructuras de volumen, como el Catalog File o el Extent Overflow File. La Cabecera del Volumen está siempre colocada en el mismo lugar.
* El Archivo de Asignación (Allocation File) mantiene un registro de bloques de los asignación que están libres y de los que están en uso. Es similar al Volume Bitmap de HFS, cada bloque de asignación está representado por un bit. Un cero significa que el bloque está libre y un uno que está en uso. La diferencia principal con el Volume Bitmap, es que el Allocation File es almacenado como un archivo normal, no ocupa un lugar especial en el espacio reservado al comienzo del volumen. El Allocation File puede también cambiar de tamaño y no tiene que ser almacenado en un volumen contiguo.
* El Catalog File es un árbol B* que contiene registros para todos los ficheros y directorios almacenados en el volumen. El Catalog File del HFS+ es similar al de HFS, las diferencias más importantes son que los registros son mayores al permitir más campos y que permite que estos campos sean más grandes (por ejemplo permite nombres de archivo de 255 caracteres Unicode). Un registro en el Catalog File del HFS+ tiene un tamaño de 4 KB en Mac Os y 8 KB en Mac Os X frente a los 512 Bytes de HFS. Los campos en HFS+ tienen un tamaño variable que depende del tamaño del dato que almacena, en HFS el tamaño era fijo.
* El Extents Overflow File es otro árbol B* que registra los bloques de asignación que son asignados a cada archivo. Cada registro de archivo en el Catalog File es capaz de registrar ocho extensiones para cada bifurcación del archivo; una vez que se utilizan, las extensiones son registradas en el Extents Overflow File. También se registran los bloques defectuosos como extensiones en el Extents Overflow File. El tamaño por defecto de un registro de extensión en Mac Os es 1 KB y en Mac OS X 4 KB.
* El Archivo de Atributos (Attributes File) es un nuevo árbol B* en HFS+. El Attributes File puede almacenar tres tipos diferentes de registros de 4 KB: registros Inline Data Attribute, registros Fork Data Attribute y registros Extensión Attribute. El primero de ellos almacena pequeños atributos que pueden caber dentro del propio registro. El segundo contiene referencias a un máximo de ocho extensiones que pueden tener atributos. Y el último se utiliza para extender un registro Fork Data Attribute cuando las ocho extensiones están ya en uso.
* El archivo de inicio (Startup File) está diseñado para sistemas que no son Mac OS y que no tienen soporte HFS o HFS+. Es similar al Bloque de Inicio del volumen HFS.
* La Cabecera del Volumen Alternativa (Alternate Volume Header) equivalente al Alternate Master Directory Block de HFS.
* El último sector en el volumen está reservado por Apple para su uso. Se usa durante el proceso de fabricación de los ordenadores.