El Sistema de Archivos de Unix

86
El sistema operativo UNIX El sistema de archivos Expositor: José Luis Oropeza Rodríguez México D. F., a 06 de agosto 2007

Transcript of El Sistema de Archivos de Unix

Page 1: El Sistema de Archivos de Unix

El sistema operativo UNIX El sistema de archivos

Expositor: José Luis Oropeza Rodríguez

México D. F., a 06 de agosto 2007

Page 2: El Sistema de Archivos de Unix

OBJETIVO

• Presentar al alumno los elementos básicos que comprende el sistema de archivos contenido dentro del sistema operativo UNIX.

BOSQUEJO DE LA

PRESENTACIÓN

• Introducción

• Sistemas de archivos

• Medios de almacenamiento del sistema de archivos

• Lista de i-nodos

• Tipos de archivos del sistema

Page 3: El Sistema de Archivos de Unix

SISTEMA DE CÓMPUTO DE ESCRITORIO

Page 4: El Sistema de Archivos de Unix
Page 5: El Sistema de Archivos de Unix

SISTEMA DE ARCHIVOS Mientras que un proceso se esté

ejecutando, puede almacenar

una cantidad de información

limitada dentro de su propio

espacio de direcciones. Sin

embargo, la capacidad de

almacenamiento está restringida

al tamaño del espacio de

direcciones virtual. En el caso de

algunas aplicaciones, este

tamaño es adecuado, pero en el

de otras, como las de

reservaciones de líneas aéreas,

las aplicaciones bancarias o las

bases de datos corporativas,

dicho tamaño resulta

excesivamente pequeño. Tales

aplicaciones requieren que la

información permanezca mucho

tiempo.

Page 6: El Sistema de Archivos de Unix

LOS SISTEMAS DE ARCHIVOS

SOLUCIONAN LOS PROBLEMAS DE:

1.Debe ser posible almacenar gran cantidad de información.

2.La información debe sobrevivir a la terminación del procesa que la usa.

3.Múltiples procesos deben poder acceder a la información de forma

concurrente.

NOMBRES DE

ARCHIVOS

TIPOS DE ACCESOS A ARCHIVOS

ast

jim

bin

etc lib usr tmp

bin etc lib usr tmp

ast jim IMPLEMENTACIÓN DEL

SISTEMA DE ARCHIVOS

Page 7: El Sistema de Archivos de Unix

TIPOS DE ARCHIVOS En la siguiente figura se ilustra un archivo binario ejecutable sencillo tomado de una de las

primeras versiones de UNIX. Aunque técnicamente el archivo no es sino una secuencia de

bytes, el sistema operativo sólo ejecuta un archivo si éste tiene el formato correcto. El

ejemplo tiene cinco secciones: encabezado, texto, datos, bits de reubicación y tabla de

símbolos. El encabezado comienza con lo que se conoce como un número mágico, que

identifica al archivo como ejecutable.

Luego vienen enteros de 16 bits

que indican los tamaños de los

distintos componentes del archivo,

la dirección en la que se inicia la

ejecución y algunos bits de

banderas. Después del encabezado

vienen el texto y los datos del

programa mismo. Éstos se

encargan en la memoria y se

reubican empleando los bits de

reubicación. La tabla de símbolos

sirve para la depuración.

Page 8: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE DIFERENTES

SISTEMAS DE ARCHIVOS

Page 9: El Sistema de Archivos de Unix

EL SISTEMA DE ARCHIVOS DE UNIX

Un sistema de archivos es un mecanismo de abstracción de los dispositivos

físicos de almacenamiento que nos permite manejarlos a un nivel lógico sin la

necesidad de conocer su arquitectura hardware particular. El sistema de archivos

de UNIX se caracteriza por:

Poseer una estructura jerárquica

Realizar un tratamiento consistente

de los datos de los archivos

Poder crear y borrar archivos

Permitir un crecimiento dinámico de

los archivos

Proteger los datos de los archivos

Tratar los dispositivos y periféricos

–terminales, unidades de cinta,

discos, etc.-

como si fuesen archivos.

directorio raíz

Archivos

normales

subdirectorios

Page 10: El Sistema de Archivos de Unix

ESTRUCTURA DEL SISTEMA DE ARCHIVOS

SISTEMA DE ARCHIVOS DISPOSITIVOS DE

ALMACENAMIENTO

DE MODO BLOQUE

DISCOS

CINTAS

RESIDE

SISTEMA

DE ARCHIVOS

SISTEMA

DE ARCHIVOS

SISTEMA

DE ARCHIVOS

SISTEMA UNIX

particiones

Page 11: El Sistema de Archivos de Unix

ORGANIZACIÓN DEL SISTEMA DE

ARCHIVOS

Los sistemas de archivos se almacenan en discos. Casi todos

los discos pueden dividirse en una o más particiones, con

sistemas de archivos independientes en cada partición. El

sector 0 del disco se llama registro maestro de arranque

(MBR; Master Boot Record) y sirve para arrancar la

computadora.

Esta tabla contiene las direcciones inicial y final de cada partición. Una de las particiones de

la tabla está marcada como activa. Cuando se enciende la computadora, el BIOS lee el MBR

y lo ejecuta. Lo primero que hace el MBR es localizar la partición activa, leer su primer

bloque, llamado bloque de arranque, y ejecutarlo. El programa del bloque de arranque carga

el sistema operativo contenido en esa partición.

Page 12: El Sistema de Archivos de Unix

PARTES INTERNAS

DE UN DISCO DURO

•taza de transferencia.- es la razón en la cual se

presenta el flujo de datos entre el controlador y la

computadora.

•Tiempo de posicionamiento.- algunas veces

llamado tiempo de acceso aleatorio, consiste del

tiempo que se mueve el brazo del disco al cilindro

deseado, llamado tiempo de búsqueda.

•Latencia rotacional.- es el tiempo en el que el

sector deseado rota a la cabeza de disco.

Page 13: El Sistema de Archivos de Unix

CONCEPTOS BÁSICOS DE UN DISCO DURO

Plato: Cada uno de los discos que hay dentro del disco duro.

Cara: Cada uno de los dos lados de un plato

Cabeza – Head: Número de cabezas de Lectura/Escritura

Pista - Track: Una circunferencia dentro de una cara;

la pista 0 está en el borde exterior.

Cilindro: Conjunto de varias pistas; son todas las

circunferencias que están alineadas verticalmente (una de

cada cara).

Sector : Cada una de las divisiones de una pista. El tamaño

del sector no es fijo, siendo el estándar actual 512 bytes.

Antiguamente el número de sectores por pista era fijo, lo cual

desaprovechaba el espacio significativamente, ya que en las

pistas exteriores pueden almacenarse más sectores que en

las interiores. Así, apareció la tecnología ZBR (grabación de

bits por zonas) que aumenta el número de sectores en las

pistas exteriores, y usa más eficientemente el disco duro (ver

Nota Inferior). Los sectores son las unidades mínimas de

información que puede leer o escribir un disco duro.

Cluster: agrupación de varios sectores.

Page 14: El Sistema de Archivos de Unix

EJEMPLO DE PARTICIÓN DE UN DISCO

DURO

Page 15: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE LOS DISCOS IDE

IDE significa "Integrated Device Electronic", su traducción es componente electrónico integrado.

ATA significa "Advanced Technology Attachment" ó tecnología avanzada de contacto

PATA: significa "Parallel Advanced Technology Attachment" ó tecnología paralela avanzada de contacto. Es

una nueva sigla acuñada a partir de la inserción en el mercado de los discos SATA, ello para diferenciarlos

entre sí.

Esta especificación permite transferencia de datos de modo paralelo, con un cable de datos de 40 conectores,

genera una transferencia de datos (Rate) de 66, 100 y hasta 133 MegaBytes/segundo (MB/s). Por sus

características de circuito paralelo, permite conectar hasta 2 dispositivos por conector.

Característica Traducción Función Ejemplo

FSB "Frontal Side Bus", transporte frontal interno

Para discos duros significa la velocidad de transferencia de datos del disco duro, en función de los demás dispositivos. Se mide en MegaBytes/segundo (MB/s) y es denominado también "Rate". Este dato en discos duros IDE puede estar entre 66 MB/s, 100 MB/s y 133 MB/s.

Disco duro IDE tiene dentro de sus características lo siguiente: Marca Maxtor®, 80 GB, 7200 RPM, FSB 100/133*. * Este último dato indica que el FSB soportado es 100 MB/s hasta 100 MB/s.

RPM "Revolutions per Minute", vueltas por minuto

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.

Disco duro IDE tiene dentro de sus características lo siguiente: Marca Maxtor®, 80 GB, FSB 100/133, 7200 RPM*. * Este último dato indica que el su eje de giro permite hasta 7200 vueltas por minuto.

Page 16: El Sistema de Archivos de Unix

DISCOS IDE (Integrated Device

Electronics) El interfaz ATA (Advanced Technology Attachment) o PATA, originalmente conocido como IDE (Integrated

device Electronics), es un estándar de interfaz para la conexión de los dispositivos de almacenamiento masivo

de datos y las unidades ópticas que utiliza el estándar derivado de ATA y el estándar ATAPI.

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 configuración se realiza

mediante jumpers.

Historia de producción

Diseñador Western Digital

Diseñado en 1986

Especificaciones

Conectable en caliente no

Externo no

Ancho 16 bits

Ancho de banda 16 MB/s originalmente

Después 33, 66, 100, 133 y

166 MB/s

Max nº

dispositivos 2 (maestro/esclavo)

Protocolo Paralelo

Cable Cable de cinta plano de 40 hilos, posteriormente

incrementado a 80 por seguridad.

Pines 40 (factor forma 3.5) o 44 (factor forma 2.5).Ver enlaces

externos

Page 17: El Sistema de Archivos de Unix

FUNCIÓN DE CADA UNA

DE LAS TERMINALES DEL

IDE

Función de las terminales

Pin 1 Reset

Pin 2 Ground

Pin 3 Data 7

Pin 4 Data 8

Pin 5 Data 6

Pin 6 Data 9

Pin 7 Data 5

Pin 8 Data 10

Pin 9 Data 4

Pin 10 Data 11

Pin 11 Data 3

Pin 12 Data 12

Pin 13 Data 2

Pin 14 Data 13

Pin 15 Data 1

Función de las terminales

Pin 16 Data 14

Pin 17 Data 0

Pin 18 Data 15

Pin 19 Ground

Pin 20 Key o VCC_in

Pin 21 DDRQ

Pin 22 Ground

Pin 23 I/O write

Pin 24 Ground

Pin 25 I/O read

Pin 26 Ground

Pin 27 IOC HRDY

Pin 28 Cable select

Pin 29 DDACK

Pin 30 Ground

Pin 31 IRQ

Page 18: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE LOS DISCOS SATA

Serial ATA o SATA (acrónimo de Serial Advanced Technology Attachment)

es una interfaz de transferencia de datos entre la placa base y algunos

dispositivos de almacenamiento, como puede ser el disco duro, lectores y

regrabadores de CD/DVD/BR, Unidades de Estado Sólido u otros

dispositivos de altas prestaciones que están siendo todavía desarrollados.

Serial ATA sustituye a la tradicional Parallel ATA o P-ATA. SATA

proporciona mayores velocidades, mejor aprovechamiento cuando hay

varias unidades, mayor longitud del cable de transmisión de datos y

capacidad para conectar unidades al instante, es decir, insertar el

dispositivo sin tener que apagar el ordenador o que sufra un cortocircuito

como con los viejos Molex.

Actualmente es una interfaz aceptada y estandarizada en las placas base

de PC. La Organización Internacional Serial ATA (SATA-IO) es el grupo

responsable de desarrollar, de manejar y de conducir la adopción de

especificaciones estandarizadas de Serial ATA. Los usuarios de la interfaz

SATA se benefician de mejores velocidades, dispositivos de

almacenamientos actualizables de manera más simple y configuración

más sencilla. El objetivo de SATA-IO es conducir a la industria a la

adopción de SATA definiendo, desarrollando y exponiendo las

especificaciones estándar para la interfaz SATA.

Page 19: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE LOS DISCOS

SATA Al referirse a velocidades de transmisión, conviene recordar que en ocasiones se confunden las unidades de

medida, y que las especificaciones de la capa física se refieren a la tasa real de datos, mientras que otras

especificaciones se refieren a capacidades lógicas.

La primera generación especifica en transferencias de 150 MB por segundo, también conocida por SATA 150

MB/s o Serial ATA-150. Actualmente se comercializan dispositivos SATA II, a 300 MB/s, también conocida

como Serial ATA-300 y los SATA III con tasas de transferencias de hasta 600 MB/s.

Las Unidades que soportan la velocidad de 3Gb/s son compatibles con un bus de 1,5 Gb/s.

En la siguiente tabla se muestra el cálculo de la velocidad real de SATAI 1.5 Gb/s, SATAII 3 Gb/s y SATAIII 6

Gb/s: SATA I SATA II SATA III

Frecuencia 1500 MHz 3000 MHz 6000MHz

Bits/clock 1 1 1

Codificación 8b10b 80% 80% 80%

bits/Byte 8 8 8

Velocidad real 150 MB/s 300 MB/s 600 MB/s

Fue estandarizado a mediados de 2004, con definiciones específicas de cables, conectores y requisitos de la señal 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 conversión de protocolos de PATA/SATA a USB/Firewire, todas las características del disco están disponibles para el anfitrión.

•La longitud de cable se restringe a 2 metros; USB y Firewire permiten mayores distancias.

•Se aumentó la tensión de transmisión mínima y máxima a 500mV - 600mV (de 400 mV - 600 mV)

Actualmente, la mayoría de las placas bases han empezado a incluir conectores eSATA, también es posible usar adaptadores

de bus o tarjetas PC Card y CardBus para portátiles que aún no integran el conector.

Page 20: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE LAS TERMINALES

DEL SATA Tipo masivo interno

Historia de producción

Diseñado en 2003

Sustituye a Parallel ATA

Especificaciones

Conectable en caliente Sí, con soporte de otros componentes del

sistema.

Externo Sí, con eSATA. Y por USB, con case o caja

externa.

Cable Cable plano

Pines 7

Notación de las terminales

Pin 1 GND Masa

Pin 2 HT+/DR+ Transmisión diferencial +

Pin 3 HT-/DR- Transmisión diferencial -

Pin 4 GND Masa

Pin 5 HR-/DT- Recepción diferencial -

Pin 6 HR-/DT+ Recepción diferencial +

Pin 7 GND Masa

Page 21: El Sistema de Archivos de Unix

LA TABLA DE PARTICIONES

La tabla de particiones está alojada en el MBR (del inglés 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 información básica sobre la partición: si es arrancable, si no lo es, el formato, el

tamaño y el sector de inicio.

Es una estructura de datos de 64 bytes que define la forma en que un disco duro está dividido en secciones lógicas, conocidas como particiones.

Estructura de entradas de la Tabla de Particiones

Offset Naturaleza Size

+OOh

Status de partición 00h = no activa 80h = Partición de Boot

1 byte

+01h Inicio de partición : Cabecera 1 byte

+02h Inicio de partición : Cilindro - Sector 1 palabra

+04h Tipo de partición 1 byte

+05h Fin de partición : Cabecera 1 byte

+06h Inicio de partición : Cilindro - Sector 1 palabra

+08h Número de sectores entre el MBR y el 1er sector de la partición

4 bytes

+0Ch Número de sectores en la partición 4 bytes

Page 22: El Sistema de Archivos de Unix

LA TABLA DE PARTICIONES

Offset

Naturaleza Size

+OOh

Status de partición 00h = no activa 80h = Partición de Boot

1 byte

+01h Inicio de partición : Cabecera 1 byte

+02h Inicio de partición : Cilindro - Sector 1 palabra

+04h Tipo de partición 1 byte

+05h Fin de partición : Cabecera 1 byte

+06h Inicio de partición : Cilindro - Sector 1 palabra

+08h Número de sectores entre el MBR y el 1er sector de la partición

4 bytes

+0Ch Número de sectores en la partición 4 bytes

Page 23: El Sistema de Archivos de Unix

PARTICIONES GUID

Dentro de los discos básicos existe una

nueva modalidad en lugar de estar

basado en el clásico MBR, está basado

en tablas de particiones GUID. Esta tabla

de particiones es una nueva

implementación 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 límite

como hemos visto está en cuatro

primarias o bien tres primarias y una

extendida, siendo el límite máximo de

cada partición de dos terabytes.

Page 24: El Sistema de Archivos de Unix

PARTICIONES GUID

Para trabajar con particiones GUID y

discos GPT es necesario tener la

versión de Windows XP de 64 bits, y

naturalmente que el hardware que se

compre tenga esas características.

Tabla de partición Guid (GPT) es un

estándar para la colocación de la

Tabla de Particiones en un disco duro

físico. Es parte del estándar

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

Page 25: El Sistema de Archivos de Unix

FORMATO A UN DISCO Cuando un disco se fabrica por primera vez, éste se divide en sectores y pistas desde fábrica,

que el controlador puede leer y escribir. Dicho proceso se conoce como formato a bajo nivel o

formato físico. Dicho formato llena el disco con una estructura de datos especial por cada

sector. La estructura de datos para un sector típico 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 información que el controlador de disco utiliza, tal como el número de

sectores y un código de corrección de errores (CCE). Cuando el controlador escribe un sector

de datos durante una operación 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 leído, el CCE se recalcula y se

compara con el valor almacenado. Si ambos números 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 reparación 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 pequeño espacio para identificar el número

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: Código 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 leído antes del procesamiento

de datos adicionales.

Page 26: El Sistema de Archivos de Unix

ESTRUCTURA DEL SISTEMA DE ARCHIVOS

Un sistema de archivos se compone de una secuencia de bloques lógicos, cada

uno de los cuales tiene un tamaño fijo. El tamaño de cada bloque es el mismo para

todo el sistema de archivos y suele ser múltiplo de 512 bytes. Aunque puede variar

de un sistema a otro. Si el tamaño del bloque es grande es bueno para la

transferencia de información entre los dispositivos de bloque, pero repercute

cuando se desea almacenar una cantidad determinada de información, por ejemplo

unos cuantos caracteres de un archivo determinado. Valores típicos son de 512,

1024, 2048, etc.

Bloque de datos bloque de boot superbloque lista de i-nodos

Primer sector,

puede contener

el código de

arranque, el cual

se encarga de

carga al Sistema

Operativo en

memoria

Describe el

estado de un

sistema de

archivos.

Contiene

información de

su tamaño,

numero total de

archivos, el

espacio

disponible, etc.

Tiene una entrada para

cada archivo, que

guarda la descripción

del mismo: ubicación

en el disco,

propietario, permisos

de acceso, fecha de

actualización. El

administrador

especifica su tamaño.

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.

Page 27: El Sistema de Archivos de Unix

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 información:

1) Tamaño del sistema de archivos

2) Lista de bloques libres disponibles

3) Índice del siguiente bloque libre en la lista de bloques libres

4) Tamaño 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 petición

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.

Page 28: El Sistema de Archivos de Unix

EL SUPERBLOQUE

Page 29: El Sistema de Archivos de Unix

NODOS ÍNDICE (i-nodos)

En el archivo de cabecera <sys/ino.h> se declara la estructura en C struct dinode

que describe la información de un i-nodo. Los campos que componen a un i-nodo

son los siguientes:

1) Identificador del propietario del archivo. La posición 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.

Page 30: El Sistema de Archivos de Unix

NODOS ÍNDICE (i-nodos)

2) Tipo de archivo. Los archivos pueden ser ordinarios de datos, directorios,

especiales de dispositivo –en modo carácter o en modo bloque- y tuberías –o

FIFO-.

3) Tipo de acceso al archivo. Se tienen tres niveles de permisos: de propietario, de

grupo y del resto de los usuarios. Cada clase de usuarios puede tener

habilitados o deshabilitados los derechos de lectura, escritura y ejecución. Para

los directorios, el derecho de ejecución significa poder acceder o no a los

archivos que contiene.

4) Tiempos de acceso al archivo. Da información sobre la fecha de la última

modificación al archivo, la última vez que se accedió a él y la última vez que se

modificaron los datos de su i-nodo.

5) Número de enlaces del archivo. Representa el total de los nombres que el

archivo tiene en la jerarquía de directorios. Un archivo puede tener asociados

diferentes nombres que correspondan a diferentes rutas y a través de los cuales

se accede a un mismo i-nodo y por consiguiente a los mismos bloques de datos.

6) Tamaño del archivo. Los bytes de un archivo se pueden direccionar indicando un

desplazamiento a partir de la dirección de inicio del archivo. El tamaño es igual

al desplazamiento del byte más alto, incrementando en una unidad.

Page 31: El Sistema de Archivos de Unix

NODOS ÍNDICE (i-nodos)

El nombre de los archivos no queda especificado en su i-nodo, sino en los

archivos de directorio en donde cada nombre de archivo se asocia con su i-

nodo correspondiente. El contenido del i-nodo cambia cuando se modifican

los datos del archivo o la situación administrativa del mismo –propietario,

permisos, etc.- cambia.

La tabla de i-nodos contiene la misma información que la lista de i-nodos a

excepción de:

a) El número de dispositivos lógicos que contienen al archivo

b) Punteros a otros i-nodos cargados en la memoria.

c) El número de i-nodo.

d) El estado del i-nodo, que indica: 1 si el i-nodo está bloquedo. 2 Si la copia del i-

nodo que está en memoria difiere de la que existe en el disco. 3 Si existe

algún proceso esperando a que el i-nodo quede desbloqueado.

Page 32: El Sistema de Archivos de Unix

ESTRUCTURA DE UN ARCHIVO ORDINARIO

archivo A archivo B archivo C

10 20 30 40

archivo A libre archivo C archivo B

10 20 30 40 55

Direcciones en

tamaño de

bloque

18 sectores

80 pistas

512 bytes/sector

2 caras

* = 1474560 bytes

Bloque

inicial Bloque

final

MÉTODOS DE ADMINISTRACIÓN DEL ESPACIO EN DISCO

LA VELOCIDAD LINEAL CONSTANTE. Un

aspecto importante a considerar está en el

hecho de que para conservar la misma taza

de transferencia de información de la

unidad de disco a la computadora, para ello

el controlador debe de

incrementar su velocidad

de rotación conforme la

cabeza se mueve de las

pistas externas a las

internas.

O bien, la velocidad puede

ser constante, pero

incrementando la densidad

de bits de las pistas

internas a las externasm

este método se conoce

también como velocidad

angular constante.

FRAGMENTACIÓN INTERNA ocurre

cuando un archivo no ocupa por

completo un bloque. Por ejemplo, si

tenemos un archivo de 10K y un

tamaño de bloque de 8K, el sistema

de archivos asignará dos bloques para

alojar el archivo, pero 6K del segundo

bloque se desaprovecharán. Nótese

que a mayor tamaño de bloque mayor

será el espacio desperdiciado.

FRAGMENTACIÓN EXTERNA ocurre

cuando los bloques lógicos que

forman un archivo se encuentran

esparcidos por todo el disco (no están

contiguos). Este tipo de fragmentación

produce un bajo rendimiento.

Page 33: El Sistema de Archivos de Unix

CAPACIDAD DE UN DISCO DURO

Page 34: El Sistema de Archivos de Unix

ASIGNACIÓN CONTIGUA

Page 35: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE DIFERENTES

TIPOS DE SISTEMAS DE ARCHIVOS

Page 36: El Sistema de Archivos de Unix

FORMAS DE ALMACENAMIENTO DE

ARCHIVOS

Bloque

de

archivo

0

Bloque

de

archivo

1

Bloque

de

archivo

2

Bloque

de

archivo

3

Bloque

de

archivo

4

Archivo A

4 7 2 10 12

Bloque

de

archivo

1

Bloque

de

archivo

2

Bloque

de

archivo

3

Bloque

de

archivo

4

Archivo B

6 3 11 14

Bloque

físico

Bloque

físico

10

11

7

3

2

12

14

0

0

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

El archivo A comienza aquí

El archivo B comienza aquí

Bloque no utilizado

Bloque físico

ASIGNACIÓN POR LISTA ENLAZADA ASIGNACIÓN POR LISTA ENLAZADA

EMPLEANDO UN ÍNDICE

Page 37: El Sistema de Archivos de Unix

ASIGNACIÓN

POR LISTA

ENLAZADA

Page 38: El Sistema de Archivos de Unix

TAMAÑO DEL BLOQUE Una vez que se ha decidido almacenar los archivos en bloques de tamaño fijo, surge la

pregunta de qué tamaño deben de tener los bloques. Dada la forma en la que están

organizados los discos, el sector, la pista y el cilindro son candidatos obvios para

utilizarse como unidad de asignación. En un sistema con paginación, el tamaño de

página es un importante contendiente.

Tener una unidad de asignación grande, como un cilindro, implica que cada archivo,

incluso un archivo de 1 byte, ocupará todo un cilindro. Estudios realizados (Mullender y

Tanenbaum, 1984) han demostrado que la mediana del tamaño de los archivos en los

entornos UNIX es de alrededor de 1K, así que asignar un cilindro de 32K a cada archivo

implicaría un desperdicio de 31/32=97% del espacio en disco total. Por otro lado, el

empleo de una unidad de asignación pequeña implica que cada archivo consistirá de

muchos bloques. La lectura de cada bloque normalmente requiere una búsqueda y un

retardo rotacional, así que la lectura de un archivo que consta de muchos bloques

pequemos será lenta.

Por ejemplo, considérese un disco con 32,768 bytes por pista, tiempo de rotación de

16.67 msegs y tiempo de búsqueda medio de 30 msegs. El tiempo en milisegundos

requerido para leer un bloque de k bytes es la suma de los tiempos de búsqueda, retardo

rotacional y transferencia:

67.16)32768/(3.830 xk

Page 39: El Sistema de Archivos de Unix

TAMAÑO 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 utilización del espacio

(tamaño de bloque <2K) implica tasas

de datos bajas y viceversa. La

eficiencia del tiempo y la eficiencia de

espacio están inherentemente en

conflicto.

CONTROL DE BLOQUES LIBRES Una vez escogido un tamaño de bloque, la siguiente cuestión es cómo llevar el

control de los bloques libres. Se utilizan dos métodos principalmente: lista enlazada

de bloques de disco. Con bloques de 1KB y números de bloque de 32 bits, cada

bloque de la lista libre contendrá los números de 255 bloques libres. Un disco de 16

GB necesitará una lista de 16,794 bloques como máximo para contener los 224

números de bloque.

Page 40: El Sistema de Archivos de Unix

CONTROL DE BLOQUES LIBRES

La otra técnica de

administración del espacio libre

es el mapa de bits. Un disco

con n bloques requiere un

mapa de bits de n bits. Los

bloques libres se representan

con unos en el mapa, y los

blqoues asignados con ceros

(o viceversa). Un disco de 16

GB tiene 224 bloques de 1KB y

por tanto requiere 224 bits para

el mapa, lo cual ocupa un total

de 2048 bloques.

Page 41: El Sistema de Archivos de Unix

ESTRUCTURA DE UN ARCHIVO ORDINARIO

Para una mayor flexibilidad, el núcleo del sistema reserva los bloques para un

archivo de uno en uno, y permite que los datos de una archivo estén esparcidos por

todo el sistema de archivos.

Las entradas de direcciones del i-nodo consisten en una lista de direcciones de los

bloques que contiene los datos del archivo.

Bloque 1

de 1 Kbyte

Bloque 2

de 1 Kbyte

Bloque 10

de 1 Kbyte

i-nodo

Archivo de longitud

de 10 Kbytes

Lista de direcciones de

los bloques

Page 42: El Sistema de Archivos de Unix

ESTRUCTURA DE UN ARCHIVO ORDINARIO

Bloque 1

de 1 Kbyte

Bloque 2

de 1 Kbyte

Bloque 100

de 1 Kbyte

i-nodo

Archivo de longitud

de 100 Kbytes

Lista de direcciones de

los bloques con

crecimiento variable

La administración de archivos anteriormente planteada presenta problemas cuando

la dimensión del archivo es grande

Page 43: El Sistema de Archivos de Unix

ESTRUCTURA DE UN ARCHIVO ORDINARIO

Para conseguir tamaños del i-nodo pequeño y a la vez gestionar archivos grandes, las

entradas de direcciones del i-nodo se ajustan al siguiente esquema:

Entradas directas.- Contienen direcciones

de bloques en los que existen datos de

archivos (10 en total).

Entrada Indirecta simple.- Contiene la

dirección a un bloque de datos que

contiene una tabla de direcciones de

bloques de datos.

Entrada Indirecta doble.- Contiene la

dirección de un bloque cuyas entradas

actúan como entradas indirectas simples.

Entrada Indirecta triple.- Contiene la

dirección de un bloque cuyas entradas

actúan como entradas indirectas dobles.

Page 44: El Sistema de Archivos de Unix

Suponga la siguiente situación 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 tamaño del bloque es 512 bytes y una dirección requiere 4 bytes(32 bits), por lo que un

bloque de datos puede almacenar 512/4 = 128 direcciones.

¿ Cuál es el tamaño máximo que puede tener un archivo en este sistema ?

Resumen detallado

Tipo de Entrada Total de bloques accesibles Total de bytes accesibles

10 entradas directas 10 bloques de datos 10*512 = 5120 bytes

1 entrada indirecta

simple

1 bloque indirecto simple =

128 bloques de datos 128*512 = 65536 bytes

1 entrada indirecta

doble

1 bloque indirecto doble =

128 bloques indirectos simples =

128*128=16384 bloques de datos

16384*512 = 8388608 bytes

1 entrada indirecta

triple

1 bloque indirecto triple =

128 bloques indirectos dobles =

128*128 bloques indirectos simples

=

128*128*128 = 2097152 bloques

de datos

2097152*512 = 1073741824

bytes

TAMAÑO MAXIMO 1082201088 bytes ~ 1 GByte

Page 45: El Sistema de Archivos de Unix

TIPOS DE ARCHIVOS EN UNIX

ORDINARIOS

DIRECTORIOS

DE DISPOSITIVOS

TUBERÍAS

TIPOS DE

ARCHIVOS

Contienen bytes de datos organizados

como un arreglo lineal

Nos permiten darle una estructura

jerárquica a los sistemas de archivos de

UNIX. Su función consiste en establecer

la relación que existe entre el nombre del

archivo y su i-nodo correspondiente.

Se utilizan para que los procesos se

comuniquen con los dispositivos periféricos:

discos, cintas, impresoras, terminales,

redes, etc.

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 tubería conforme

son leídos.

Page 46: El Sistema de Archivos de Unix

ARCHIVOS ORDINARIOS

Operaciones que se realizan con los datos de un archivo:

a)Leer o escribir cualquier byte del archivo.

b)Añadir bytes al final del archivo, con lo que aumenta su tamaño.

c)Truncar el tamaño 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.

c)Truncar el tamaño de un archivo a un valor distinto de cero.

Los archivos ordinarios, como tales, no tienen nombre y el acceso a ellos se realiza

a través de los i-nodos.

Page 47: El Sistema de Archivos de Unix

DIRECTORIOS

Los directorios son los archivos que permiten darle una estructura jerárquica a los

sistemas de archivos de UNIX. Su función consiste en establecer la relación que

existe entre el nombre de un archivo y su i-nodo correspondiente.

ESTRUCTURA TÍPICA

Un directorio es un archivo cuyos datos

están organizados como una secuencia de

entradas, cada una de las cuales contiene

un número 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 jerarquía de directorios – que estén

enlazados con un mismo i-nodo.

El tamaño de cada entrada es de 16

bytes; dos dedicados al i-nodo y 14

dedicados al nombre del archivo.

0

16

32

48

64

Tiene asociado

el i-nodo del

directorio actual

Tiene asociado

el i-nodo del

directorio padre

del actual

1

1

4

7

14

9

6

8

.

..

bin

dev

lib

etc

usr

tmp

Modo

tamaño

tiempos

132

6

1

19

30

51

26

45

.

..

dick

erick

jim

ast

bal

i-nodo 6 es para /usr i-nodo 132

es para el

directorio

/usr

Page 48: El Sistema de Archivos de Unix

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 través de las llamadas:

creat, mknod, link o unlink.

c) Ejecución, autoriza a un proceso para buscar el nombre de un archivo

dentro del directorio.

Page 49: El Sistema de Archivos de Unix

IMPLEMENTACIÓN 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 información necesaria para encontrar

los bloques de disco.

DIRECTORIO DE MS—DOS

En el caso de los directorios de MS-DOS que es un

ejemplo de sistemas con árboles de directorios

jerárquicos. Se muestra a continuación la entrada de

directorio de MS-DOS, la cual contiene 32 bytes de

longitud y contiene el nombre del archivo, los

atributos y el número del primer bloque del disco. El

primer número 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.

Nombre

de archivo Tamaño

Extensión Atributos Reservado Hora Fecha Primer número

de bloque

Bytes 8 3 1 10 2 2 2 4

10

11

7

3

2

12

14

0

0

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

El archivo A comienza aquí

El archivo B comienza aquí

Bloque no utilizado

Bloque físico

Page 50: El Sistema de Archivos de Unix

NOMBRE Y USO DE LOS PRINCIPALES

DIRECTORIOS DE LINUX

Page 51: El Sistema de Archivos de Unix

ARCHIVOS ESPECIALES

Estos archivos se utilizan para que los procesos se comuniquen con los dispositivos

periféricos: archivos modo bloque (discos, cintas) y archivos modo carácter

(terminales serie y las líneas de la impresora). Cada dispositivo debe de tener su

propio manejador.

major number minor number

i-nodo

ARCHIVOS

COMUNES

ARCHIVOS DE

DISPOSITIVO

Tipo de dispositivo:

disco, cinta, terminal

Número de unidad

dentro del dispositivo

Estos números los utiliza el núcleo para buscar

dentro de unas tablas BDST (Block Device Switch

Table) y CDSW (Character Device Switch Table) una

colección de rutinas que permiten manejar el

dispositivo.

Page 52: El Sistema de Archivos de Unix

TUBERÍAS CON NOMBRE

PROCESO

A

PROCESO

B

Tubería

Una tubería es un archivo con una estructura similar a la de un archivo ordinario,

con la diferencia es que los archivos tipo tubería son transitorios; esto es, que

desaparecen conforme son leídos.

La tuberías se utilizan para comunicar

procesos. Los datos siguen se escriben y

leen bajo el formato FIFO. La

sincronización es tarea del núcleo del

sistema.

El almacenamiento sólo se realiza de

forma directa del bloque del i-nodo.

Abre

para leer

Abre

para

escribir

Page 53: El Sistema de Archivos de Unix

TUBERÍAS SIN NOMBRE

No tienen asociado un nombre de archivo y sólo existen mientras un proceso esté

unido a ellas. También actúan como un canal de comunicación entre dos procesos

y tienen asociado un i-nodo mientras existen.

Ejemplo:

$ ls | sort –r

La ejecución de la línea anterior implica la ejecución de dos procesos, el resultado

de uno de ellos se complementa con el otro.

¿Cuál es el resultado que se obtendrá?

PROCESO

A

PROCESO

B

Tubería

ls

envía

sort –r

lee

Page 54: El Sistema de Archivos de Unix

PROCESO DE INICIO DE UN

ORDENADOR El POST es el acrónimo inglés de Power On Self Test (Auto diagnóstico al

encender). Es un proceso de verificación e inicialización de los componentes de

entrada y salida en un sistema de cómputo que se encarga de configurar y

diagnosticar el estado del hardware. Código o cantidad de pitidos Significado

1 tono corto El chequeo ha terminado satisfactoriamente.

Ningún tono No hay electricidad, las bocinas están desconectadas o BIOS corrupta

Tono ininterrumpido Fallo en el suministro eléctrico

Tonos cortos y seguidos Placa base estropeada

1 tono largo La memoria RAM no funciona o no hay instalada

1 tono largo y 1 corto Fallo en la placa base o en ROM

1 tono largo y 2 cortos Fallo en la tarjeta de vídeo o no hay instalada

1 tono largo y 3 cortos Fallo en la tarjeta EGA

2 tonos largos y 1 corto Fallo en la sincronización de imagen.

2 tonos cortos Error en la paridad de la memoria

3 tonos cortos Fallo en los primeros 64 Kb de la memoria RAM

4 tonos cortos Temporizador o contador defectuoso

5 tonos cortos El procesador o la tarjeta de vídeo no pasan el test

6 tonos cortos Fallo en el controlador del teclado

7 tonos cortos Modo virtual de procesador AT activo, Error de excepción/identificador del procesador.

8 tonos cortos Fallo en la escritura de la RAM de video.

9 tonos cortos Error de checksum de la ROM en la BIOS

10 tonos cortos Error de CMOS.

Page 55: El Sistema de Archivos de Unix

PROCESO DE INICIO DE UN

ORDENADOR

Las funciones principales de la BIOS durante la

POST principales son las siguientes:

verificar la integridad del código del BIOS.

encontrar, dimensionar y verificar la memoria

principal del sistema.

descubrir, inicializar y catalogar todos los buses

del sistema y dispositivos.

pasar el control a otras BIOS especializadas

(siempre y cuando sea necesario).

proporcionar una interfaz de usuario para la

configuración del sistema.

identificar, organizar y seleccionar los

dispositivos que están disponibles para el

arranque.

construcción de cualquier entorno de sistema

que es requerido por el sistema operativo

destino.

Page 56: El Sistema de Archivos de Unix

PROCESO DE INICIO DE UN

ORDENADOR

Code Meaning

100–199 System boards

200–299 Memory

300–399 Keyboard

400–499 Monochrome display

500–599 Color/graphics display

600–699 Floppy-disk drive or adapter

700–799 Math coprocessor

900–999 Parallel printer port

1000–1099 Alternate printer adapter

1100–1299 Asynchronous communication device, adapter, or port

1300–1399 Game port

1400–1499 Color/graphics printer

1500–1599 Synchronous communication device, adapter, or port

Page 57: El Sistema de Archivos de Unix

PROCESO DE INICIO DE UN

ORDENADOR

Code Meaning

1700–1799 Hard drive and/or adapter

1800–1899 Expansion unit (XT)

2000–2199 Bisynchronous communication adapter

2400–2599 EGA system-board video (MCA)

3000–3199 LAN adapter

4800–4999 Internal modem

7000–7099 Phoenix BIOS chips

7300–7399 3.5-inch disk drive

8900–8999 MIDI adapter

11200–11299 SCSI adapter

21000–21099 SCSI fixed disk and controller

21500–21599 SCSI CD-ROM system

Page 58: El Sistema de Archivos de Unix

PROCESO DE INICIO DE UN

ORDENADOR Una vez que el PC arranca, comienza a

ejecutarse el código que se encuentra en la dir.

F000:FFF0 el cual pertenece al ROM-BIOS y es

el encargado de realizar una serie de tests e

inicializaciones. Esta rutina se llama POST

(Power On Self-Test). Una vez que la BIOS

termina con sus tests e inicializaciones carga el

primer sector (cilindro 0, cabeza 0, sector 1) en

la dir. 0000:7C00 (7C00 lineal), comprueba que

contenga código válido (comprueba que esté

firmado con 55H, AAH en los bytes 511 y 512) y

salta a esa dirección (CS:IP apuntan a esa

dirección).

El bootstrapping también puede referirse al

proceso mediante el cual se han desarrollado

entornos de programación cada vez más

complejos a partir de otros más simples. El

entorno más simple sería, quizás, un editor de

textos muy sencillo (p. e. ed) y un programa

ensamblador. Utilizando estas herramientas, se

puede escribir un editor de texto más complejo y

un compilador simple para un lenguaje de más

alto nivel y así sucesivamente, hasta obtener un

entorno de desarrollo integrado y un lenguaje de

programación de muy alto nivel.

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 dirección inicial para

comenzar la ejecución del sistema operativo.

Dicho bootstrap se almacena en la memoria

ROM. Una alternativa a lo anterior es que

una parte pequeña del bootstrap se

almacena en la ROM, la cual tiene como

trabajo saltar al programa bootstrap

completo que se encuentra en el disco.

Dicho código se almacena en los bloques de

inicio del sistema operativo, y por lo tanto

puede ser modificado más fácilmente que el

almacenado de manera completa en la

ROM.

Page 59: El Sistema de Archivos de Unix

PROCESO DE ARRANQUE

DE UNA MÁQUINA CON

WINDOWS 2000

MBR

PARTICIÓN 1

PARTICIÓN 2

PARTICIÓN 3

PARTICIÓN 4

CÓDIGO DE

ARRANQUE

TABLA DE

PARTICIÓN

PARTICIÓN

DE

ARRANQUE

a) El código en la ROM instruye al controlador de

disco a leer los bloques de arranque a memoria y

ejecuta el código

b) Windows 2000 coloca su código de arranque en

el MBR, considerando además que el disco puede

estar dividido en varias particiones

c) Se lee y ejecuta el pequeño

código almacenado en el MBR

(contenido en los primeros 440

bytes)

d) Se carga luego

entonces la partición

de arranque del

sistema y demás

controladores de

dispositivos.

e) Se inicializa el

sistema

Page 60: El Sistema de Archivos de Unix

nota En las versiones anteriores del sistema operativo Windows que se ejecutan en un equipo

basado en el sistema básico 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, después, carga el primer sector físico. Este sector físico se conoce

como el registro de arranque maestro (MBR, Master Boot Record). El MBR contiene la tabla

de particiones y el código de ejecución de arranque necesario. Este código busca en la tabla

de particiones las particiones activas y pasa el control al sector de arranque en la partición

activa. Después, el sector de arranque de la partición 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 están instalados.

Page 61: El Sistema de Archivos de Unix

LA FAT 32 DE MS-DOS

http://en.wikipedia.org/wiki/File_Allocation_Table

Page 62: El Sistema de Archivos de Unix

BOOT SECTOR

Page 63: El Sistema de Archivos de Unix

TABLAS DE CONTROL DE ACCESO A

LOS ARCHIVOS Además de la tabla de i-nodos, el núcleo mantiene en memoria otras dos tablas

que contienen información necesaria para poder manipular un archivo: la tabla de

archivos y la tabla de descriptores de archivo. Cada entrada de la tabla de archivos

contiene también un apuntador a una estructura de datos que contiene información

del estado actual del archivo.

TABLA DE ARCHIVOS

La tabla de archivos es una estructura global del núcleo y en ella existe una

entrada por cada archivo distinto que los procesos del núcleo 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 función para realizar la multiplexación síncrona de la E/S,.

•Una función para controlar los modos de E/S, ioctl.

•Una función para cerrar el archivo. close.

Page 64: El Sistema de Archivos de Unix

TABLA DE DESCRIPTORES DE ARCHIVO La tabla de descriptores de archivo es una estructura local a cada proceso. Esta

tabla identifica todos los archivos abiertos por un proceso. Cuando se utilizan las

llamadas al sistema open, creat, dup, o link, el núcleo devuelve un descriptor de

archivo, que es un índice para poder acceder a las entradas de la tabla anterior. En

cada una de las entradas de la tabla exite un apuntador a una entrada de la tabla

de archivos del sistema.

El núcleo manipula las tablas anteriores a través del descriptor de archivo dado por

el proceso. Cuando un proceso utiliza una llamada para realizar una operación

sobre un archivo, le pasa al núcleo el descriptor de ese archivo. El núcleo utiliza

este número para acceder a la tabla de descriptores de archivo del proceso y

buscar en ella cuál es la entrada de la tabla de archivos que le da acceso a su i-

nodo. El tamaño de la tabla de descriptores está limitado (20).

En informática los términos descriptor de archivo o descriptor de fichero son

usados generalmente en sistemas operativos POSIX. En la terminología de

Microsoft Windows y en el contexto de la biblioteca stdio, se prefiere el término

"manipulador de archivos" o "manipulador de ficheros", ya que es técnicamente un

objeto diferente.

En POSIX, un descriptor de archivo es un entero, específicamente del tipo int de C.

Hay 3 descriptores de archivo estándar de POSIX que presumiblemente tiene cada

proceso, salvo quizá los demonios:

Page 65: El Sistema de Archivos de Unix

Suponga que un segundo proceso ejecuta el

siguiente código:

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 sólo se incrementa el

contador de archivos abiertos.

Generalmente, un descriptor de archivo es una clave a una estructura de datos residente en el núcleo, 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 aplicación que lanza un usuario pasa al núcleo la

clave abstracta mediante una llamada al sistema, y el núcleo tendrá acceso al archivo a nombre de la

aplicación, que se basará en la clave. Esa misma aplicación 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 (también llamados "archivos especiales"), sockets, FIFOs (también

llamados "tuberías con nombre") o tuberías sin nombre.

Page 66: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE EFICIENCIA DEL

SISTEMA DE ARCHIVOS Ext2

Cuando se crea un sistema de archivo Ext2, el administrador del mismo puede seleccionar el tamaño

de bloque óptimo (de 1,024 a 4,096 bytes), dependiendo de la longitud de los archivos promedio que se

podrían esperar. Por ejemplo, un tamaño de bloque de 1,024-block es deseable cuando la longitud del

archivo promedio es más pequeña que unos cientos de de bytes dado que esto implicaría una menor

fragmentación interna —esto es, menos semejanza entre la longitud del archivo y la porcion del disco

que la contiene. Por otro lado, tamaños de bloques más grandes son regularmente preferibles para

archivos más grandes que unos cuantos de bytes dado que esto permitirá menores transferencias de

disco, reduciendo.

Cuando se crea el sistema de archivos Ext2, el administrador del sistema debe de seleccionar cuantos

i-nodos son permisibles para una partición de una tamaño determinado, dependiendo del número

esperado de archivos que serán almacenados. Esto maximiza el espacio de disco efectivamente útil.

El sistema de archivos particiona los bloques de disco en grupos. Cada grupo incluye bloques de datos

e i-nodos almacenados en pistas adjuntas. Debido a esta estructura, los archivos almacenados en un

grupo de bloques sencillo puede ser accedido tiempo de búsqueda en disco en promedio más pequeño.

El sistema de archivos prealmacena bloques de datos del disco para archivos ordinarios antes de que

sean utilizados. Así, cuando un archivo incrementa su tamaño, muchos bloques son reservados en

posiciones físicas adyacentes, reduciendo con ello la fragmentación de disco.

Enlaces simbólicos rápidos son soportados. Si el nombre de trayectoria de un enlace simbólico tiene 60

bytes o menos, se almacena en un inodo y puede así ser traducido sin leer un bloque de datos.

Page 67: El Sistema de Archivos de Unix

CARACTERÍSTICAS DE ROBUSTEZ Y

FLEXIBILIDAD

• Una implementación cuidadosa de la estrategia de actualización de archivos que minimiza

el impacto de las caídas del sistema. Por ejemplo, cuando se crea un nuevo enlace duro

de un archivo, el contador de enlaces duros en un i-nodo del disco se ve incrementado, y

el nuevo nombre se agrega en un directorio próximo. De esta forma, si ocurre una falla en

el hardware después de que el i-nodo se actualiza pero antes de que el directorio sea

cambiado, el directorio es consistente, incluso si el contador de enlace duro del i-nodo es

incorrecto. La eliminación de archivos no conduce a resultados catastróficos, sin embargo

los bloques de datos del archivo no pueden ser reclamados. Errores grandes se

produjeran si se cambia primero el directorio antes de la actualización del i-nodo.

• Soporta para la verificación de consistencia automática sobre el estado del sistema de

archivos al tiempo en que arranca el sistema. Las verificaciones son realizadas por el

programa externo e2fsck, el cual puede ser activado no sólo por después del crash del

sistema, sino también después de un número de veces que un sistema de archivos se

monta.

• Soporte para archivos inmutables (no pueden ser modificados, borrados o renombrados)

y para archivos de sólo lectura (los datos pueden ser agregados sólo al final de ellos).

• La compatibilidad con el Sistema Unix versión 4 y la semántica BSD del proceso que lo

crea; en BSD, el nuevo archivo hereda el ID del Grupo del directorio que lo contiene. Ext2

incluye una opción de montado que específica qué semántica se está utilizando.

Page 68: El Sistema de Archivos de Unix

EL SISTEMA DE

ARCHIVOS ext2

La estructura física de Ext2fs está fuertemente influenciada por la distribución (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 análogos a los grupos de cilindros. Sin embargo los

grupos de bloques no se encuentran atados a la disposición física de los bloques en el disco.

Como resultado, la mayor parte de la gestión del

sistema de ficheros se reduce a la gestión de un sólo

grupo de bloques.

Ext2fs divide el disco en pequeñas unidades

lógicas llamadas ‘bloques’.

El ext2 divide las particiones lógicas que ocupa en Grupo de

Bloques (BG), conjuntos de bloques secuenciales. Dichos grupos

reducen la fragmentación de disco

$fdisk –l

$dd if=/dev/sda count=1 | hexdump –C | more

$df

$dumpe2fs /dev/sda -h

Todos los grupos de bloques

en el sistema de archivos

tienen el mismo tamaño y

son almacenados de forma

secuencial.

Page 69: El Sistema de Archivos de Unix

EL SISTEMA DE ARCHIVOS ext2 Cada grupo contiene una copia redundante de información de control crucial del FS (el

superbloque y los descriptores del FS) además de parte del propio FS (block bitmap, inode

bitmap, una porción de la tabla de inodos, y bloques de datos). La estructura de un grupo de

bloques es como sigue:

Cada Grupo de Bloques BG contiene:

· Una copia del superbloque.

· Tabla con los descriptores del grupo.

· Un mapa de bits de bloques de datos.

· Un mapa de bits de inodos.

· Un grupo de inodos.

· Bloques de datos.

Usar grupos de bloques es un gran avance en términos de fiabilidad: el hecho de guardar una copia de las

estructuras de control superbloque y tabla de descriptores en cada grupo facilita la recuperación del FS ante

una corrupción del superbloque, si ocurre una corrupción de datos y el super bloque principal o los descriptores

de bloque principal en el grupo de bloque 0 son inválidos, el administrador del sistema puede indicar a la

aplicación e2fsck que se refiera a dopias del superbloque de otro grupos de bloque.

También ayuda a alcanzar un buen rendimiento: reduciendo la distancia entre la tabla de inodos y los bloques

de datos es posible reducir las búsquedas de las cabezas de los discos.

Sólo esta parte es usada por el kernel

Este esquema reduce la fragmentación, debido a

que el kernel conserva los bloques de datos de un

archivo dentro de un mismo grupo de bloques, si es

posible.

Page 70: El Sistema de Archivos de Unix

TOTAL DE GRUPOS DE BLOQUE

El número total de grupos de bloque depende del tamaño de la partición y el tamaño del

bloque. La condición principal es que el bloque de mapas de bits, que se utiliza para

identificar los bloques que son utilizados y libres dentro del grupo, deben de ser

almacenados en un bloque simple. Por lo tanto, en cada grupo de bloque, deben de existir al

menos 8xb bloques, donde b es el tamaño del bloque en bytes. Así, el número total de

bloques de grupo es exactamente s/(8xb), siendo s el tamaño de la partición en bloques.

Por ejemplo:

Partición: 8GB

Tamaño de bloque: 4 kB

Cada mapa de bits de 4kB describe a 32k bloques de datos, esto es 128 MB.

Número total de grupos de bloque: 64

Page 71: El Sistema de Archivos de Unix

DESCRIPTORES DE GRUPO Y MAPAS

DE BITS

Cada grupo de bloques tiene su propio descriptor de grupo, la estructura ext2_group_desc

mantiene campos referenciados a este tipo de estructura.

Los campos bg_free_blocks_count,

bg_free_inodes_count y

bg_used_dirs_count se utilizan cuando

se almacenan nuevos i-nodos y

bloques de datos. Estos campos

determinan el bloque adecuado en el

cual almacenar cada estructura de

datos. Los mapas de bits son

secuencias de bits, en donde el valor 0

especifica que el i-nodo

correspondiente o bloque de datos se

encuentra libre y un 1 es indicativo de

que se encuentra ocupado. Debido a

que cada mapa de bits debe de

almacenarse dentro de un bloque

sencillo y dado que cada tamaño de

bloque puede ser de 1, 2 0 4k, un

mapa de bits simple describe el estado

de 8, 16 y 32k bloques.

Page 72: El Sistema de Archivos de Unix

TABLA DE i-nodos

Consiste de una serie de bloques

consecutivos, cada uno de los cuales

contiene un número predefinido de i-nodos.

El número 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 tamaño de 128

bytes. Un bloque de 1024 bytes contiene 8 i-

nodos, mientras que un bloque de 4k

contiene 32 i-nodos, varios campos

controlan esta información.

Page 73: El Sistema de Archivos de Unix

TIPOS DE ARCHIVOS

Page 74: El Sistema de Archivos de Unix

DIRECTORIOS

Los directorios en Ext2fs son listas enlazadas con entradas de longitud

variable. Cada entrada contiene el número de inodo, la longitud de la entrada,

el nombre de archivo y su longitud. La estructura de un directorio se muestra

a continuación:

El superbloque es un bloque que contiene la información más 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 */

Por lo regular, si el nombre de la trayectoria de un enlace simbólico 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, tubería y sockets no requieren bloques.

Toda la información se almacena en el i-nodo.

Page 75: El Sistema de Archivos de Unix

ESTRUCTURAS DE DATOS DE ext2 EN

LA MEMORIA Por aspectos de eficiencia, la mayor parte de la información de la estrcutura de datos del disco de una

partición de ext2 es copiada a la RAM cuando el sistema de archivos es montado, así se le permite al kernel

evitar muchas operaciones de lectura de disco subsecuentes. Debido a que las estructuras de datos de disco

Ext2 se almacenan en bloques de la partición Ext2, el kernel utiliza el buffer cache y la página cache para

conservarlos actualizados.

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.

Page 76: El Sistema de Archivos de Unix

ESTRUCTURAS DE DATOS DE ext2 EN

LA MEMORIA

Cuando el núcleo monta el sistema de ficheros ext2, se asigna un búfer para el superbloque

de Ext2 y lee su contenido desde el disco. El buffer se libera sólo cuando el sistema de

archivos Ext2 es desmontado. Cuando el kernel debe modificar un campo en el superbloque

Ext2, simplemente escribe el nuevo valor en la posición correcta del buffer correspondiente y

luego marca el buffer como sucio.

Por desgracia, este enfoque no puede ser adoptado por todas las estructuras de Ext2. El

aumento en la capacidad de los discos alcanzado en los últimos años ha provocado un

aumento en el tamaño del i-nodo y de los mapas de bits de los bloques de datos, por lo que

hemos llegado al punto en que ya no es conveniente guardar todos los mapas de bits en la

memoria RAM, al mismo tiempo.

Por ejemplo, considere un disco de 4 GB con un tamaño de bloque de 1 KB. Ya que cada uno

de los mapas de bits llena todos los bits de un bloque sencillo, cada uno de ellos describe el

estado de 8,192 bloques -es decir, de 8 MB de almacenamiento en disco-. El número de

grupos de bloques es de 4.096 MB / 8MB = 512 . Debido a que cada grupo de bloques

requiere un mapa de bits de i-nodos y un mapa de bits de bloques de datos, 1 MB de RAM

sería necesario para almacenar todos los 1024 mapas de bits en memoria.

Page 77: El Sistema de Archivos de Unix

EL SISTEMA DE ARCHIVOS ext3 La principal diferencia con ext2 es el registro por diario. Un sistema de archivos ext3 puede ser

montado y usado como un sistema de archivos ext2. Otra diferencia importante es que ext3

utiliza un árbol binario balanceado (árbol AVL) e incorpora el asignador de bloques de disco

Orlov, además de tener un crecimiento en línea.

El journaling es un mecanismo por el cual un sistema informático puede implementar

transacciones. También se le conoce como «registro por diario».

Se basa en llevar un journal o registro de diario 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 ésta dura.

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.

Page 78: El Sistema de Archivos de Unix

EL SISTEMA DE ARCHIVOS ext3

Las aplicaciones más frecuentes de los sistemas de journaling se usan para implementar

transacciones de sistemas de bases de datos y, más recientemente, para evitar la corrupción de

las estructuras de datos en las que se basan los sistemas de archivos modernos.

En el caso concreto de los sistemas de archivos, el journaling se suele limitar a las operaciones

que afectan a las estructuras que mantienen información sobre:

Estructuras de directorio.

Bloques libres de disco.

Descriptores de archivo (tamaño, fecha de modificación...)

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 efectúan los sistemas al apagarse

bruscamente, ya que el sistema al arrancar solo deberá deshacer el journal para tener un

sistema coherente de nuevo.

Page 79: El Sistema de Archivos de Unix

POSIBLES NIVELES DEL REGISTRO

POR DIARIO

DIARIO (bajo riesgo)

Los metadatos y los archivos de contenido son copiados al diario antes

de ser llevados al sistema de archivos principal. Como el diario está en

el disco continuamente puede mejorar el rendimiento en ciertas

ocasiones. En otras ocasiones el rendimiento es peor porque los datos

deben ser escritos dos veces, una al diario y otra a la parte principal del

sistema de archivos.

PEDIDO (riesgo medio)

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 mayoría de las distribuciones de Linux. Si hay

un error de tensión 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.

REESTRUCTURA

(riesgo alto)

Solo los metadatos son registrados en el diario, el contenido de los

archivos no. Los contenidos pueden estar escritos antes o después 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 comprobación.

Las versiones antiguas de los archivos pueden aparecer inesperadamente

después de una recuperación de diario. La carencia de sincronización entre

los datos y el diario es rápidamente subsanada en muchos casos. JFS usa

este nivel de journaling, pero se asegura de que cualquier basura es

borrada al reiniciar.

Page 80: El Sistema de Archivos de Unix

DESVENTAJAS DEL SISTEMA DE

ARCHIVOS ext3 Funcionalidad

Como ext3 está hecho para ser compatible con ext2, la mayoría de las estructuras del almacenamiento son

similares a las de ext2. Por ello, ext3 carece de muchas características de los diseños más recientes como

las extensiones, la localización dinámica de los i-nodos, y la sub-localización de los bloques. Hay un límite

de 31998 subdirectorios por cada directorio, que se derivan de su límite de 32 links por i-nodo. Ext3, como

la mayoría de los sistemas de archivos actuales de Linux, no puede ser verificado por el fsck mientras el

sistema de archivos está montado para la escritura. Si se intenta verificar un sistema de archivos que está

montado puede detectar falsos errores donde los datos no han sido volcados al disco todavía, y corromper

el sistema de archivos al intentar arreglar esos errores.

Fragmentación

No hay herramienta de desgragmentación 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 mayoría de las nuevas características de ext3. Hay

herramientas de usuario para desfragmentar como Shake y Defrag. Shake trabaja localizando para todo el

archivo como una operación, lo que generalmente causa que el localizador encuentre espacio continuo en

el disco. También 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

vacío. No existe una verdadera herramienta de desfragmentación para ext3.

Page 81: El Sistema de Archivos de Unix

CARACTERÍSTICAS DEL SISTEMA DE

ARCHIVOS ext4

Características Ventajas

Sistema de archivos

más grande

El sistema de archivos Ext3 alcanza un máximo de 32 TB (TIB), y una longitud de los archivos de 2 TB,

pero los límites, en la realidad, pueden ser inferiores a éstos y están en función de la arquitectura y

configuración de un sistema determinado, tal vez un mínimo 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 tamaño.

Extents 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 tamaño, entre otras cosas.

Pre-almacenamiento

persistente

Si una aplicación requiere asignar espacio en disco antes de utilizarla, la mayoría de los sistemas de

archivos lo hacen pero escribiendo 0s en el espacio de disco que aún no es utilizado. Ext4 permite la

preasignación sin hacer esto, lo que puede mejorar el rendimiento de algunas herramientas de multimedia

y en base de datos.

Asignación retardada Ext4 puede retrasar la asignación de espacio en disco hasta el último momento, lo que puede mejorar el

rendimiento.

Mas subdirectorios Ext3 sólo puede contener 32.000 subdirectorios dentro de un directorio, en ext4 este límite ha sido

eliminado.

Verificación tipo

checksum Ext4 añade una suma de comprobación 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.

De-fragmentación en

línea

Aunque ext3 no es propenso a la fragmentación excesiva, los archivos almacenados en ella pueden llegar

a ser al menos un poco fragmentado. Ext4 añade soporte para la desfragmentación en línea, lo que debe

mejorar el rendimiento general.

Page 82: El Sistema de Archivos de Unix

CARACTERÍSTICAS DEL SISTEMA DE

ARCHIVOS ext4

Recuperación Aunque no ha sido implementado, ext4 puede recuperar la recuperación (después de una eliminación), lo

cual, por supuesto, es muy útil cuando alguien accidentalmente borra un archivo.

Verificación del

sistema de archivos

más rápida

Ext4 añade estructuras de datos que permiten a fsck no analizar partes no utilizadas del disco en sus

verificaciones, lo que permite acelerar los controles del sistema de archivos

Nanosecond

timestamps

La mayoría 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

también indican que el ext4 brinda apoyo a fechas del 25 de abril 2514, contra el 18 de enero 2038, para

ext3.

Page 83: El Sistema de Archivos de Unix

EL SISTEMA DE ARCHIVOS VIRTUAL

Los distintos SO suelen usar su

propio Sistema de Ficheros, esto

complica la compartición de datos

en un disco duro entre distintos SO.

Linux ofrece soporte para distintos

Sistemas de Ficheros como EXT2,

Minix, FAT…

Los procesos necesitan de un

acceso uniforme a los datos, sin

preocuparse de qué Sistema de

Ficheros se trata, el VFS es la

interfaz entre las llamadas al

sistema y la gestión de archivos.

Las llamadas se dirigen al VFS,

que redirige la petición al módulo

que gestiona el archivo.

Page 84: El Sistema de Archivos de Unix

INVESTIGACIÓN

¿Cómo se realiza la administración del sistema de archivos?

¿Qué son las particiones del disco?

¿Qué implica dar formato a un disco?

¿Cómo se construye un sistema de archivos?

¿Cómo se comprueba el estado de un sistema de archivos?

¿Cómo se monta y desmonta un sistema de archivos?

Page 85: El Sistema de Archivos de Unix

CONCLUSIONES

• Un sistema de archivos es un mecanismo de abstracción de los dispositivos físicos de almacenamiento que nos permite manejarlos a un nivel lógico 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 tamaños del i-nodo pequeño 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 jerárquica a los sistemas de archivos de UNIX. Su función consiste en establecer la relación que existe entre el nombre de un archivo y su i-nodo correspondiente.

Page 86: El Sistema de Archivos de Unix

IMPLEMENTACIÓN DEL SISTEMA DE

ARCHIVOS

http://www.clubdelphi.com/trucos/index.php?id=356