Introducción
Un sistema de ficheros son los métodos y las estructuras de datos que emplea el sistema operativo para organizar los ficheros en un disco. El término Sistema de Ficheros se utiliza tanto para referirse a una partición.
El diseño del sistema de ficheros tiene una gran influencia en la eficacia (rendimiento), seguridad, flexibilidad y capacidad de crecimiento de los almacenamientos en disco. Y por tanto, en el rendimiento del propio Sistema Operativo. Una de cuyas funcionalidades más importantes es el manejo de datos.
Cada sistema operativo tiene su propio sistema de ficheros, que se caracteriza por definir el tamaño máximo de un fichero, la aplicación con la que se asocia y el tipo de metadatos que almacena entre otros.
Definición de Metadatos:
Se trata de información complementaria adicional como la fecha de creación, resolución, tamaño, fecha de modificación, autor, permisos, etc. , almacenan datos necesarios para administrar el sistema.
Journaling
Algunos de estos sistemas, trabajan con un mecanismo llamado Journaling, éste permite a un Sistema Operativo implementar transacciones.
Definición de Transacción:
Es una interacción con una estructura de datos compleja, compuesta por varios procesos que se han de aplicar uno después del otro. La transacción debe ser equivalente a una interacción atómica. Es decir, o se ejecuta entera o no se ejecuta.
Se basa en llevar un journal o registro en el que se almacena la información necesaria para restablecer los datos afectados por la transacción en caso de que ésta falle.
El procedimiento es básicamente el siguiente:
- Se bloquean las estructuras de datos afectadas por la transacción para que ningún otro proceso pueda modificarlas mientras dura la transacción.
- Se reserva un recurso para almacenar el journal. Por lo general suelen ser unos bloques de disco, de modo que si el sistema se para de forma abrupta (corte eléctrico, avería, fallo del sistema operativo…) el journal siga disponible una vez reiniciado el sistema.
- Se efectúan una a una las modificaciones en la estructura de datos. Para cada una:
- Se apunta en el journal como deshacer la modificación y se asegura de que esta información se escribe físicamente en el disco.
- Se realiza la modificación.
- Si en cualquier momento se quiere cancelar la transacción se deshacen los cambios uno a uno leyéndolos y borrándolos del journal.
- Si todo ha ido bien, se borra el journal y se desbloquean las estructuras de datos afectadas.
Si se ejecuta correctmante el processo devuelve COMMIT, en caso contrario ROLLBACK. Esto permite al sistema saber si puede o no realizar las modificaciones en el sistema.
Los Sistemas de ficheros que permiten Journaling son los siguientes:
- Ext3 de Linux
- Ext4 de Linux
- NTFS de Windows
- ReiserFS de Linux
- Reiser4 de Linux
- UFS de SUN Solaris
- XFS de IRIX y Linux
- JFS de Linux, OS/2 y AIX
- HFS+ de Mac OS X
- VMFS-3 de VMware
- Smart File System de AmigaOS
LINUX
EXT2
(Second extended Filesystem o “Segundo sistema de archivos extendido”):
Fue el sistema de archivos estándar en el sistema operativo Linux por varios años y continúa siendo ampliamente utilizado.
Fue diseñado originalmente por Rémy Card.
La principal desventaja de EXT2 es que no posee una bitácora, por lo que muchos de sus usuarios están emigrando a ReiserFS y su sucesor EXT3.
Fue el sistema de archivos estándar en el sistema operativo Linux por varios años y continúa siendo ampliamente utilizado.
Fue diseñado originalmente por Rémy Card.
La principal desventaja de EXT2 es que no posee una bitácora, por lo que muchos de sus usuarios están emigrando a ReiserFS y su sucesor EXT3.
EXT3
(Third extended Filesystem o “Tercer sistema de archivos extendido”):
Es un sistema de archivos con registro por diario (en inglés “journaling”), el cual se encuentra creciendo en popularidad entre usuarios del sistema operativo Linux.
A pesar de su menor desempeño y escalabilidad frente a alternativas como ReiserFS o XFS, posee la ventaja de permitir migrar del sistema de archivos EXT2 sin necesidad de reformatear el disco.
La única diferencia entre EXT2 y EXT3 es el registro por diario.
Un sistema de archivos EXT3 puede ser montado y usado como un sistema de archivos EXT2.
Es un sistema de archivos con registro por diario (en inglés “journaling”), el cual se encuentra creciendo en popularidad entre usuarios del sistema operativo Linux.
A pesar de su menor desempeño y escalabilidad frente a alternativas como ReiserFS o XFS, posee la ventaja de permitir migrar del sistema de archivos EXT2 sin necesidad de reformatear el disco.
La única diferencia entre EXT2 y EXT3 es el registro por diario.
Un sistema de archivos EXT3 puede ser montado y usado como un sistema de archivos EXT2.
EXT4
(fourth extended filesystem o «cuarto sistema de archivos extendido») es un sistema de archivos con registro por diario (en inglésJournaling), 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 PB.
- Soporte añadido de extent.
- Menor uso del CPU.
- Mejoras en la velocidad de lectura y escritura.
OTROS
ReiserFS
Es un sistema de archivos de propósito general, diseñado e implementado por un equipo de la empresa Namesys, liderado porHans Reiser.
Actualmente es soportado por Linux y existen planes de futuro para incluirlo en otros sistemas operativos. También es soportado por Windows (de forma no oficial), aunque por el momento de manera inestable y rudimentaria (ReiserFS bajo windows).
Reiser4
Se trata de la versión más reciente del sistema de archivos ReiserFS, reescrito desde cero, desarrollado por Namesys y patrocinado por la DARPA y Linspire.
Actualmente no se distribuye de forma conjunta con el kernel de Linux y por tanto no es soportado por muchas distribuciones. De hecho, su predecesor, Reiser3 se encuentra mucho más expandido. Reiser4 se encuentra disponible en la rama -mm del kernel de Linux, mantenida porAndrew Morton.
Caracteristicas
| 8 TB |
---|---|
| 232 (~4 mil millones) |
| |
| 16 TiB |
| Todos menos NULL y ’/’ |
XFS
Es 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. En FreeBSD el soporte para solo-lectura de XFS se añadió a partir de Diciembre de 2005 y en Junio de 2006 un soporte experimental de escritura fue incorporado a FreeBSD-7.0-CURRENT.
| 8 EB |
---|---|
| 255 bytes |
| 16 EB |
Tabla comparativa de sistema de ficheros
Sistema de Ficheros | Longitud máxima nobre archivo | Tipo de caracteres por directorio | Maxima longitud de ruta | Tamaño maximo de archivo | Tamaño maximo de partición |
---|---|---|---|---|---|
OS4000 | 8 bytes | A–Z, 0–9 | Ilimitado | 2 GB | Menos de 1 GB |
FAT12 | 255 UTF-16 | Cualquier Unicode excepto NUL | Ilimitado | 32 MB | 1 MB hasta 32 MB |
FAT16 | 255 UTF-16 | Cualquier Unicode excepto NUL | Ilimitado | 2 GB | 16 MB hasta 2 GB |
FAT32 | 255 UTF-16 | Cualquier Unicode excepto NUL | Ilimitado | 4 GB | 512 MB hasta 8 TB |
MFS | 255 bytes | Cualquier Byte excepto“:” | No rutas | 226 MB | 226 MB |
HFS | 31 bytes | Cualquier Byte excepto “:” | Ilimitado | 2 GB | 2 TB |
HPFS | 255 bytes | Cualquier Byte exceptoNUL | Ilimitado | 2 GB | 2 TB |
NTFS | 226 characters | Cualquier Byte excepto Nul y / | 32.767 caracteres Unicode con cada componente de ruta (directorio o nombre de archivo) hasta 226 caracteres de longitud | 16 EB | 16 EB |
HFS Plus | 255 UTF-16 | Cualquier Unicode | Ilimitado | 8 EB | 8 EB |
UFS2 | 255 bytes | Cualquier Byte excepto Nul | Ilimitado | 512 GB hasta 32 PB | 1 YB |
ext2 | 255 bytes | Cualquier Byte excepto Nul | Ilimitado | 16 GB hasta 2 TB | 2 TB hasta 32 TB |
ext3 | 255 bytes | Cualquier Byte excepto Nul | Ilimitado | 16 GB hasta 2 TB | 2 TB hasta 32 TB |
ext4 | 226 bytes | Cualquier Byte excepto Nul | Ilimitado | 16 GiB to 16 TB | 1 EB |
ReiserFS | 4,032 bytes | Cualquier Byte excepto Nul | Ilimitado | 8 TB(v3.6)
4 GB (v3.5)
| 16 TB |
Reiser4 | 3,976 bytes | Cualquier Byte excepto Nul | Ilimitado | 8 TB en x86 | Desconocido |
XFS | 255 bytes | Cualquier Byte excepto Nul | Ilimitado | 8 EB | 8 EB |
ZFS | 255 bytes | Cualquier Byte excepto Nul | Ilimitado | 16 EB | 16 EB |
0 comentarios:
Publicar un comentario