Sistemas de archivos.
Introducción: El sistema de archivos es el componente del Sistema operativo encargado de administrar y facilitar el uso de las memorias periféricas, ya sean secundarias o terciarias. Sus principales funciones son la asignación de espacio a los archivos, la administración del espacio libre y del acceso a los datos resguardados.
Hay que saber que los datos se guardan siguiendo una serie de normas, así como también hay que tener unos conceptos claros, como que los archivos se refiere a datos, y los directorios a la organización de archivos. Además los sistemas de archivos determinan:
- Estructura.
- Nombre.
- Forma de acceso.
- Uso.
- Protección.
Archivos: Un archivo es un conjunto de bits que son almacenados en un dispositivo. Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que la contiene.
Estos nombres de archivos en un principio en MSDOS, estaban compuestos de 8 caracteres mas 3 caracteres reservados para la extensión, desde hace ya un tiempo hasta la actualidad esa cifra ha cambiado hasta alcanzar los 255 caracteres mas la extensión. Los archivos también diferencian las mayúsculas y minúsculas como caracteres distintos, por ejemplo, "Hola" y "hola", serían dos archivos distintos.
Los archivos tienen atributos y éstos pueden variar según el Sistema Operativo. Algunos atributos comunes son:
- S: Atributo del sistema: Si pertenece o no al Sistema Operativo.
- H: Oculto: Si está oculto no se verá al listar el directorio.
- R: Solo lectura: No se podrá escribir.
- A: Archivo: Cambia la modificación del archivo. Necesario para copias de seguridad.
- Fecha y hora: De creación o de modificación (o ambas).
- Tamaño.
Comodines: A la hora de buscar archivos es muy habitual hacer uso de estos comodines para una mayor rapidez en la búsqueda. Estos comandos pueden ser:
- *- Lista todos los caracteres sin un número fijo.
- ?- Lista cualquier carácter pero solo uno.
Ejemplos:
- *data (Mostraría todos los archivos que terminen por data).
- note* (Mostraría todos los archivos que empiecen por note).
- *raf* (Mostraría todos los archivos que incluyan "raf" en ese mismo orden de colocación).
- memo? (Mostraría todos los archivos memo que estén acompañado de un solo carácter).
- *old? (Mostraría todos los archivos que terminen por old y que estén acompañados de un solo carácter).
Tipos de archivos: Existen dos tipos de archivos, los ejecutables y los de datos.
- Ejecutables: Son creados para funcionar por sí mismos y suelen tener extensiones como exe o com en sistemas Windows y MS-DOS. Otros Sistemas Operativos tienen otros tipos de extensiones para sus ejecutables.
- Datos: Necesitan sen cargados con alguna aplicación para ver su contenido. Estos son los mas numerosos y pueden ser archivos de sistema (cat, ini, inf, msi), imagen(bmp, gif, jpeg, png), sonido(mp3, ogg, wmv), texto(dic, exc, txt, wtx), programas(sdc, sxc, qup, xls), vídeo(avi, mov, mp4, mpeg), comprimidos(iso, rar, zip), imágenes de cd/dvd(cdd, nrb, nrh), etc.
Directorios: Un directorio es un contenedor virtual en el que se almacenan una agrupación de archivos de datos y otros subdirectorios, atendiendo a su contenido, a su propósito o a cualquier criterio que decida el usuario.
- Los directorios son recursivos, esto quiere decir que dentro de un directorio pueden hallarse más directorios.
- Dado que los directorios son recursivos, la estructura que éstos muestran es jerárquica, en forma de árbol.
- Directorio raíz: es la base donde comienza la ruta absoluta. (/ en linux) (\ en Windows).
- Las rutas relativas no incluyen el primer carácter.
- "." para referenciar al directorio actual.
- ".." para referenciar al directorio padre.
Atributos de directorio:
- H: Oculto.
- R: Solo lectura.
- A: Archivo (modificación).
- Fecha y hora.
- En linux también propietarios.
- En Windows si están comprimidos
Implementación del Sistema de Archivos:
- Bloque: Están compuestos por un número determinado de sectores asociados a un archivo.
- Los bloques se asignan enteros al archivo.
- Si el tamaño del bloque es muy grande se perdería una gran cantidad de almacenamiento.
- Si el tamaño del bloque es muy pequeño, se necesitarían muchos bloques para almacenar un archivo de un tamaño considerable, lo que conllevaría una pérdida de lectura.
Asignación de bloques asociados:
- Asignación adyacente.
- Asignación en forma de lista ligada.
- Asignación mediante una lista ligada y un índice.
Vamos a realizar un ejercicio para ver cómo se asignan los bloques.
Atendiendo a la imagen tendremos que descubrir cuántos archivos hay, dónde empiezan, y cuántos bloques ocupan.
Para conocer el número de archivos existentes en esa tabla, tendremos que centrarnos en los números de bloques que están seguidos de un 0. En este caso vemos que al bloque 4 y al 13 le siguen un 0. Por lo que concluiríamos que hay dos archivos.
Para saber dónde empieza tendremos que ir a un 0 y ir mirando números hasta que lleguemos a un número que no se repita.
Vamos a hacerlo de manera práctica con esta tabla para que se vea mejor.
Nos centramos por ejemplo en el primero 0, el que está situado al lado del 4, ahora buscamos el 4 en la tabla y vemos que está al lado de n-2, ahora buscaríamos el n- 2 que nos lleva al 11 y éste al 10. Llegados a este punto vemos que el 10 no vuelve a aparecer, eso significa que es donde empieza el archivo.
Ahora lo haremos con el otro archivo, el 13 nos lleva al 1, este nos lleva al 7, el 7 al 3, el 3 al 2, el 2 al 6 y éste ya no se repite, por lo que el archivo comienza en el 6.
Vamos a ponerlo de una manera más sencilla aún.
0 - 4 - n-2 - 11 -10 Concluimos que el archivo del bloque 4 empieza en el bloque 10.
0 - 13 - 1 - 7 - 3 - 2 - 6 Concluimos que el archivo del bloque 13 empieza en el bloque 6.
Para conocer el número de bloques que ocupa tendremos que ver la ruta que hemos seguido hasta llegar al bloque de comienzo.
En el primero hemos pasado por el 4, por el n-2, por el 11 y por el 10. Entonces este archivo ocuparía 4 bloques.
Y en el segundo caso, el archivo ocuparía 6 bloques.
FAT:
- Se denomina FAT a la tabla de registros de Windows.
- Existen dos tipos: FAT16 y FAT32.
- Todo el bloque disponible.
NTFS:
- No hay áreas de disco reservadas para datos como en el sistema de archivos FAT.
- Todos los datos se encuentran ubicados en archivos.
- MTF (Master FIile Table) también es un archivo.
Inodos:
- Es el sistema de archivos utilizado en Linux.
- Tabla con los bloques + bloque indirecto.
- 1,2 ó 3.
- Cuando Linux abre un archivo carga en memoria su inodo.
Tipos de sistemas de archivos.
FAT16:
- MSDOS, Windows 9x, NT, 2000, XP, Vista, Server 2003 y Server 2008.
- Particiones de hasta 2GB.
- Volúmenes de hasta 2GB.
- Unidades de asignación 32KB.
- Tamaño máximo de un archivo 2GB.
- No distingue entre mayúsculas y minúsculas.
- No soporta dominios.
FAT32:
- Windows 9x, NT, 2000, XP, Vista, Server 2003 y Server 2008.
- Particiones mayores de 2GB.
- Volúmenes de hasta 2TB.
- Unidades de asignación de 4KB.
- Tamaño máximo de un archivo 4GB.
- No distingue entre mayúsculas y minúsculas.
- No soporta dominios.
NTFS 5:
- Nombre de archivos de hasta 255 caracteres
- Reparto de unidades en varios discos.
- Acceso a dominios.
- Cuotas de disco.
- Volúmenes de hasta 16TB menos 64KB.
- Tamaño máximo de un archivo limitado por el volumen.
- Distingue entre mayúsculas y minúsculas.
- En Windows Server 2008 se incluyó un proceso de reparación.
Sistemas de archivos extendidos.
ext3fs:
- Uno de los más eficientes y flexibles.
- Solo desde Linux.
- Nombres de archivos de hasta 256 caracteres.
- Volúmenes de hasta 32TB.
- Tamaño máximo de un archivo de hasta 2TB.
- Distingue entre mayúsculas y minúsculas.
- Registro de diario para si la transacción falla.
ext4fs:
- Compatible con ext3.
- Solo Linux.
- 256 caracteres en nombres de archivos.
- Volúmenes de hasta 1EB.
- Tamaño máximo de archivo de hasta 16TB.
- Distingue entre mayúsculas y minúsculas.
- Registro diario.
Sistemas de archivos HPFS:
- En su origen para OS/2.
- Resolvía los problemas de FAT.
- 256 caracteres en nombres de archivos.
- Volúmenes de hasta 2TB.
- Tamaño de archivos de hasta 2GB.
Sistemas de archivos transaccionales: Se denomina transacción al conjunto de operaciones que, o bien, se ejecutan todas simultáneamente, o no se ejecuta ninguna.
- Al final se hace un commit o un rollback.
- Ejemplo: Cajero automático.
- Ejemplo: instalación de un programa.
- Copiar ficheros.
- Borrar otros.
- Renombrar.
- Al final hace la transacción si todo ha ido bien.
- El estado es siempre coherente con el disco.
Problemas de los sistemas de archivos transaccionales:
- Sobrescriben los datos en el momento. Si falla el sistema a medias se queda incoherente.
- Antes se intentaba verificar el estado del sistema-
- Proceso pesado y sin garantías.
- Después del registro de diario: Guarda las acciones aparte. Si el sistema se bloquea se vuelve a hacer.
- Problema: cargas innecesarias.
- Hoy en día: COW (Copy On Write): Copia por escritura.
- Se copian los daros en otro bloque y si todo es correcto se sobrescribe.
- Ventajas:
- Estado del disco siempre válido.
- Copias de seguridad coherentes y fiables.
- Deshacer las modificaciones.
Sistemas de archivos distribuidos: Permite que los directorios localizados en la red se puedan ver como un árbol de directorios de forma transparente.
- Se usan si:
- Agregar servidores de archivos o modificar ubicaciones.
- Usuarios con acceso están distribuidos.
- Usuarios necesitan acceder a carpetas compartidas.
- Intento de mejora de la carga del servidor.
- Acceso ininterrumpido.
- Se dispone de accesos web internos y externos.
- Se utiliza NTFS.
Sistemas de archivos cifrados:
- Almacenar archivos cifrados.
- Cifrado.
- Descifrado.
- Agentes de recuperación: pueden recuperar datos cifrados.
Sistemas de archivos virtuales:
- Capa de abstracción encima de un sistema de archivos.
- Objetivo: Aplicaciones clientes tengan acceso a varios sistemas de archivos diferentes de manera uniforme.
- Puente. Las aplicaciones acceden sin saber el sistema de archivos concreto.
No hay comentarios:
Publicar un comentario