stringtranslate.com

Sistema de archivos jerárquico (Apple)

El sistema de archivos jerárquico ( HFS ) es un sistema de archivos propietario desarrollado por Apple Inc. para su uso en sistemas informáticos que ejecutan Mac OS . Diseñado originalmente para su uso en disquetes y discos duros , también se puede encontrar en medios de sólo lectura como CD-ROM . HFS también se conoce como Mac OS Standard (o HFS Standard ), mientras que su sucesor, HFS Plus , también se llama Mac OS Extended (o HFS Extended).

Con la introducción de Mac OS X 10.6 , Apple dejó de admitir el formato o la escritura de discos e imágenes HFS , que siguieron siendo compatibles como volúmenes de solo lectura hasta macOS 10.15 . [1] A partir de macOS 10.15, los discos HFS ya no se pueden leer.

Historia

Apple introdujo HFS en septiembre de 1985, específicamente para admitir la primera unidad de disco duro de Apple para Macintosh, reemplazando el Macintosh File System (MFS), el sistema de archivos original que se había introducido más de un año y medio antes con la primera computadora Macintosh . HFS se basó en gran medida en el primer sistema operativo de Apple con un sistema de archivos jerárquico , SOS para el fallido Apple III , que también sirvió de base para los sistemas de archivos jerárquicos en Apple IIe y Apple Lisa . HFS fue desarrollado por Patrick Dirks y Bill Bruffey. Compartía una serie de características de diseño con MFS que no estaban disponibles en otros sistemas de archivos de la época (como FAT de DOS ). Los archivos podían tener múltiples bifurcaciones (normalmente una bifurcación de datos y una de recursos ), lo que permitía que los datos principales del archivo se almacenaran por separado de los recursos, como los iconos, que podrían necesitar ser localizados. Se hacía referencia a los archivos con ID de archivo únicos en lugar de nombres de archivo, y los nombres de archivo podían tener hasta 31 caracteres.

Sin embargo, MFS se había optimizado para usarse en medios muy pequeños y lentos, es decir, disquetes , por lo que se introdujo HFS para superar algunos de los problemas de rendimiento que surgieron con la introducción de medios más grandes, en particular discos duros . La principal preocupación era el tiempo necesario para mostrar el contenido de una carpeta. En MFS, toda la información de la lista de archivos y directorios se almacenaba en un solo archivo, que el sistema tenía que buscar para crear una lista de los archivos almacenados en una carpeta en particular. Esto funcionó bien con un sistema con unos cientos de kilobytes de almacenamiento y quizás cien archivos, pero a medida que los sistemas crecieron hasta alcanzar megabytes y miles de archivos, el rendimiento se degradó rápidamente.

La solución fue reemplazar la estructura de directorios de MFS por una más adecuada para sistemas de archivos más grandes. HFS reemplazó la estructura de tabla plana con el archivo de catálogo que utiliza una estructura de árbol B que se puede buscar muy rápidamente independientemente del tamaño. [2] HFS también rediseñó varias estructuras para poder contener números más grandes, reemplazando los enteros de 16 bits por 32 bits casi universalmente. Curiosamente, uno de los pocos lugares donde no se produjo este "aumento de tamaño" fue el directorio de archivos en sí, lo que limita HFS a un total de 65.535 archivos en cada disco lógico.

Si bien HFS es un formato de sistema de archivos propietario, está bien documentado; Por lo general, existen soluciones disponibles para acceder a discos formateados en HFS desde la mayoría de los sistemas operativos modernos .

Apple introdujo HFS por necesidad con su primera oferta de disco duro de 20 MB para Macintosh en septiembre de 1985, donde se cargaba en la RAM desde un disquete MFS al arrancar utilizando un archivo de parche ("Disco duro 20"). Sin embargo, HFS no se introdujo ampliamente hasta que se incluyó en la ROM de 128 K que debutó con Macintosh Plus en enero de 1986 junto con la unidad de disquete más grande de 800 KB para Macintosh que también usaba HFS. La introducción de HFS fue el primer avance de Apple para dejar atrás un modelo de computadora Macintosh: la Macintosh original de 128K , que carecía de memoria suficiente para cargar el código HFS y fue rápidamente descontinuada.

En 1998, Apple introdujo HFS Plus para abordar la asignación ineficiente de espacio en disco en HFS y agregar otras mejoras. HFS Plus todavía es compatible con las versiones actuales de Mac OS, pero a partir de Mac OS X , no se puede utilizar un volumen HFS para el arranque y, a partir de Mac OS X 10.6 (Snow Leopard), los volúmenes HFS son de solo lectura y no se pueden crear. o actualizado. En macOS Sierra (10.12), las notas de la versión de Apple indican que "el sistema de archivos estándar HFS ya no es compatible". [3] Sin embargo, el soporte estándar HFS de solo lectura continuó funcionando hasta el lanzamiento de macOS 10.15 , [4] finalizando el soporte oficial para el estándar HFS clásico después de 35 años. [5]

Diseño

Un volumen de almacenamiento está inherentemente dividido en bloques lógicos de 512 bytes. El sistema de archivos jerárquico agrupa estos bloques lógicos en bloques de asignación , que pueden contener uno o más bloques lógicos, según el tamaño total del volumen. HFS utiliza un valor de 16 bits para direccionar los bloques de asignación, limitando el número de bloques de asignación a 65.535 (2 16 -1).

Cinco estructuras componen un volumen HFS:

  1. Los bloques lógicos 0 y 1 del volumen son los bloques de arranque , que contienen información de inicio del sistema. [2] Por ejemplo, los nombres de los archivos del Sistema y del Shell (normalmente el Finder ) que se cargan al inicio.
  2. El bloque lógico 2 contiene el bloque de directorio maestro (también conocido como MDB ). Esto define una amplia variedad de datos sobre el volumen en sí, por ejemplo, marcas de fecha y hora de cuando se creó el volumen, la ubicación de otras estructuras de volumen, como el mapa de bits del volumen, o el tamaño de estructuras lógicas, como los bloques de asignación. También hay un duplicado del MDB llamado Bloque de directorio maestro alternativo (también conocido como MDB alternativo ) ubicado en el extremo opuesto del volumen en el penúltimo bloque lógico. Está pensado principalmente para que lo utilicen las utilidades de disco y solo se actualiza cuando el archivo de catálogo o el archivo de desbordamiento de extensiones aumentan de tamaño.
  3. El bloque lógico 3 es el bloque inicial del mapa de bits de volumen , que realiza un seguimiento de qué bloques de asignación están en uso y cuáles están libres. Cada bloque de asignación en el volumen está representado por un bit en el mapa: si el bit está establecido, entonces el bloque está en uso; si está claro, entonces el bloque se puede utilizar libremente. Dado que el mapa de bits de volumen debe tener un bit para representar cada bloque de asignación, su tamaño está determinado por el tamaño del volumen mismo. [2]
  4. El archivo de desbordamiento de extensión es un árbol B que contiene extensiones adicionales que registran qué bloques de asignación se asignan a qué archivos, una vez que se agotan las tres extensiones iniciales del archivo de catálogo. Las versiones posteriores también agregaron la capacidad de que el archivo de desbordamiento de extensión almacene extensiones que registren bloques defectuosos, para evitar que el sistema de archivos intente asignar un bloque defectuoso a un archivo.
  5. El archivo de catálogo es otro árbol B que contiene registros de todos los archivos y directorios almacenados en el volumen. Almacena cuatro tipos de registros. Cada archivo consta de un registro de subproceso de archivo y un registro de archivo, mientras que cada directorio consta de un registro de subproceso de directorio y un registro de directorio. Los archivos y directorios del archivo de catálogo se ubican según su ID de nodo de catálogo único (o CNID ).
    • Un registro de subproceso de archivo almacena solo el nombre del archivo y el CNID de su directorio principal.
    • Un registro de archivo almacena una variedad de metadatos sobre el archivo, incluido su CNID, el tamaño del archivo, tres marcas de tiempo (cuándo se creó el archivo, cuando se modificó por última vez, se realizó la última copia de seguridad), las extensiones del primer archivo de los datos y las bifurcaciones y punteros de recursos. a los primeros registros de extensión de recursos y datos del archivo en el archivo de desbordamiento de extensión. El Registro de archivo también almacena dos campos de 16 bytes que utiliza el Finder para almacenar atributos sobre el archivo, incluidos elementos como su código de creador , código de tipo , la ventana en la que debe aparecer el archivo y su ubicación dentro de la ventana.
    • Un registro de subproceso de directorio almacena solo el nombre del directorio y el CNID de su directorio principal.
    • Un registro de directorio que almacena datos como la cantidad de archivos almacenados dentro del directorio, el CNID del directorio, tres marcas de tiempo (cuándo se creó el directorio, cuando se modificó por última vez, se realizó la última copia de seguridad). Al igual que el Registro de archivo, el Registro de directorio también almacena dos campos de 16 bytes para que los utilice el Finder. Estos almacenan cosas como el ancho y alto y las coordenadas x e y de la ventana utilizada para mostrar el contenido del directorio, el modo de visualización (vista de iconos, vista de lista, etc.) de la ventana y la posición del desplazamiento de la ventana. bar.

Limitaciones

El archivo de catálogo, que almacena todos los registros de archivos y directorios en una única estructura de datos, genera problemas de rendimiento cuando el sistema permite la multitarea , ya que solo un programa puede escribir en esta estructura a la vez, lo que significa que muchos programas pueden estar esperando en cola. debido a que un programa "acapara" el sistema. [6] También es un problema grave de confiabilidad, ya que un daño a este archivo puede destruir todo el sistema de archivos. Esto contrasta con otros sistemas de archivos que almacenan registros de archivos y directorios en estructuras separadas (como el sistema de archivos FAT de DOS o el sistema de archivos Unix ), donde tener una estructura distribuida en el disco significa que dañar un único directorio generalmente no es fatal y los datos Es posible que se reconstruya con los datos contenidos en las partes no dañadas.

Además, el límite de 65.535 bloques de asignación dio como resultado que los archivos tuvieran un tamaño "mínimo" equivalente a 1/65.535 del tamaño del disco. Por lo tanto, cualquier volumen determinado, sin importar su tamaño, sólo podría almacenar un máximo de 65.535 archivos. Además, a cualquier archivo se le asignaría más espacio del que realmente necesita, hasta el tamaño del bloque de asignación. Cuando los discos eran pequeños, esto tenía pocas consecuencias, porque el tamaño del bloque de asignación individual era trivial, pero a medida que los discos comenzaron a acercarse a la marca de 1 GB, la cantidad más pequeña de espacio que podía ocupar cualquier archivo (un solo bloque de asignación) se volvió excesivamente grande. , desperdiciando cantidades significativas de espacio en disco. 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. Esta situación era un problema menor para los usuarios que tenían archivos grandes (como imágenes, bases de datos o audio) porque estos archivos más grandes desperdiciaban menos espacio como porcentaje de su tamaño de archivo. Los usuarios con muchos archivos pequeños, por otro lado, podrían perder una gran cantidad de espacio debido al gran tamaño del bloque de asignación. Esto hizo que particionar discos en volúmenes lógicos más pequeños fuera muy atractivo para los usuarios de Mac, porque los documentos pequeños almacenados en un volumen más pequeño ocuparían mucho menos espacio que si residieran en una partición grande. El mismo problema existía en el sistema de archivos FAT16.

HFS guarda las mayúsculas y minúsculas de un archivo que se crea o se cambia de nombre, pero en su funcionamiento no distingue entre mayúsculas y minúsculas.

Ver también

Referencias

  1. ^ Gagne, Ken (31 de agosto de 2009). "Pérdida de datos heredados en Snow Leopard". Mundo de la informática . Consultado el 7 de septiembre de 2009 .
  2. ^ abc "La introducción a HFS" (PDF) . MWJ . GCSF, incorporada. 2003-05-25. Archivado desde el original (PDF) el 31 de diciembre de 2019.
  3. ^ "Novedades de macOS: macOS Sierra 10.12". Manzana . Consultado el 25 de enero de 2017 .
  4. ^ "Cómo montar unidades HFS Classic en MacOS Catalina y versiones posteriores". Mateo Hughes. 25 de julio de 2020 . Consultado el 2 de marzo de 2022 .
  5. ^ "Acerca del contenido de seguridad de la Actualización de seguridad 2021-005 Mojave". Soporte de Apple . 2022-06-21 . Consultado el 18 de mayo de 2023 .
  6. ^ Giampaolo, Domingo (1999). Diseño práctico de sistemas de archivos con Be File System (PDF) . Morgan Kaufman. pag. 37.ISBN 1-55860-497-9. Archivado desde el original (PDF) el 13 de febrero de 2017 . Consultado el 13 de julio de 2006 .

enlaces externos