Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OBJETIVO
Presentar al alumno los elementos bsicos que comprende el sistema de archivos contenido dentro del sistema operativo UNIX.
BOSQUEJO DE LA PRESENTACIN
Introduccin Sistemas de archivos Medios de almacenamiento del sistema de archivos Lista de i-nodos Tipos de archivos del sistema
SISTEMA DE ARCHIVOS
Mientras que un proceso se est ejecutando, puede almacenar una cantidad de informacin limitada dentro de su propio espacio de direcciones. Sin embargo, la capacidad de almacenamiento est restringida al tamao del espacio de direcciones virtual. En el caso de algunas aplicaciones, este tamao es adecuado, pero en el de otras, como las de reservaciones de lneas areas, las aplicaciones bancarias o las bases de datos corporativas, dicho tamao resulta excesivamente pequeo. Tales aplicaciones requieren que la informacin permanezca mucho tiempo.
TIPOS DE ARCHIVOS
En la siguiente figura se ilustra un archivo binario ejecutable sencillo tomado de una de las primeras versiones de UNIX. Aunque tcnicamente el archivo no es sino una secuencia de bytes, el sistema operativo slo ejecuta un archivo si ste tiene el formato correcto. El ejemplo tiene cinco secciones: encabezado, texto, datos, bits de reubicacin y tabla de smbolos. El encabezado comienza con lo que se conoce como un nmero mgico, que identifica al archivo como ejecutable.
Luego vienen enteros de 16 bits que indican los tamaos de los distintos componentes del archivo, la direccin en la que se inicia la ejecucin y algunos bits de banderas. Despus del encabezado vienen el texto y los datos del programa mismo. stos se encargan en la memoria y se reubican empleando los bits de reubicacin. La tabla de smbolos sirve para la depuracin.
SISTEMA DE ARCHIVOS
RESIDE
DISCOS
CINTAS
particiones
FSB
RPM
Este valor determina la velocidad a que los discos internos giran cada minuto. Su unidad de medida es: revoluciones por minuto (RPM). Este dato en discos duros IDE puede ser 4800 RPM, 5200 RPM y hasta 7200 RPM.
Max n dispositivos
Protocolo Cable Pines
En el interfaz ATA se permite conectar dos dispositivos por BUS. Para ello, de los dos dispositivos, uno tiene que estar como esclavo y el otro como maestro para que la controladora sepa a qu dispositivo enviar los datos y de qu dispositivo recibirlos. El orden de los dispositivos ser maestro, esclavo. Es decir, el maestro ser el primer dispositivo y el esclavo, el segundo. La configuracin se realiza mediante jumpers.
Cable de cinta plano de 40 hilos, posteriormente incrementado a 80 por seguridad. 40 (factor forma 3.5) o 44 (factor forma 2.5).Ver enlaces externos
Ground
Data 7 Data 8 Data 6 Data 9 Data 5
Data 15
Ground Key o VCC_in DDRQ Ground I/O write Ground I/O read Ground
Pin 4
Pin 5 Pin 6 Pin 7 Pin 8 Pin 9 Pin 10 Pin 11 Pin 12 Pin 13 Pin 14 Pin 15
Data 10
Data 4 Data 11 Data 3 Data 12 Data 2 Data 13 Data 1
Pin 25
Pin 26 Pin 27 Pin 28 Pin 29 Pin 30 Pin 31
IOC HRDY
Cable select DDACK Ground IRQ
Actualmente es una interfaz aceptada y estandarizada en las placas base de PC. La Organizacin Internacional Serial ATA (SATA-IO) es el grupo responsable de desarrollar, de manejar y de conducir la adopcin de especificaciones estandarizadas de Serial ATA. Los usuarios de la interfaz SATA se benefician de mejores velocidades, dispositivos de almacenamientos actualizables de manera ms simple y configuracin ms sencilla. El objetivo de SATA-IO es conducir a la industria a la adopcin de SATA definiendo, desarrollando y exponiendo las especificaciones estndar para la interfaz SATA.
SATA II
3000 MHz 1 80% 8 300 MB/s
SATA III
6000MHz 1 80% 8 600 MB/s
Fue estandarizado a mediados de 2004, con definiciones especficas de cables, conectores y requisitos de la seal para unidades eSATA externas. eSATA se caracteriza por:
Velocidad de SATA en los discos externos (se han medido 115 MB/s con RAID externos) Sin conversin de protocolos de PATA/SATA a USB/Firewire, todas las caractersticas del disco estn disponibles para el anfitrin. La longitud de cable se restringe a 2 metros; USB y Firewire permiten mayores distancias. Se aument la tensin de transmisin mnima y mxima a 500mV - 600mV (de 400 mV - 600 mV)
Actualmente, la mayora de las placas bases han empezado a incluir conectores eSATA, tambin es posible usar adaptadores de bus o tarjetas PC Card y CardBus para porttiles que an no integran el conector.
masivo interno
Historia de produccin
Diseado en Sustituye a
Conectable en caliente
Externo
Cable Pines
Pin 1
Masa Transmisin diferencial + Transmisin diferencial Masa Recepcin diferencial Recepcin diferencial + Masa
Pin 2
Pin 3 Pin 4 Pin 5 Pin 6 Pin 7
LA TABLA DE PARTICIONES
La tabla de particiones est alojada en el MBR (del ingls Master Boot Record) a partir del byte 446 del MBR y ocupa 64 bytes, conteniendo 4 registros de 16 bytes, los cuales definen las particiones primarias. En ellos se almacena toda la informacin bsica sobre la particin: si es arrancable, si no lo es, el formato, el tamao y el sector de inicio.
Estructura de entradas de la Tabla de Particiones
Es una estructura de datos de 64 bytes que define la forma en que un disco duro est dividido en secciones lgicas, conocidas como particiones.
Offset +OOh +01h +02h +04h +05h +06h +08h +0Ch Naturaleza Status de particin 00h = no activa 80h = Particin de Boot Inicio de particin : Cabecera Inicio de particin : Cilindro - Sector Tipo de particin Fin de particin : Cabecera Inicio de particin : Cilindro - Sector Nmero de sectores entre el MBR y el 1er sector de la particin Nmero de sectores en la particin Size 1 byte 1 byte 1 palabra 1 byte 1 byte 1 palabra 4 bytes 4 bytes
LA TABLA DE PARTICIONES
Naturaleza Status de particin 00h = no activa 80h = Particin de Boot Inicio de particin : Cabecera Inicio de particin : Cilindro - Sector Tipo de particin Fin de particin : Cabecera Inicio de particin : Cilindro - Sector Nmero de sectores entre el MBR y el 1er sector de la particin Nmero de sectores en la particin
Size
PARTICIONES GUID
Dentro de los discos bsicos existe una nueva modalidad en lugar de estar basado en el clsico MBR, est basado en tablas de particiones GUID. Esta tabla de particiones es una nueva implementacin de Intel basada en itanium cuyas limitaciones son bastantes menos restrictivas que las actuales basadas en inicio MBR. Las tablas de particiones basadas en GUID admiten hasta 128 particiones primarias de 18 exabytes, y no existen las particiones extendidas. Mientras que en las tablas de particiones MBR el lmite como hemos visto est en cuatro primarias o bien tres primarias y una extendida, siendo el lmite mximo de cada particin de dos terabytes.
PARTICIONES GUID
Para trabajar con particiones GUID y discos GPT es necesario tener la versin de Windows XP de 64 bits, y naturalmente que el hardware que se compre tenga esas caractersticas. Tabla de particin Guid (GPT) es un estndar para la colocacin de la Tabla de Particiones en un disco duro fsico. Es parte del estndar Extensible Firmware Interface (EFI) propuesto por Intel para reemplazar la vieja Bios del PC, heredada del IBM PC original. La GPT sustituye al Master Boot Record (MBR) usado con la BIOS.
http://es.wikipedia.org/wiki/Tabla_d e_partici%C3%B3n_GUID
FORMATO A UN DISCO
Cuando un disco se fabrica por primera vez, ste se divide en sectores y pistas desde fbrica, que el controlador puede leer y escribir. Dicho proceso se conoce como formato a bajo nivel o formato fsico. Dicho formato llena el disco con una estructura de datos especial por cada sector. La estructura de datos para un sector tpico consiste de una cabecera, un rea de datos (por lo regular de 512 bytes), y una parte trasera. Tanto la cabecera como la parte trasera contienen informacin que el controlador de disco utiliza, tal como el nmero de sectores y un cdigo de correccin de errores (CCE). Cuando el controlador escribe un sector de datos durante una operacin de I/O normal, el CCE es actualizado con el valor calculado de todos los bytes en el rea de datos. Cuando el sector es ledo, el CCE se recalcula y se compara con el valor almacenado. Si ambos nmeros son diferentes, esta discrepancia indica que el rea de datos se ha corrompido y que el sector del disco puede estar mal. EL CCE puede encargarse de realizar la reparacin del error, tras lo cual se reporta un error suave. El controlador realiza la tares del CCE cada vez que un sector se escribe o se lee. ID Information: Dentro de cada sector se deja un pequeo espacio para identificar el nmero de sector y su lugar dentro del disco, el cual se utiliza para localizar a dicho sector dentro de dicho disco y poder otorgar el estado del mismo. Por ejemplo, un simple bit se utiliza para indicar si el sector ha sido marcado como defectuoso o bien reasignado. Synchronization Fields: Son utilizados internamente por el controlador de dispositivo para guiar el proceso de lectura. Data: El dato actual en el sector. ECC: Cdigo corrector de error utilizado para asegurar la integridad de los datos. Gaps: Por lo regular conocido como espaciadores los cuales se utilizan para separar reas de sectores y otorgar tiempo que el controlador procese lo que ha ledo antes del procesamiento de datos adicionales.
bloque de boot
Primer sector, puede contener el cdigo de arranque, el cual se encarga de carga al Sistema Operativo en memoria
superbloque
Describe el estado de un sistema de archivos. Contiene informacin de su tamao, numero total de archivos, el espacio disponible, etc.
lista de i-nodos
Tiene una entrada para cada archivo, que guarda la descripcin del mismo: ubicacin en el disco, propietario, permisos de acceso, fecha de actualizacin. El administrador especifica su tamao.
Bloque de datos
Ocupan el resto del sistema de archivos. Se encuentra el contenido de los archivos a los que hace referencia la lista de i-nodos. Cada bloque por cada archivo.
EL SUPERBLOQUE
En algunos sistemas en el archivo de cabecera <sys/filsys.h> se encuentra declarada una estructura en C que describe el significado del contenido del superbloque. El superbloque contiene entre otras cosas, la siguiente informacin: 1) Tamao del sistema de archivos 2) Lista de bloques libres disponibles 3) ndice del siguiente bloque libre en la lista de bloques libres 4) Tamao de la lista de i-nodos 5) Lista de i-nodos libres 6) ndice del siguiente i-nodo en la lista de i-nodos libres 7) Campos de bloqueo de elementos de las listas de bloques libres y de i-nodos libres. Campos que se utilizan cuando se realiza una peticin de bloques de i-nodo libre. 8) Indicador que informa si el superbloque ha sido modificado o no.
Cada vez que, desde un proceso, se accede a un archivo, es necesario consultar el superbloque y la lista de i-nodos. Por cuestiones de tiempo de acceso, el sistema mantiene en memoria una copia del superbloque y de la lista de i-nodos.
EL SUPERBLOQUE
En el archivo de cabecera <sys/ino.h> se declara la estructura en C struct dinode que describe la informacin de un i-nodo. Los campos que componen a un i-nodo son los siguientes: 1) Identificador del propietario del archivo. La posicin se divide entre un propietario individual y un grupo de propietarios y define el conjunto de usuarios que tienen derecho al acceso sobre el archivo. El super usuario tiene el derecho de acceso a todos los archivos del sistema.
4) Tiempos de acceso al archivo. Da informacin sobre la fecha de la ltima modificacin al archivo, la ltima vez que se accedi a l y la ltima vez que se modificaron los datos de su i-nodo.
5) Nmero de enlaces del archivo. Representa el total de los nombres que el archivo tiene en la jerarqua de directorios. Un archivo puede tener asociados diferentes nombres que correspondan a diferentes rutas y a travs de los cuales se accede a un mismo i-nodo y por consiguiente a los mismos bloques de datos. 6) Tamao del archivo. Los bytes de un archivo se pueden direccionar indicando un desplazamiento a partir de la direccin de inicio del archivo. El tamao es igual al desplazamiento del byte ms alto, incrementando en una unidad.
LA VELOCIDAD LINEAL CONSTANTE. Un aspecto importante a considerar est en el * = 1474560 bytes hecho de que para conservar la misma taza de transferencia de informacin de la unidad de disco a la computadora, para ello
2 caras
FRAGMENTACIN INTERNA ocurre cuando un archivo no ocupa por completo un bloque. Por ejemplo, si tenemos un archivo de 10K y un tamao de bloque de 8K, el sistema de archivos asignar dos bloques para alojar el archivo, pero 6K del segundo bloque se desaprovecharn. Ntese que a mayor tamao de bloque mayor ser el espacio desperdiciado. FRAGMENTACIN EXTERNA ocurre cuando los bloques lgicos que forman un archivo se encuentran esparcidos por todo el disco (no estn contiguos). Este tipo de fragmentacin produce un bajo rendimiento.
archivo A
archivo B
archivo C
10
20
30
40
archivo A
libre
archivo C
archivo B
10
20
30
40
55
ASIGNACIN CONTIGUA
Bloque de archivo 0
Bloque de archivo 1
Bloque de archivo 2
Bloque de archivo 3
Bloque de archivo 4
10 11 7 3 2
Bloque fsico
10
12
Archivo B
Bloque de archivo 1
Bloque de archivo 2
Bloque de archivo 3
Bloque de archivo 4
12 14 0 0
Bloque no utilizado
Bloque fsico
11
14
TAMAO DE BLOQUE
La curva continua (escala de la izquierda) da la taza de datos en un disco. La curva de guiones (escala de la derecha) da la eficiencia de espacio de disco. Todos los archivos son de 1K. Una buena utilizacin del espacio (tamao de bloque <2K) implica tasas de datos bajas y viceversa. La eficiencia del tiempo y la eficiencia de espacio estn inherentemente en conflicto.
Bloque 1 de 1 Kbyte
Bloque 2 de 1 Kbyte
Bloque 10 de 1 Kbyte
Entrada Indirecta doble.- Contiene la direccin de un bloque cuyas entradas actan como entradas indirectas simples.
Entrada Indirecta triple.- Contiene la direccin de un bloque cuyas entradas actan como entradas indirectas dobles.
Suponga la siguiente situacin de un sistema de archivos, cada inodo tiene: capacidad para 10 direcciones directas 1 entrada indirecta simple 1 entrada indirecta doble 1 entrada indirecta tripe El tamao del bloque es 512 bytes y una direccin requiere 4 bytes(32 bits), por lo que un bloque de datos puede almacenar 512/4 = 128 direcciones. Cul es el tamao mximo que puede tener un archivo en este sistema ?
Resumen detallado
Tipo de Entrada 10 entradas directas 1 entrada indirecta simple 1 entrada indirecta doble
Total de bloques accesibles 10 bloques de datos 1 bloque indirecto simple = 128 bloques de datos 1 bloque indirecto doble = 128 bloques indirectos simples = 128*128=16384 bloques de datos 1 bloque indirecto triple = 128 bloques indirectos dobles = 128*128 bloques indirectos simples = 128*128*128 = 2097152 bloques de datos TAMAO MAXIMO
Nos permiten darle una estructura jerrquica a los sistemas de archivos de UNIX. Su funcin consiste en establecer la relacin que existe entre el nombre del archivo y su i-nodo correspondiente.
DE DISPOSITIVOS
Se utilizan para que los procesos se comuniquen con los dispositivos perifricos: discos, cintas, impresoras, terminales, redes, etc.
TUBERAS
Archivo con una estructura similar a la de uno ordinario con la diferencia es que stos son transitorios. Lo que quiere decir, que los datos desaparecen de la tubera conforme son ledos.
ARCHIVOS ORDINARIOS
Operaciones que se realizan con los datos de un archivo: a)Leer o escribir cualquier byte del archivo. b)Aadir bytes al final del archivo, con lo que aumenta su tamao.
c)Truncar el tamao de un archivo a cero bytes. Esto es como si se borrara el contenido del archivo.
Las siguientes operaciones no son permitidas: a)Insertar bytes en un archivo, excepto al final. Pero si se pueden modificar los bytes existentes. b)Borrar bytes de un archivo. No confundir con la puesta a cero de los existentes.
Los archivos ordinarios, como tales, no tienen nombre y el acceso a ellos se realiza a travs de los i-nodos.
DIRECTORIOS
Los directorios son los archivos que permiten darle una estructura jerrquica a los sistemas de archivos de UNIX. Su funcin consiste en establecer la relacin que existe entre el nombre de un archivo y su i-nodo correspondiente.
ESTRUCTURA TPICA
Un directorio es un archivo cuyos datos estn organizados como una secuencia de entradas, cada una de las cuales contiene un nmero de i-nodos y el nombre de un archivo que pertenece al directorio. Al par [i-nodo] <-> [nombre de archivo] se le conoce como enlace y pueden haber varios nombres de archivos distribuidos por la jerarqua de directorios que estn enlazados con un mismo i-nodo. El tamao de cada entrada es de 16 bytes; dos dedicados al i-nodo y 14 dedicados al nombre del archivo.
16
32 48 64
1 1 4 7 14 9 6 8
6 1
132
19 30 51 26 45
DIRECTORIOS
Los procesos pueden leer el contenido de un directorio como si se tratase de un archivo de datos, pero no pueden modificarlo. Los permisos de acceso a un directorio tienen los siguientes significados:
a) Lectura, permite que un proceso lea ese directorio. b) Escritura, permite a un proceso crear una nueva entrada en el directorio o borrar alguna ya existente. Esto deber hacerlo a travs de las llamadas: creat, mknod, link o unlink. c) Ejecucin, autoriza a un proceso para buscar el nombre de un archivo dentro del directorio.
IMPLEMENTACIN DE DIRECTORIOS
Antes de poder leer un archivo, hay que abrirlo. Cuando se abre un archivo, el sistema operativo usa el nombre de ruta proporcionado por el usuario para localizar la entrada de directorio. Esta entrada proporciona la informacin necesaria para encontrar los bloques de disco. DIRECTORIO DE MSDOS En el caso de los directorios de MS-DOS que es un ejemplo de sistemas con rboles de directorios jerrquicos. Se muestra a continuacin la entrada de directorio de MS-DOS, la cual contiene 32 bytes de longitud y contiene el nombre del archivo, los atributos y el nmero del primer bloque del disco. El primer nmero de bloque se emplea como ndice de una tabla del tipo de la figura a la derecha. Siguiendo la cadena, se pueden encontrar todos los bloques.
Bytes Bloque fsico 0 1 2 3 4 5 6 7 8 9 10
10 11 7 3 2
11
12 13 14 15
12 14 0 0
Bloque no utilizado
8 Nombre de archivo
10
4
Tamao
Extensin
Atributos
Reservado
Hora Fecha
ARCHIVOS ESPECIALES
Estos archivos se utilizan para que los procesos se comuniquen con los dispositivos perifricos: archivos modo bloque (discos, cintas) y archivos modo carcter (terminales serie y las lneas de la impresora). Cada dispositivo debe de tener su propio manejador.
ARCHIVOS COMUNES
ARCHIVOS DE DISPOSITIVO
i-nodo
Estos nmeros los utiliza el ncleo para buscar dentro de unas tablas BDST (Block Device Switch Table) y CDSW (Character Device Switch Table) una coleccin de rutinas que permiten manejar el dispositivo.
PROCESO A
Tubera
PROCESO B
La tuberas se utilizan para comunicar procesos. Los datos siguen se escriben y leen bajo el formato FIFO. La sincronizacin es tarea del ncleo del sistema. El almacenamiento slo se realiza de forma directa del bloque del i-nodo.
La ejecucin de la lnea anterior implica la ejecucin de dos procesos, el resultado de uno de ellos se complementa con el otro.
Cul es el resultado que se obtendr?
PROCESO A
ls enva
Tubera
sort r lee
PROCESO B
Tono ininterrumpido
Tonos cortos y seguidos 1 tono largo 1 tono largo y 1 corto 1 tono largo y 2 cortos 1 tono largo y 3 cortos 2 tonos largos y 1 corto 2 tonos cortos 3 tonos cortos 4 tonos cortos 5 tonos cortos 6 tonos cortos 7 tonos cortos 8 tonos cortos 9 tonos cortos 10 tonos cortos
300399
400499 500599 600699 700799 900999 10001099 11001299 13001399
Keyboard
Monochrome display Color/graphics display Floppy-disk drive or adapter Math coprocessor Parallel printer port Alternate printer adapter Asynchronous communication device, adapter, or port Game port
14001499
15001599
Color/graphics printer
Synchronous communication device, adapter, or port
El programa inicial bootstrap inicializa todos los aspectos del sistema, desde los registros del procesador hasta los controladores de dispositivos y el contenido de la memoria principal, tras lo cual inicia el sistema operativo. Para ello encuentra al kernel del sistema operativo en el disco, lo carga en memoria, y salta a la direccin inicial para comenzar la ejecucin del sistema operativo. Dicho bootstrap se almacena en la memoria ROM. Una alternativa a lo anterior es que una parte pequea del bootstrap se almacena en la ROM, la cual tiene como trabajo saltar al programa bootstrap completo que se encuentra en el disco. Dicho cdigo se almacena en los bloques de inicio del sistema operativo, y por lo tanto puede ser modificado ms fcilmente que el almacenado de manera completa en la ROM.
MBR
TABLA DE PARTICIN
PARTICIN 1
d) Se carga luego entonces la particin de arranque del sistema y dems controladores de dispositivos.
a) El cdigo en la ROM instruye al controlador de disco a leer los bloques de arranque a memoria y ejecuta el cdigo
PARTICIN 4
e) Se inicializa sistema
el
b) Windows 2000 coloca su cdigo de arranque en el MBR, considerando adems que el disco puede estar dividido en varias particiones
c) Se lee y ejecuta el pequeo cdigo almacenado en el MBR (contenido en los primeros 440 bytes)
nota
En las versiones anteriores del sistema operativo Windows que se ejecutan en un equipo basado en el sistema bsico de entrada/salida (BIOS, Basic Input/Output System), como Windows XP, el proceso de arranque se inicia con el BIOS del sistema. El BIOS determina el dispositivo de arranque y, despus, carga el primer sector fsico. Este sector fsico se conoce como el registro de arranque maestro (MBR, Master Boot Record). El MBR contiene la tabla de particiones y el cdigo de ejecucin de arranque necesario. Este cdigo busca en la tabla de particiones las particiones activas y pasa el control al sector de arranque en la particin activa. Despus, el sector de arranque de la particin activa carga el programa Ntldr.exe. El programa Ntldr.exe analiza el archivo Boot.ini. Este archivo se usa para enumerar los sistemas operativos que estn instalados.
LA FAT 32 DE MS-DOS
http://en.wikipedia.org/wiki/File_Allocation_Table
BOOT SECTOR
TABLA DE ARCHIVOS
La tabla de archivos es una estructura global del ncleo y en ella existe una entrada por cada archivo distinto que los procesos del ncleo o los procesos del usuario tienen abiertos. Cada vez que un proceso abre o crea un archivo nuevo, se reserva una nueva entrada en la tabla. Las operaciones que se deben implementar por cada tipo ce archivo son: Funciones para leer y escribir en un archivo. Una funcin para realizar la multiplexacin sncrona de la E/S,. Una funcin para controlar los modos de E/S, ioctl. Una funcin para cerrar el archivo. close.
Generalmente, un descriptor de archivo es una clave a una estructura de datos residente en el ncleo, que contiene detalles de todos los archivos abiertos. En POSIX, esta estructura de datos se llama "tabla de descriptores de archivos", y cada proceso tiene la suya. La aplicacin que lanza un usuario pasa al ncleo la clave abstracta mediante una llamada al sistema, y el ncleo tendr acceso al archivo a nombre de la aplicacin, que se basar en la clave. Esa misma aplicacin no puede acceder a la tabla de descriptores de archivo directamente, ni para leer ni para escribir. En los sistemas Unix, los descriptores de archivo se pueden referir a archivos, directorios, dispositivos de bloques o dispositivos de caracteres (tambin llamados "archivos especiales"), sockets, FIFOs (tambin llamados "tuberas con nombre") o tuberas sin nombre.
Suponga que un segundo proceso ejecuta el siguiente cdigo: fd1= open("/etc/passwd", O_RDONLY); fd2 =open("private", O_RDONLY);
Como se ve en la figura cada open crea una entrada en la tabla de descriptores y en la tabla de archivos abiertos. Pero en la tabla de inodos slo se incrementa el contador de archivos abiertos.
La estructura fsica de Ext2fs est fuertemente influenciada por la distribucin (layout) del sistema de ficheros BSD [McKusic et al. 1984]. Un sistema de archivos se compone de grupos de bloques. Los grupos de bloques son anlogos a los grupos de cilindros. Sin embargo los grupos de bloques no se encuentran atados a la disposicin fsica de los bloques en el disco.
Ext2fs divide el disco en pequeas unidades lgicas llamadas bloques. El ext2 divide las particiones lgicas que ocupa en Grupo de Bloques (BG), conjuntos de bloques secuenciales. Dichos grupos reducen la fragmentacin de disco
Todos los grupos de bloques en el sistema de archivos tienen el mismo tamao y son almacenados de forma secuencial.
Como resultado, la mayor parte de la gestin del sistema de ficheros se reduce a la gestin de un slo grupo de bloques.
Usar grupos de bloques es un gran avance en trminos de fiabilidad: el hecho de guardar una copia de las estructuras de control superbloque y tabla de descriptores en cada grupo facilita la recuperacin del FS ante una corrupcin del superbloque, si ocurre una corrupcin de datos y el super bloque principal o los descriptores de bloque principal en el grupo de bloque 0 son invlidos, el administrador del sistema puede indicar a la aplicacin e2fsck que se refiera a dopias del superbloque de otro grupos de bloque. Tambin ayuda a alcanzar un buen rendimiento: reduciendo la distancia entre la tabla de inodos y los bloques de datos es posible reducir las bsquedas de las cabezas de los discos.
TABLA DE i-nodos
Consiste de una serie de bloques consecutivos, cada uno de los cuales contiene un nmero predefinido de i-nodos. El nmero de bloque del primer bloque de la tabla de i-nodo es almacenado en el campo bg_inode_table del grupo descriptor. Todos los i-nodos tienen el tamao de 128 bytes. Un bloque de 1024 bytes contiene 8 inodos, mientras que un bloque de 4k contiene 32 i-nodos, varios campos controlan esta informacin.
TIPOS DE ARCHIVOS
DIRECTORIOS
El superbloque es un bloque que contiene la informacin ms relevante y describe al sistema de ficheros. Se encuentra en el offset fijo 1024 del disco y ocupa 1024 bytes.
370/* 371 * Structure of the super block 372 */ 373struct ext2_super_block { 374 __le32 s_inodes_count; /* Inodes count */ 375 __le32 s_blocks_count; /* Blocks count */ 376 __le32 s_r_blocks_count; /* Reserved blocks count */ 377 __le32 s_free_blocks_count; /* Free blocks count */ 378 __le32 s_free_inodes_count; /* Free inodes count */ 379 __le32 s_first_data_block; /* First Data Block */ 380 __le32 s_log_block_size; /* Block size */ 381 __le32 s_log_frag_size; /* Fragment size */ 382 __le32 s_blocks_per_group; /* # Blocks per group */ 383 __le32 s_frags_per_group; /* # Fragments per group */ 390 __le16 s_state; /* File system state */ 391 __le16 s_errors; /* Behaviour when detecting errors */ 392 __le16 s_minor_rev_level; /* minor revision level */ 393 __le32 s_lastcheck; /* time of last check */ 394 __le32 s_checkinterval; /* max. time between checks */ 395 __le32 s_creator_os; /* OS */ 396 __le32 s_rev_level; /* Revision level */ 397 __le16 s_def_resuid; /* Default uid for reserved blocks */ 398 __le16 s_def_resgid; /* Default gid for reserved blocks */ 384 __le32 s_inodes_per_group; /* # Inodes per group */ 385 __le32 s_mtime; /* Mount time */ 386 __le32 s_wtime; /* Write time */ 387 __le16 s_mnt_count; /* Mount count */ 388 __le16 s_max_mnt_count; /* Maximal mount count */ 389 __le16 s_magic; /* Magic signature */
Los directorios en Ext2fs son listas enlazadas con entradas de longitud variable. Cada entrada contiene el nmero de inodo, la longitud de la entrada, el nombre de archivo y su longitud. La estructura de un directorio se muestra a continuacin:
Por lo regular, si el nombre de la trayectoria de un enlace simblico tiene hasta 60 caracteres, stos son almacenados en el campo i_block del i-nodo, el cual consiste de un arreglo de 15 enteros de 4 bytes; por lo que no se requieren bloques de datos, si el nombre de la trayectoria es mayor a 60 si se requiere 1 bloque. Los archivos de dispositivo, tubera y sockets no requieren bloques. Toda la informacin se almacena en el i-nodo.
La siguiente tabla muestra cada tipo de datos relacionado al sistema de archivos Ext2 y los archivos, la estructura de datos utilizada sobre el disco para representar sus datos, la estructura de datos utilizada por el kernel en memoria, y la regla de utilizada para determinar cuantos almacenamiento en cach es utilizado.
Estructuras de directorio. Bloques libres de disco. Descriptores de archivo (tamao, fecha de modificacin...)
El hecho de que no se suela implementar el journaling de los datos concretos de un archivo suele carecer de importancia, puesto que lo que persigue el journaling de sistemas de archivos es evitar los engorrosos y largos chequeos de disco que efectan los sistemas al apagarse bruscamente, ya que el sistema al arrancar solo deber deshacer el journal para tener un sistema coherente de nuevo.
Solo 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. Es el sistema por defecto en la mayora de las distribuciones de Linux. Si hay un error de tensin o kernel Panic cuando el archivo se est escribiendo o est empezando, el diario indicar que el nuevo archivo o el intento no ha sido pasado, por lo que ser purgado por el proceso de limpiado.
Solo los metadatos son registrados en el diario, el contenido de los archivos no. Los contenidos pueden estar escritos antes o despus de que el diario se actualice. Como resultado, los archivos modificados correctamente antes de una ruptura pueden volverse corruptos. Por ejemplo, un archivo pendiente de ser marcado en el diario como mayor de lo que actualmente es, convirtiendo en basura al final de la comprobacin. Las versiones antiguas de los archivos pueden aparecer inesperadamente despus de una recuperacin de diario. La carencia de sincronizacin entre los datos y el diario es rpidamente subsanada en muchos casos. JFS usa este nivel de journaling, pero se asegura de que cualquier basura es borrada al reiniciar.
No hay herramienta de desgragmentacin online para ext3 que funcione en nivel del sistema de archivos. Existe un desfragmentador offline para ext2, e2defrag, pero requiere que el sistema de archivos ext3 sea reconvertido a ext2 antes de iniciarse. Pero dependiendo de los bits encendidos en el sistema, e2defrag puede destruir datos. No sabe como tratar la mayora de las nuevas caractersticas de ext3. Hay herramientas de usuario para desfragmentar como Shake y Defrag. Shake trabaja localizando para todo el archivo como una operacin, lo que generalmente causa que el localizador encuentre espacio continuo en el disco. Tambin intenta escribir archivos usados al mismo tiempo que otros. Defrag trabaja copiando cada archivo sobre s mismo. De todas formas solo funcionan si el sistema de archivos esta razonablemente vaco. No existe una verdadera herramienta de desfragmentacin para ext3.
Ventajas
El sistema de archivos Ext3 alcanza un mximo de 32 TB (TIB), y una longitud de los archivos de 2 TB, pero los lmites, en la realidad, pueden ser inferiores a stos y estn en funcin de la arquitectura y configuracin de un sistema determinado, tal vez un mnimo de 2TB en el sistemas de archivos y 16 GB en la longitud de loa archivos. Ext4, por el contrario, permite que los sistemas de archivos lleguen hasta 1024 (PetaBytes), o 1 (ExaByte), y archivos de hasta 16 TB. Esto puede no ser importante (por ahora) para la computadora de escritorio o un servidor de medios, pero es importante para los usuarios con los arrays de disco de gran tamao. Un extents es una forma de mejorar la eficiencia de los descriptores de archivo en el disco, reduciendo los tiempos de acceso a archivos de gran tamao, entre otras cosas. Si una aplicacin requiere asignar espacio en disco antes de utilizarla, la mayora de los sistemas de archivos lo hacen pero escribiendo 0s en el espacio de disco que an no es utilizado. Ext4 permite la preasignacin sin hacer esto, lo que puede mejorar el rendimiento de algunas herramientas de multimedia y en base de datos. Ext4 puede retrasar la asignacin de espacio en disco hasta el ltimo momento, lo que puede mejorar el rendimiento. Ext3 slo puede contener 32.000 subdirectorios dentro de un directorio, en ext4 este lmite ha sido eliminado. Ext4 aade una suma de comprobacin de los datos de diario, lo que mejora la fiabilidad y el rendimiento. Ext4 adds a checksum to the journal data, which improves reliability and performance.
Mas subdirectorios
Verificacin tipo checksum De-fragmentacin lnea en
Aunque ext3 no es propenso a la fragmentacin excesiva, los archivos almacenados en ella pueden llegar a ser al menos un poco fragmentado. Ext4 aade soporte para la desfragmentacin en lnea, lo que debe mejorar el rendimiento general.
Nanosecond timestamps
La mayora de los sistemas de archivos, incluyendo ext3, incluyen los datos de fecha y hora que son precisas en un segundo. Ext4 extiende la exactitud de estos datos a un nanosegundo. Algunas fuentes tambin indican que el ext4 brinda apoyo a fechas del 25 de abril 2514, contra el 18 de enero 2038, para ext3.
INVESTIGACIN
Cmo se realiza la administracin del sistema de archivos? Qu son las particiones del disco? Qu implica dar formato a un disco? Cmo se construye un sistema de archivos? Cmo se comprueba el estado de un sistema de archivos? Cmo se monta y desmonta un sistema de archivos?
CONCLUSIONES
Un sistema de archivos es un mecanismo de abstraccin de los dispositivos fsicos de almacenamiento que nos permite manejarlos a un nivel lgico sin la necesidad de conocer su arquitectura hardware particular. Existen CUATRO partes importantes que componen a un sistema de archivos dentro de la unidad de almacenamiento correspondiente: .bloques de boot, superbloque, lista de i-nodos y bloques de datos. Para conseguir tamaos del i-nodo pequeo y a la vez gestionar archivos grandes, las entradas de direcciones del i-nodo se ajustan a un esquema de entradas directas, indirectas simples, indirectas dobles e indirectas triples.
El subsistema de archivos controla los recursos del sistema de archivos y tiene funciones como reservar espacio para los archivos, administrar el espacio libre, controlar el acceso a los archivos, permitir el intercambio de datos entre los archivos y el usuario, etc.
Los directorios son los archivos que permiten darle una estructura jerrquica a los sistemas de archivos de UNIX. Su funcin consiste en establecer la relacin que existe entre el nombre de un archivo y su i-nodo correspondiente.
http://www.clubdelphi.com/trucos/index.php?id=356