in

GeekyGeeky Thug lifeThug life No me gustaNo me gusta

Viaje por la historia de los sistemas de archivos

Normalmente nos fijamos en los sistemas operativos como un todo para valorarlos y otorgarles nuestra confianza o descartarlos como opción válida. Si acaso, disertamos sobre los núcleos y sus posibilidades, pero nunca nos acordamos de una parte importantísima que los forman y que son los responsables de buena parte del éxito o el fracaso de un sistema operativo: los sistemas de archivos, esos grandes desconocidos. Vamos a darle un repaso histórico a gran parte de los que existen para comprobar hasta dónde llegan y qué nos pueden ofrecer.

La palabra kernel nos suena a todos. No hay que ser un experto informático para reconocer la importancia del núcleo dentro de un sistema operativo. Sin embargo, sí hay que poseer cierta cultura computacional para conocer el significado de los sistemas de archivos utilizados por los diversos sistemas operativos y su función en esta historia. Si el núcleo representa el motor, los sistemas de archivos podríamos considerarlos el “chasis” sobre el que se maneja este vehículo informático. Es una parte tan vital como el kernel y de su elección depende la eficacia y calidad de los sistemas operativos sobre los que se integran. Hagamos un viaje a través de estos desconocidos, que sólo nos interesan cuando nos falla un formateo o cuando necesitamos realizar ciertas operaciones y nos damos cuenta de que algunos no las permiten.

Un sistema de archivos es un conjunto de datos abstractos, concretamente algoritmos y estructuras lógicas, utilizados para poder acceder a la información que tenemos en el disco y que son implementados para el almacenamiento, la organización jerárquica, la manipulación, el acceso, el direccionamiento y la recuperación de datos. Cada uno de los sistemas operativos crea estas estructuras y algoritmos de diferente manera independientemente del hardware. El desempeño de nuestro disco duro, la fiabilidad, seguridad, capacidad de expansión y la compatibilidad, estará en función de estas estructuras lógicas. Por tanto, dependiendo del tipo de sistemas de archivos que utilice nuestro sistema operativo elegido, así será su eficacia, seguridad y eficiencia.

El sistema de archivos soportados por cada sistema operativo

FAT

El más famoso y sencillo de todos los conocidos. fue creado por Bill Gates y Marc McDonald en 1977 con el objeto de manejar discos en BASIC. El sistema de archivos FAT se caracteriza por la tabla de asignación de archivos (FAT), que en realidad es una tabla en la que reside la parte "superior" del volumen. Para proteger el volumen, se conservan dos copias de la FAT por si una de ellas resulta dañada. Además, las tablas de FAT y el directorio raíz deben almacenarse en una ubicación fija para que se puedan encontrar correctamente los archivos de inicio del sistema. Un disco formateado con FAT se asigna en clústeres, cuyo tamaño está determinado por el tamaño del volumen. Cuando se crea un archivo, se crea una entrada en el directorio y se establece el primer número de clúster que contiene datos. Esta entrada de la tabla FAT indica que éste es el último clúster del archivo o señala al clúster siguiente. No hay ninguna organización en cuanto a la estructura de directorios de FAT y se asigna a los archivos la primera ubicación libre de la unidad. Además, FAT sólo es compatible con los atributos de archivo de sólo lectura, oculto, sistema y modificado. Utilizado en DOS y Windows.

FAT 12

Versión de 12 bits (1977). Formaba parte del antológico sistema operativo DOS y era el que se utilizaba para formatear los ya vetustos disquettes de1,44 M, que las últimas generaciones ni conocen. Ahora mismo nos parece limitado y anticuado, pero en la época de su desarrollo, sirvió para consolidar toda una generación de ordenadores basados en DOS y lanzó los primeros PC al mercado. Sólo podía manejar archivos de un tamaño máximo de 32 MB. Hoy día nos parece ridículo, pero hace 30 años alcanzar semejante cantidad de información nos parecía un disparate. En aquellos entonces las memorias RAM se contaban por Kilobytes, no por “megas” y este sistema de archivos era mas que suficiente para colmar las expectativas de los más entusiastas.

FAT 16

Versión de 16 bits (1988). Diez años más tarde, el tímido avance de los primeros ordenadores, se convirtió en un constante aumento de las prestaciones, lo que dio lugar a una mejora del anterior FAT. Los sistemas DOS llegaron a su máximo esplendor y ya se podían manejar archivos de hasta 2 GB, que por aquellos entonces, nos seguía pareciendo una salvajada. Exactamente fue la versión MS-DOS 4.0 la que consolidó esta mejora del inicial sistema de archivos FAT.

FAT 32

Versión de 32 bits (1996). Fue la respuesta para superar el límite de tamaño de FAT16 al mismo tiempo que se mantenía la compatibilidad con MS-DOS en modo real. Microsoft decidió implementar una nueva generación de FAT utilizando direcciones de cluster de 32 bits. Apareció por primera vez en el Windows 95 OSR2 y se extendió al Windows 98, al Windows NT y al Windows 2000.  Podía manejar archivos de hasta 4 GB, un salto poco interesante desde el punto de vista cuantitativo con respecto a su antecesor y que ya nos daba una pista de las necesidades futuras de los usuarios con respecto a los archivos a manejar.

Tabla sobre las características de FAT

NTFS

Microsoft  desarrolló un nuevo sistema de archivos que dejaba atrás todo lo conocido con sus famosos FAT. Le llamó NTFS (NT File System) porque en un principio fue implementado para el Windows NT, pero finalmente terminó por acomodarse a todas las versiones posteriores de XP o 2000. Se pretendió diseñar un sistema de archivos más seguro, más fiable y con posibilidad de recuperación de archivos dañados. NTFS utiliza una tabla de ficheros maestra (MFT) para localizar todos los ficheros dentro de un volumen NTFS. Todos los datos críticos son duplicados para permitir recuperación en caso de errores, asegurándose de que la perdida en un sector no significará la perdida de toda la partición. También puede recuperar datos de un sector dañado y asegurar de que ese sector no sea usado de nuevo.

Además, el tamaño máximo de archivos manejado por esta última apuesta de Microsoft, aunque depende del tamaño del volumen, supera ampliamente lo ofrecido por FAT en cualquiera de sus versiones. Su límite teórico se fija en 16 EB, mas que suficiente para manipular archivos hoy día. Sin embargo, NTFS no es compatible hacía atrás con FAT, además, necesita ser desfragmentado cada cierto tiempo porque conforme se va usando, se van empobreciendo el rendimiento del sistema operativo. Hoy por hoy, es el sistema estrella en la mayoría de ordenadores del mundo.

A muchos les sonará de cuando se enfrentan al formateo (inevitable) de Windows

HPFS

En 1989 HPFS (High Performance File System) fue desarrollado también por Microsoft y creado específicamente para el sistema operativo OS/2 con el objetivo de mejorar las limitaciones del sistema de archivos FAT. Fue escrito por Gordon Letwin y otros empleados de Microsoft, y agregado a OS/2 versión 1.2, en esa época OS/2 era todavía un desarrollo conjunto entre Microsoft e IBM. Se caracterizaba por permitir nombres largos, metadatos e información de seguridad, así como de autocomprobación e información estructural. Otra de sus características es que, aunque poseía tabla de archivos (como FAT), ésta se encontraba posicionada físicamente en el centro de la partición, de tal manera que redundaba en menores tiempos de acceso a la hora de leerla/escribirla. Manejaba un tamaño máximo de archivos de 2 GB que, para aquellos entonces, superaba ampliamente las expectativas.

EL viejo sistema operativo OS/2 utilizaba HPFS, desarrollado también por Microsoft

MFS

En los albores de la informática, Apple ya se distinguió de los demás aportando en 1984 su propio sistema de archivos, llamado MFS (Macintosh File System). Creado para almacenar archivos en disquetes de 400K y para dar respuesta a las necesidades de aquellos entonces. MFS era notable tanto por introducir los fork de recurso para permitir el almacenamiento de datos estructurados como por almacenar metadatos necesitados para el funcionamiento de la interfaz gráfica de usuario de Mac OS. A MFS se le denomina como sistema de archivo plano porque no admite carpetas. Apenas podía manejar archivos de 256 MB. Todo un dinosaurio de la prehistoria informática.

HFS

Apple introdujo el HFS (Hierarquical File System) como reemplazo para MFS en  1985. En Mac OS 7.6.1, Apple dejó de prestar servicio de escritura en volúmenes MFS, y en Mac OS 8 fue quitado en conjunto la compatibilidad con dicho tipo de volumen. HFS se introdujo para superar algunos de los problemas de rendimiento que llegaron con la introducción de los grandes medios de almacenamiento como los discos duros. En HFS reemplazaron la estructura de directorios de MFS por una más adecuada a los sistemas de ficheros más grandes. HFS sustituyó la estructura de tabla plana por el archivo de catálogo (Catalog File) que utiliza una estructura de árbol B* que puede realizar búsquedas con gran rapidez, independientemente de su tamaño.

En 1998, Apple introdujo HFS+ para abordar la ineficacia en la asignación de espacio en disco en HFS y añadir otras mejoras. HFS es aún soportado por las versiones actuales de Mac OS, pero a partir de Mac OS X un volumen HFS no puede utilizarse para arrancar.

Los Mac de Apple no podían quedarse mirando, así que crearon sus propios sistemas

EXT

El mundo Linux aportó su manera de ver las cosas en los sistemas de archivos que proporcionaron a la informática unas enormes posibilidades en cuanto a eficiencia y optimización de recursos.  EXT (extended file system) fue el primer sistema de archivos creado específicamente para el sistema operativo Linux. Diseñado por Rémy Card para vencer las limitaciones del sistema de archivos MINIX aportó grandes mejoras a la informática de entonces. Fue reemplazado tanto por ext2 como xiafs, entre los cuales había una competencia, que finalmente ganó ext2, debido a su viabilidad a largo plazo. Las variantes del sistema EXT tienen muchísima más resistencia a la fragmentación que sus oponentes en Windows. No son necesarios pesados y largos procesos de desfragmentación como sucede en NTFS y sus rendimientos, por tanto, son más elevados.

ext2

En 1993 Rémy Card siguió mejorando el sistema original y lo dotó de nuevas funcionalidades y rendimientos con el ext2( second extended file system). El sistema de ficheros tiene un tipo de tabla FAT de tamaño fijo, donde se almacenan los i-nodos. Los i-nodos son una versión muy mejorada de FAT, donde un puntero i-nodo almacena información del archivo (ruta o path, tamaño, ubicación física). En cuanto a la ubicación, es una referencia a un sector del disco donde están todos y cada una de las referencias a los bloques del archivo fragmentado. Estos bloques son de tamaño especificable cuando se crea el sistema de archivos, desde los 512 bytes hasta los 4 kB, lo cual asegura un buen aprovechamiento del espacio libre con archivos pequeños. Los límites son un máximo de 2 TB de archivo. ext2 fue el sistema de ficheros por defecto de las distribuciones de Linux Red Hat Linux, Fedora Core y Debian hasta ser reemplazado recientemente por su sucesor ext3.

ext3

Stephen Tweedie introdujo en 2001 un avance significativo sobre el anterior sistema de archivos y le llamó simplemente ext3 (third extended file system). Es el sistema de archivo más usado en distribuciones Linux, aunque en la actualidad está siendo remplazado por su sucesor, ext4. La principal diferencia con ext2 es el registro por diario(journaling). Un sistema de archivos ext3 puede ser montado y usado como un sistema de archivos ext2. Otra diferencia importante es que ext3 utiliza un árbol binario balanceado (árbol AVL) e incorpora el asignador de bloques de disco Orlov. Aunque su velocidad y escalabilidad es menor que sus competidores, como ReiserFS o XFS, tiene la ventaja de permitir actualizar de ext2 a ext3 sin perder los datos almacenados ni tener que formatear el disco. Tiene un menor consumo de CPU y está considerado más seguro que otros sistemas de ficheros en Linux dada su relativa sencillez y su mayor tiempo de prueba. Además, puede manejar archivos de hasta 2 TB.

ext4

Fourth extended file system (ext4) es un sistema de archivos con registro por diario (en inglés Journaling), anunciado el 10 de octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. El 25 de diciembre de 2008 se publicó el kernel Linux 2.6.28, que elimina ya la etiqueta de "experimental" de código de ext4. Las principales mejoras son: soporte de volúmenes de hasta 1024 PiB, soporte añadido de extent, menor uso del CPU y mejoras en la velocidad de lectura y escritura. Soporta archivos de hasta 16 TB.

Linux siempre ha evolucionado con un sistema de archivos potentísimo y seguro

ReiserFS

Es un sistema de archivos de propósito general, diseñado e implementado por un equipo de la empresa Namesys en el 2001 y liderado por Hans Reiser. Aunque de modo minoritario, actualmente es soportado por Linux pero existen planes de futuro para incluirlo en otros sistemas operativos. ReiserFS ofrece funcionalidades que pocas veces se han visto en otros sistemas de archivos, como por ejemplo, Journaling. Esta es la mejora a la que se ha dado más publicidad, ya que previene el riesgo de corrupción del sistema de archivos. Usa un esquema específico para reducir la fragmentación interna sin embargo, no se conoce una forma de desfragmentar un sistema de archivos ReiserFS, aparte de un volcado completo y su restauración. Se insistió en desarrollar sucesivas versiones, llegando hasta la Reiser3 que es la más extendida hasta ahora.

En el 2004, Namesys, patrocinado por DARPA y Linspire, reescribió desde cero el anterior ReiserFS para convertirlo en el actual Reiser4, sin embargo, no se distribuye de forma conjunta con el kernel de Linux y por tanto no es soportado por muchas distribuciones. Los desarrolladores del kernel de Linux sostienen que Reiser4 no sigue la convención de codificación estándar, mientras que Hans Reiser argumenta que la verdadera razón es debida a motivos políticos. En el año 2004, las pruebas de rendimiento realizadas por Namesys, mostraron que Reiser4 es de 10 a 15 veces más rápido que ext3 en la administración de ficheros más pequeños de 1KB. En el uso diario, las pruebas sugirieron que duplicaría el rendimiento respecto a ext3. Otras pruebas mostraron que Reiser4 era más lento en otras operaciones. Soporta 8 TB de tamaño máximo de archivo.

DARPA también metió las zarpas en los diseños de sistemas de archivos

UFS

Se considera uno de los pesos pesados dentro del mundo de los sistemas de archivos. UFS(Unix File System) fue desarrollado por el  Computer Systems Research Group (CSRG) de la Universidad de Berkley (California). utilizado por varios sistemas operativos UNIX y POSIX. Es un derivado del Berkeley Fast File System (FFS), el cual es desarrollado desde FS UNIX. Casi todos los derivativos de BSD incluyendo a FreeBSD, NetBSD, OpenBSD, NeXTStep, y Solaris utilizan una variante de UFS. En Mac OS X está disponible como una alternativa al HFS. En Linux, existe soporte parcial al sistema de archivos UFS, de solo lectura, y utiliza sistema de archivos nativo de tipo ext3, con un diseño inspirado en UFS.

XFS

Introducido en 1994, se trata de un sistema de archivos de 64 bits con journaling de alto rendimiento creado por SGI (antiguamente Silicon Graphics Inc.) para su implementación de UNIX llamada IRIX. En mayo del 2000, SGI liberó XFS bajo una licencia de código abierto. XFS se incorporó a Linux a partir de la versión 2.4.25, cuando Marcelo Tosatti (responsable de la rama 2.4) lo consideró lo suficientemente estable para incorporarlo en la rama principal de desarrollo del kernel. Los programas de instalación de las distribuciones de SuSE, Gentoo, Mandriva, Slackware, Fedora Core, Ubuntu y Debian ofrecen XFS como un sistema de archivos más. XFS soporta un sistema de archivos de hasta 9 exabytes, aunque esto puede variar dependiendo de los límites impuestos por el sistema operativo. En sistemas Linux de 32 bits, el límite es 16 terabytes. XFS es el más antiguo de los sistema de archivos con journaling disponible para la plataforma UNIX, tiene un código maduro, estable y bien depurado.

Unix posee un sistema de archivos robusto y depurado, marca de la casa

ZFS

El más bestia de todos los sistemas de archivos. La madre de todas las batallas con sus 128 bits. Relativamente moderno, ZFS fue desarrollado por Sun Microsystem en 2004 y lanzado el 16 de noviembre de 2005 como parte del build 27 de OpenSolaris. Destaca por su gran capacidad, integración de los conceptos anteriormente separados de sistema de ficheros y administrador de volúmenes en un solo producto, nueva estructura sobre el disco, sistemas de archivos ligeros, y una administración de espacios de almacenamiento sencilla. Los límites de ZFS están diseñados para ser tan grandes que no se encuentren nunca en la práctica.

Solaris y su ZFS representan el máximo exponente de los sistemas de archivos

Respecto a la capacidad del sistema, Jeff Bonwick, el arquitecto jefe de Sun para ZFS, dijo "Llenar un sistema de archivos de 128 bits excedería los límites cuánticos de almacenamiento de la Tierra. No puedes rellenarlo sin hervir los océanos". Como ejemplo de capacidad, se dice que si un usuario crease 1000 ficheros por segundo, tardaría unos 9000 años en alcanzar el límite impuesto por el número de ficheros. Además, permite reparar datos corruptos al vuelo, mientras los discos están siendo utilizados y elimina la necesidad de particionar los discos duros, puesto que combina todas las entradas y salidas de los discos instalados en el sistema creando una única partición con todos los datos.
Aparte de sus capacidades, la solidez y seguridad de los sistemas ZFS superan todo lo conocido hasta ahora. Desde 2006 se está pensando incorporar este monumental sistema de archivos a las últimas distribuciones de Linux aunque por cuestión de licencias, se torna difícil la implementación final. Apple también hizo un amago de incluir ZFS en su sistema operativo OS X “Leopard” pero terminó por abandonar la idea. Una pena.

Reportar

¿Qué te pareció?

Escrito por imported_Kir

22 Comments

Leave a Reply
  1. ¿Acaso te has olvidado de Butter FS (BtrFS)?.

    Me encantaría ver unas comparativas BtrFS VS XFS y VS ZFS.

    Todos sobre GNU/Linux.

  2. Buenas:

    solo un detalle, pones el el articulo " Cada uno de los sistemas operativos crea estas estructuras y logaritmos de diferente manera", cuando deberia ser "Algoritmos" 🙂

    • Arreglado.

      Son las traiciones de los correctores ortográficos, que a veces se toman la justicia por su mano y fracasan estrepitosamente. Y todo ello por la espalda.

      Gracias jalaka.

  3. Muy buen articulo, pero yo también quería ver algo de Btrfs, en todo caso aun está en fase experimental, quizás es por eso?

    En todo caso felicitaciones al autor.

  4. […El más famoso y sencillo de todos los conocidos. fue creado por Bill Gates y Marc McDonald en 1977 con el objeto de manejar discos en BASIC….]

    En realidad Bill Gates programo una solo cosa de la que se tiene conocimiento.

    Aqui un extracto de http://www.smaldone.com.ar/opinion/docs/microsoft.html (las comillas son mias)
    […El joven visionario que revolucionó la informática

    Otro mito bastante común es que Gates creó el lenguaje Basic. Nada más lejos de la verdad. Basic fue creado por John Kemeny y Thomas Kurtz en 1964. Lo que Gates y Paul Allen hicieron fue crear una versión del intérprete de dicho lenguaje para computadoras personales Altair (logro que es ampliamente superado por cualquier alumno de un curso universitario de compiladores). """Este intérprete es la única pieza de código conocida escrita, a medias, por Bill Gates""". Más adelante veremos que muchas otras invenciones que se le atribuyen tampoco fueron obra suya. …]

  5. sin duda, uno de los sistemas mas usados a mi modo de ver, no es NTFS, sino el FAT
    lo usan aun los celulares, las memorias USB y varios dispositivos mas

  6. Muy buen articulo.

    Quisiera que expandan e incluyan LVM (Linux Volume Management) y EVMS (Enterprise Volume Management System) y cualquier otro tipo de estructuras similares. Nunca he sabido de algo similar a esto que funcione en Windows.

  7. yo quise poner en mi usb de 16 gb un archivo de 4 gigas para repruducirlo en la television
    con que tuve que formatearlo al sistema de FAT 32 ya que era anteriormente NTFS pero dio la casualidad( ya lo se que casualidad no es ) de que no podia identificarlo la dichosa tele ! malido a los intereses comerciales
    las proxima television que comprare sera la bravia que esas no dan problemas
    salud !

    chuck norris accelero la compactacion de los discos duros depues de confundirlo con un sanwitch de queso…

  8. Si no me falla la memoria (a estas alturas puede ser) microsoft habia desarrollado un nuevo sistema de archivos para el windows, alla por el 2004 cuando Vista tenia el codigo longhorn, el WINFS, lo desecho, al igual te todo el sistema debido a los tiempos de desarrollo y agarro el kernel del 2003 con ntfs lo dibujo un poco y nos la mando a guardar con vista!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Experiencia de la Calle Fremont

Back to the Future, el videojuego