FAT
Del inglés File Allocation Table se puede traducir Tabla de localización de archivos, o Tabla de Asignación de Ficheros.
Los tipos de Sistemas <span style="font-family: Courier New; font-size: medium;">FAT</span> son: <span style="font-size: medium;"><span style="font-family: Courier New;"><b>FAT, FAT16, FAT32 (<abbr title="File Allocation Table" lang="en">VFAT</abbr></b>)</span></span>.
Un volumen formateado con el sistema de archivos <span style="font-family: Courier New; font-size: medium;">FAT</span> se divide en clústeres. El tamaño del clúster viene determinado por el tamaño del volumen. Para el sistema de archivos <span style="font-family: Courier New; font-size: medium;">FAT</span>, el número de clúster debe caber en 16 bits y debe ser una potencia de dos. Otra forma de decirlo es que el volumen podrá tener, como máximo, 216 clústeres.
La estructura interior de los sistemas <span style="font-family: Courier New; font-size: medium;">FAT</span> es:
- PARTITION BOOT SECTOR: Contiene información que el sistema de archivos utiliza para acceder al volumen o partición.
- FAT: Es llamado así por el método de organización, a través de la tabla de localización. Que está al comienzo del volumen o partición. Para proteger el volumen, se mantienen copias de la tabla, por si una de ellas fallara. Además, las tablas de asignación de archivos deben estar almacenadas en una ubicación fija para que los archivos necesarios al iniciar el sistema se puedan localizar correctamente.
- FAT ROOT FOLDER: La carpeta raíz contiene una entrada por cada archivo y carpeta en la raíz. La única diferencia entre la carpeta raíz y otras carpetas es que la carpeta raíz está en un lugar específico en el disco y tiene un tamaño fijo (512 entradas para un disco duro como máximo, el número de entradas en un disquete depende del tamaño del disco). El resto de directorios internos a estos son considerados, a nivel interno, como enlaces a archivos.
- FAT FOLDER STRUCTURE: Las carpetas o directorios contienen un conjunto de entradas de 32 bytes para cada archivo y subcarpeta contenidos en la carpeta o directorio. La entrada de la carpeta incluye la siguiente información:
- Nombre (ocho más tres caracteres).
- Atributo byte (8 bits de valor de la información).
- Creación de tiempo (24 bits).
- Crear la fecha (16 bits).
- Última fecha de acceso (16 bits).
- Última vez modificados (16 bits).
- Última fecha de modificación (16 bits).
- A partir número de clúster en la tabla de asignación de archivos (16 bits).
- Tamaño del archivo (32 bits).
- FAT32 FEATURES: Es un derivado de la tabla de asignación de archivos del sistema de archivos que soporta unidades con más de 2 GB de almacenamiento. Debido a que las unidades <span style="font-family: Courier New; font-size: medium;">FAT32</span> pueden contener más de 65.526 clusters, pequeños clusters que se utilizan en grandes unidades <span style="font-family: Courier New; font-size: medium;">FAT16</span>. Este método da como resultado la asignación de espacio más eficiente en la unidad <span style="font-family: Courier New; font-size: medium;">FAT32</span>.
El archivo más grande para una unidad de <span style="font-family: Courier New; font-size: medium;">FAT32</span> es de aproximadamente 4 GB (exactamente 4 GB menos 2 bytes).
El sistema de archivos <span style="font-family: Courier New; font-size: medium;">FAT32</span> incluye cuatro bytes por clúster en la tabla de asignación de archivos. Hay que tener en cuenta que los 4 bits más significativos, de los 32 bits en la tabla de asignación de archivos <span style="font-family: Courier New; font-size: medium;">FAT32</span>, se reservan y no son parte del número de clúster.
NTFS
NTFS es un sistema de archivos de alto rendimiento y de autorecuperación de archivos propiedad de los sistemas Windows por defecto, que apoya la seguridad a nivel de archivo, la compresión y la auditoría. También soporta grandes volúmenes y la solución de almacenamiento de gran alcance, tales como RAID 0.
¿Cómo se organiza NTFS?
Podemos distinguir, en el sistema de archivos NTFS, la siguiente organización:
- Partition boot sector: Describe el sector de arranque de un volumen con el formato NTFS. Al formatear un volumen como NTFS, el programa de formateo asigna los primeros 16 sectores para el archivo de arranque. El primer sector, de hecho, es un sector de arranque con un "bootstrap" del código y los siguientes 15 sectores son el sector de arranque de IPL. Para aumentar la confiabilidad del sistema de archivos el último sector de una partición NTFS contiene una copia de repuesta del sector de arranque.
- Master file table: Cada archivo en un volumen NTFS está representado por un registro con un archivo especial llamado "tabla maestra de archivos". NTFS reserva los primeros 16 registros de la tabla de información especial. El primer registro de esta tabla, describe la tabla maestra de archivos propios, seguido de un registro espejo de MFT. Si el primer registro MFT está dañado, NTFS lee el segundo registro para buscar el archivo espejo de MFT, cuyo primer registro es idéntico al primer registro de la MFT. Las ubicaciones de los segmentos de datos tanto para el MFT como para el archivo MFT espejo se registran en el sector de arranque.
- System files: NTFS incluye varios archivos de sistema, todos ellos se ocultan de la vista en el volumen NTFS. Un sistema de archivos es utilizado por el propio sistema de archivos para almacenar los metadatos y para poner en práctica el sistema de archivos. Los archivos de sistema se colocan en el volumen de la utilidad de formateo.
- File area: Un archivo disperso tiene un atributo que hace que el subsistema de entrada/salida sirva para localizar sólo aquellos datos que tienen información (no cero). Los datos distintos de cero se colocan en el disco, y los datos no significativos (cadenas de grandes volúmenes de datos compuestos de ceros) no lo están. Cuando un archivo disperso se lee, los datos localizados se devuelven como se almacenaron. Los no localizados se devuelven, por defecto, como ceros.
EXT2
A qué nos referimos con ext2? Amplía las dos imágenes siguientes y échales un vistazo antes de continuar.
El espacio en <abbr title="Second Extended File System" lang="en"><span style="font-family: Courier New; font-size: medium;">ext2</span></abbr> está dividido en bloques, y los bloques organizados en grupos, similar a los grupos de cilindro de los sistemas de archivos Unix. Se realiza para reducir la fragmentación externa y reducir al mínimo el número de búsquedas de disco cuando se lee una gran cantidad de datos consecutivos.
Cada bloque contiene un grupo superbloque, el grupo de bloques de mapa de bits y mapa de bits i-nodo, seguidos por los bloques de datos reales.
El superbloque contiene información importante, que es crucial para el arranque del sistema operativo, con lo que las copias se realizan en cada bloque de grupo de cada bloque en el sistema de archivos. Sin embargo, sólo la primera copia de la misma, que se encuentra en el primer bloque del sistema de archivos, se utiliza en el arranque.
El grupo descriptor almacena el valor del bloque de mapa de bits, mapa de bits inodo y el comienzo de la tabla de i-nodos por cada bloque de grupo y éstos, a su vez, se almacenan en un grupo descriptor de tabla.
Dentro de cada i-nodo existe la siguiente información:
- Número de i-nodo.
- Tipo de fichero.
- Propietario de dicho fichero.
- Permisos del fichero.
EXT3
El sistema <span style="font-family: Courier New; font-size: medium;">ext3</span> es la evolución propia del <span style="font-family: Courier New; font-size: medium;">ext2</span>. Es el sistema de archivo más usado en distribuciones Linux, aunque en la actualidad está siendo reemplazado por su sucesor, <abbr title="Fourth Extended File System" lang="en"><span style="font-family: Courier New; font-size: medium;">ext4</span></abbr>.
La principal diferencia con <span style="font-family: Courier New; font-size: medium;">ext2</span> es el registro por diario (journaling). Un sistema de archivos <span style="font-family: Courier New; font-size: medium;">ext3</span> puede ser montado y usado como un sistema de archivos <span style="font-family: Courier New; font-size: medium;">ext2</span>. Otra diferencia importante es que <span style="font-family: Courier New; font-size: medium;">ext3</span> utiliza un árbol binario balanceado (árbol AVL) e incorpora el asignador de bloques de disco Orlov.
¿Qué es un sistema con journaling o bitácora?
Un sistema con journaling es un sistema de ficheros tolerante a fallos, en el cual la integridad de los datos está asegurada, porque las modificaciones de la meta-información de los ficheros son primero grabadas en un registro cronológico, (log o journal, que es una lista de transacciones), antes de que los bloques originales sean modificados. En el caso de un fallo del sistema, el sistema con journaling asegura que la consistencia del sistema de ficheros es recuperada. El método más común, es el de grabar previamente cualquier modificación de la meta-información en un área especial del disco, el sistema realmente grabará los datos una vez que la actualización de los registros haya sido completada.
A la hora de recuperar la consistencia después de un fallo, el módulo de recuperación analizará el registro y sólo repetirá las operaciones incompletas en aquellos ficheros inconsistentes, es decir, que la operación registrada no se haya llevado a cabo finalmente, con lo que se recuperará la consistencia del sistema de ficheros casi al instante, ya que en lugar de examinar todos los metadatos (como hace el "<span style="font-family: Courier New; font-size: medium;">fsck</span>"), sólo se inspeccionan aquellas porciones de los meta-datos que han sido cambiadas recientemente.
Hay distintos niveles de journaling:
- Diario (riesgo bajo): Los metadatos y los ficheros de contenido son copiados al diario, antes de ser llevados al sistema de archivos principal.
- Pedido (riesgo medio): Sólo los metadatos son registrados en el diario, los contenidos no, pero está asegurado que el contenido del archivo es escrito en el disco antes de que el metadato asociado se marque como transcrito en el diario.
- Reescritura (riesgo alto): Sólo los metadatos son registrados en el diario, el contenido de los archivos no.
EXT4
ext4 fue lanzado como un sistema de archivos completamente funcional y estable en <span style="font-family: Courier New; font-size: medium;">Linux 2.6.28</span>, y cada vez está más difundido a través de las distribuciones modernas, (en algunos casos como el sistema de archivos por defecto), así que si usamos una distribución moderna, es posible que tengamos el sistema de archivos <span style="font-family: Courier New; font-size: medium;">ext4</span> instalado.
Es seguro para que podamos usarlo en entornos de producción, pero puede tener errores, (tiene más probabilidades de generar errores en la primera versión estable). Cualquier error crítico conocido se fija rápidamente.
Es un sistema de archivos con registro por diario como una mejora compatible de <abbr title="Third Extended File System"><span style="font-family: Courier New; font-size: medium;">ext3</span></abbr>. <span style="font-family: Courier New; font-size: medium;">ext4</span> soporta ahora volúmenes de hasta 1024 Petabytes, donde 1 Petabyte = 1015 bytes. Para darnos idea de lo que significa esta cantidad, sólo es necesario saber que todo el clúster de Google se calcula actualmente en unos 4 Petabytes.
La principal novedad en <span style="font-family: Courier New; font-size: medium;">ext4</span> es Extent, o la capacidad de reservar un área contigua para un archivo, esto puede reducir y hasta eliminar completamente la fragmentación de archivos.
Los extents han sido introducidos para reemplazar al tradicional esquema de bloques usado por los sistemas de archivos <span style="font-family: Courier New; font-size: medium;">ext2/3</span>.
¿Qué son los extents? Un extent es un conjunto de bloques físicos contiguos, mejorando el rendimiento al trabajar con ficheros de gran tamaño y reduciendo la fragmentación. Un extent simple en <span style="font-family: Courier New; font-size: medium;">ext4</span> es capaz de mapear hasta 128 Mb de espacio contiguo con un tamaño de bloque igual a 4Kb.
<span style="font-family: Courier New; font-size: medium;">ext4</span> va a soportar alojar multibloques, en una sola llamada, en lugar de una llamada por bloque, evitando sobrecargas de proceso. También permite la comprobación más rápida del sistema de archivos; los bloques sin alojar son simplemente ignorados. Usa marcas temporales mejoradas, lo que retrasa el problema con el año 2038. Permite migrar un sistema de archivos <span style="font-family: Courier New; font-size: medium;">ext3</span> a <span style="font-family: Courier New; font-size: medium;">ext4</span> sin formatear.
Swap
En Linux, se usa esta partición como espacio de intercambio, como RAM adicional. Un lugar dónde se guardan las imágenes de los procesos que no se mantienen en la RAM. Mientras que en Windows utiliza un archivo (<span style="font-family: Courier New; font-size: medium;">pagefile.sys</span>) como espacio del disco para intercambio (memoria virtual), Linux utiliza una partición separada del resto para este fin.
Aunque el <span style="font-family: Courier New; font-size: medium;">swap</span> puede ser un fichero en blanco, este sistema no es aconsejable.
¿Por qué? Porque haríamos exactamente lo que hace Windows con su memoria virtual. Podemos quedarnos sin espacio en el disco sin ser conscientes de ello. Incluso, si tenemos en particiones separadas dos sistemas operativos, por ejemplo Windows 10 y Ubuntu 18, podríamos utilizar el archivo de Windows <span style="font-family: Courier New; font-size: medium;">pagefile.sys</span> como <span style="font-family: Courier New; font-size: medium;">swap</span> en Ubuntu.
¿Cómo? Ejecutando:
mkswap /media/swapwin/pagefile.sys
swapon /media/swapwin/pagefile.sys
Pongamos un ejemplo de cómo se trabaja con el espacio de intercambio:
Tenemos un ordenador con una RAM de 2 GB de 32 bits. Como físicamente no tiene suficiente memoria para todos los procesos, el sistema operativo busca los procesos menos activos y los mueve al área de intercambio. De esa manera, descarga la RAM para que otros procesos, en esos momentos más activos, puedan ser cargados en la RAM, que ya sabemos que su acceso es mucho más rápido que en disco.
Puede surgir algún problema como el de la hiperpaginación. Los síntomas con los que nos podemos encontrar son atasco en el rendimiento del equipo, y sobrecarga del sistema. Y la causa puede ser debida a que los procesos están continuamente siendo pasados de memoria física al área de intercambio, (porque otro proceso requiere memoria) y luego otra vez a memoria (porque se han de ejecutar).
Cuando se realiza una instalación de Linux hay una pregunta latente: ¿Cuánta partición del disco debo reservarle al <span style="font-family: Courier New; font-size: medium;">swap</span>? No hay una regla clara, pero podemos seguir un criterio bastante extendido:
- Para máquinas con menos de 1 GB de RAM: lo mismo de <span style="font-family: Courier New; font-size: medium;">swap</span> que tengas de RAM.
- Para máquinas que tienen entre 2 y 4 GB de RAM: la mitad de <span style="font-family: Courier New; font-size: medium;">swap</span> que la que tengas de RAM.
- Para máquinas con más de 4 GB de RAM: 2 GB de RAM como mucho.