Sistemas de archivos
Son los encargados de administrar y facilitar el uso de las memorias. Su principal función es la asignación del espacio a los archivos.
Los archivos que están formados por datos se guardan siguiendo unas normas , lo normal es que sea como una cadena de bloques de un mismo tamaño.
También podemos encontrar los directorios que sirven para organizar los archivos.
El sistema de archivos se encara de determinar unos valores a los archivos como puden ser
- Estructura
- Nombre
- Forma de acceso
- Uso
- Protección
Los Archivos
Los archivos almacenan la información , esto se tenia que hacer con una serie de normas como por ejemplo
el nombre del archivo
- En MSDOS era de 8 caracteres +3 de extensión que servia para designar el tipo de archivo como por ejemplo si es un archivo de word sera .doc
- Después cambio y se podía usar 255 caracteres en el nombre
Diferencia entre mayúsculas y minúsculas y tienen una serie de atributos que en general pueden ser:
- S: es usado para los archivos que son del sistema
- H: Si se usa el archivo no se vera al listar el directorio
- R: Sera para designar un archivo de solo lectura
- A: Archivo , cambia al modificarse el archivo , es necesario para copias de seguridad
- Fecha y hora: de creación o modificación
- Tamaño: nos muestra el tamaño del archivo
Esos son atributos generales ya que cada SO tiene sus propios atributos.
Comodines
La nomenclatura de los archivos esta formado por dos partes , el nombre del archivo y la extensión.
el uso de los comodines es para la búsqueda de los archivos por ejemplo.
si tenemos un archivo que se llame IDP.doc y quizieramos buscarlo con el uso de comodines pondríamos IDP*
o si tenemos un archivo llamado IDP1 y quizieramos buscarlo con el uso de comodines pondríamos IDP?
Esto se debe a que el comodín "*"sustituye al cero, uno o varios caracteres
Y el comodín "?" sustituye al carácter que esta en esa posición.
Tipos de archivos
Existen dos tipos de archivos:
Los archivos ejecutables que funcionan por si mismo relativamente ya que suelen necesitar de otros archivos para funcionar , lo mas normal es que si descargamos algun archivo nos venga el ejecutable y otro tipos de archivos de datos.
Estan los archivos "Datos" que llevan la informacion para los ejecutables.
Algunos tipos son:
- Sistema:(.cat .ini)
- Audio: (mp3 , WMA)
- Video: (mp4 , AVI, MOV)
- Comprimidos: (rar , zip)
- Imagenes: (JPG , PNG)
- Texto: (DOC , PDF)
- Imagenes de cd/dvd: ( ISO)
- Programas: (doc , ai , xls)
Directorios
Los directorios son una división lógica del almacenamiento , es decir un contenedor virtual. Tienen una forma jerárquica en árbol es decir , si por ejemplo nosotros queremos llegar a un archivo dentro una carpeta en windows c pues primero tendremos que ir a windows C luego a dicha carpeta y luego al archivo en concreto es decir:
C:\archivos de programa(x86)\Adobe\Reader 10.0
En linux se representaria con la barrita / y en windows con \
Las rutas relativas no incluyen el primer carácter es decir cuando nosotros estamos en una misma carpeta y queremos buscar un archivo dentro del directorio pues buscaremos poniendo un punto , y si queremos buscar algo haciendo referencia al directorio padre pondremos dos puntos.
Los directorios tienen una serie de atributos al igual que las carpetas ,
- H: oculto
- R: solo lectura
- A: archivo
- Fecha y hora
- En linux tambien tienen el atributo propietario
- En windows si estan o no comprimidos (zip , rar)
La implementación del sistema de archivos
Los sistemas de archivos están compuestos por un numero determinado de sectores asociados a un archivo , todo esto en su conjunto se llama bloque.
Los bloques se asignan enteros al archivo , es decir no puedes tener medio bloque asignado a un archivo y otro medio a otro. Si el tamaño del bloque es muy grande se pierde capacidad de almacenamiento pero cuando el bloque es muy pequeño , sera costoso poder leer la información que contiene.
Asignación de bloques asociados
- Se pueden asignar de forma adyacente : uno detrás de otro de una forma continuada .
- Se puede asignar en forma de lista ligada
- Se puede asignar mediante una lista ligada y un indice.
Los sistemas de archivos mas comunes o conocidos son:
Los FAT (file allocation table): se denomina así a la tabla de registros de windows , que puede trabajar en fat16 o fat32 .
NTFS en este sistema de archivos no hay áreas de disco reservadas para datos como en fat. Todos los datos están en archivos y contiene la MFT(Master file table) también en un archivo.
Inodos , sistema de archivos perteneciente a linux , trabaja con tabla con los bloques + bloques indirectos. Cuando linux abre un archivo carga en memoria su inodo.
Tipos de sistemas de archivos.
Fat 16:
- Usado en windows 9x , NT , 2000 , xp , vista
- Permitia particiones de hasta 2 gb
- Permitia volumenes de hasta 2 gb
- Unidades de asignacion de 32 KB
- Tamaño maximo de un archivo 2 GB
- No distinguia entre mayusculas y minisculas
- No soporta dominios
Fat 32:
- Usado en windows 9x , NT , 2000 , xp , vista , server 2003 y 2008
- Permitia particiones de hasta 2 gb
- Permitia volumenes de hasta 2 tb
- Unidades de asignacion de 4 KB
- Tamaño maximo de un archivo 4 GB
- No distinguia entre mayusculas y minisculas
- No soporta dominios
NTFS 5:
- Nombre de archivos de hasta 255 caracteres
- Reparto de unidades en varios discos
- Acceso a dominios
- Cuotas de disco
- Volumenes de hasta 16TB menos de 64KB
- Tamaño maximo de un arcihvo limitado por el volumen
- Distingue entre mayusculas y minusculas
- En windows server 2008 incluyo un proceso de reparacion.
ext3fs
- Uno de los mas eficientes y flexibles
- Exclusivo de linux
- Nombre de archivos hasta 256 caracteres
- Volumenes de hasta 32 TB
- Tamaño maximo de un archivo 2TB
- Distingue entre mayusculas y minusculas
- Registro de diario por si falla algo en la transaccion .
ext4fs
- Compatible con ext3fs
- Exclusivo de linux
- Nombre de archivos hasta 256 caracteres
- Volumenes de hasta 1 EB
- tamaño maximo de un archivo 16TB
- Distingue entre mayusculas y minusculas
- Registro diario.
HPFS
- En su origen para OS/2
- Resolvia problemas que tenia el FAT
- 256 caracteres como nombre de archivo
- volumenes de hasta 2 TB
- tamaño maximo de archivos 2GB
Transaccionales
- Se tienen que ejecutar como un conjunto de operaciones donde se tienen que ejecutar todas o ninguna.
- Al final se hace un rollback
- Ejemplo: Cajero automatico
- Ejemplo: Intalacion de un programa
- copiar ficheros
- borrar otros
- renombrar
- El estado siempre es coherente con el disco
Problemas con el sistema de archivos tradicional
- Sobreescriben los datos en el momento . Si falla el sistema a medias se queda incoherente.
- Antes se intentaba verificar el estado del sistema y este era un proceso costoso.
- Registro de diario: guarda las acciones aparte . Si el sistema se bloquease se volvería a hacer.
- Hoy día: sistema COW Copy on Write: copia por escritura , Primero se copiara los datos en otro bloque para revisar que sea correcto y luego se sobreescribiran.
- Ventajas:
- El estado del disco siempre es valido
- Copias de seguridad coherentes y fiables
- Deshacer las modificaciones es posible con este sistema de archivos.
Sistema de archivos distribuidos
permite que los directorios localizados en la red se puedan ver como un arbol de directorios de forma transparente.
Este sistema de archivos se usa si:
- Quieres 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 acceso web interno y externo
- Se utiliza NTFS
Sistema de archivos Cifrados
- Su función principal es almacenar archivos cifrados
- Cifrado: Le da una clave secreta a algún archivo
- Descifrado: Con la clave asignada descifra el archivo
- Agentes de recuperación: permite recuperar archivos cifrados.
Sistemas de archivos virtuales
- Capa de abstracción encima de un sistema de archivos
- Objetivo: Aplicaciones cliente tengan acceso a varios sistemas de archivos diferentes de manera uniforme
- Puente: Las aplicaciones acceden sin saber el sistema de archivos predeterminado.