Title: El Sistema de Archivos
1El Sistema de Archivos
Pedro Rodríguez Moreno Arquitectura de
Computadores Departamento de Sistemas de
Información Facultad de Ciencias Empresariales
2Ideas Generales
- Los sistemas de archivos ofrecen una organización
jerárquica de archivos, información (metadatos)
sobre dichos archivos y gestión del espacio
físico que ocupan en el disco duro. - Un sistema de archivos está contenido por sí
mismo, y completo con su propio directorio raíz,
subdirectorios (carpetas), archivos, y todos los
datos y metadatos asociados. - Una partición puede ser vista lógicamente como un
arreglo lineal de bloques. El tamaño del bloque
físico de un disco es generalmente de 512 bytes
multiplicado por alguna potencia de 2 (diferentes
versiones han usado tamaños de bloques de 512,
1024, y 2048 bytes). - Al comienzo de la partición se encuentra el área
de booteo, el cual puede contener el código
requerido para el bootstrap (carga e
inicialización) del sistema operativo.
3Windows NT y Linux
- Para Windows NT sus administradores están
acostumbrados a elegir entre FAT32 o NTFS para el
sistema de archivos instalado. - En cambio en un entorno Linux, los
administradores tienen un gran número de opciones
de sistemas de archivos a su disposición. - Cuál es el mejor sistema de archivos para
nuestro entorno? - Cuál nos dará rendimiento, seguridad o
confiabilidad?
4Preguntas mas relevantes
Hay requisitos especiales de control de
acceso a los archivos?
Cuántos archivos se van a guardar en el
servidor?
xfs ufs ext2 ntfs
ext3 iso9660
Necesitamos archivos grandes o pequeños?.
Qué rendimiento se espera del sistema?.
5El Sistema de Archivos de Unix
Superblock
Area de booteo
6El Superblock
- El superblock contiene atributos y metadatos del
sistema de archivos - Tamaño en bloques del sistema de archivos.
- Tamaño en bloques de la lista de inodes.
- Número de bloques e inodes libres.
- Lista de bloques libres.
- Lista de inodes libres.
7El inode
- Es una estructura de datos que contiene
información de tipo administrativa, o metadatos,
de un archivo. - Cuando un archivo está abierto, o un directorio
está activo, el kernel almacena los datos desde
el dinode del disco a una estructura de datos en
memoria, llamada inode. - En disco se denomina on-disk inode o struct
dinode. - El in-core corresponde a la estructura que en
memoria se denomina inode.
8Estructura del dinode
Di_node di_nlinks di_uid di_gid di_size di_addr
di_gen di_time di_mtime di_ctime
9La Estructura di_node
- Almacena el tipo del archivo y los permisos de
acceso.
otros
grupo
dueño
10Punteros a bloques de datos di_addr
0 1 2 3 4 5 6 7 8 9 10 11 12
......
11Utilización de la función stat()
- Su forma general es la siguiente
- include ltsys/stat.hgt
- include ltunistd.hgt
- int stat(const char file_name, struct stat
buf) - Esta función retorna información sobre el archivo
especificado en file_name. No se necesita algún
derecho de acceso hacia el archivo para obtener
la información que se necesita. - La función stat accesa la información del archivo
file_filename y llena el buffer buf. Esta función
retorna una estructura stat, la cual contiene los
siguientes campos (versión Linux)
12La Estructura stat
13Dos copias
Directorio
Datos y
Boot
DISCO MS-DOS
de la FAT
Raíz
Directorios
Super
Mapas
Datos y
i-nodos
Boot
DISCO UNIX
Bloque
de bits
Directorios
Boot
DISCO Windows NT Volumen NTFS
Disco
Boot
FAT o nodos-i
Bloques asignados a los directorios
Bloques asignados a archivos
14(No Transcript)
15(No Transcript)
16(No Transcript)
17(No Transcript)
18DIRECTORIO
0
reservado
Tamaño del disco
1er cluster
Nombre archivo
1
reservado
...
2
EOF
3
13
F1
6
4
2
f2
5
5
9
f3
...
10
6
8
6
8
4
2
f1
7
libre
8
4
9
12
5
9
12
f2
10
3
11
error
12
EOF
10
3
13
f3
13
EOF
14
libre
19Bytes
20(No Transcript)
21Sistemas de Archivos de disco
- EXT2
- EXT3
- FAT
- EFS
- FFS
- HFS
- HPFS
- ISO 9660
- KFS
- Minix
- ReiserFS
- JFS
- XFS
- NTFS
- OFS
- UDF
- UFS.
22Sistema de Archivos con Journaling
- Un sistema de archivos Journaling, se puede
definir como un sistema que sirve para darle más
seguridad a la integridad de los datos, y los
metadatos que se encuentran en almacenamiento
secundario, como lod discos. - Se recomienda para sistemas de alta
disponibilidad. - En sí la "nueva característica" que poseen es de
las "transacciones", que hacen que el sistema se
recupere "normalmente", por ejemplo, ante caídas
inesperadas. - Qué significa "journaling"?. Journaling es la
propiedad de estos sistemas de archivos, de
registrar las operaciones parciales que forman
parte de una transacción. - Para qué sirven?. Si se apaga mal el computador
(por ejemplo por un corte de energía), se evita
que los archivos se corrompan. Aquellas
transacciones que no se completaron, se registran
con anticipación en el "journal", y al volver a
reiniciar la máquina, éstas se restauran para que
el sistema de archivos no pierda datos.
23El sistema de archivos EXT2
- EXT2 (second extended filesystem o "segundo
sistema de archivos extendido") - Se puede decir que ext2 ha sido sistema de
archivos estándar para Linux, fue creado por
Wayne Davidson. - No es un "Journaling File System", porque no
posee una bitácora. - Soporta el tipo de archivos estándar de Unix.
- Originalmente soportaba sistemas de archivos de
hasta 2GB pero con recientes trabajos en VFS se
ha llegado a soportar sistemas de archivos de
hasta 4TB.
24El sistema de archivos ext3
- EXT3 (third extended filesystem) es exactamente
igual al anterior ext2, pero solo que este nuevo
se dice que es un sistema de archivos journaling,
por el solo hecho de tener un "espacio apartado
para el buffer del journaling" o bitácora. - Ext3 es mucho más seguro que ext2.
- Si se está usando ext2 y se desea cambiar a otro
sistema de archivos journaling, se recomienda que
el primero sea ext3, porque hay menos riesgos de
perder los datos e información, y además porque
es compatible con ext2. - Fue creado por Stephen Tweedie uno de los
desarrolladores del anterior ext2. - Lo peor de este sistema, es que no posee ninguna
característica para mejorar la rapidez en la
manipulación de los datos, y en la escritura. - Para convertir un partición ext2 a otra ext3,
sólo se hace con - tune2fs -j /dev/hda
25El sistema de archivos XFS
- La versión 1.0 de XFS, (desarrollado por SGI) la
dió a conocer en Mayo del 2001. - Principalmente este fue creado para el sistema
operativo de SGI, IRIX. - Este sistema de archivos es muy bueno con
archivos grandes. - Si se trabaja con archivos "medianamente"
pequeños, no se recomienda usar XFS, sino
ReiserFS, que para este tipo de archivos es
rápido.
26El sistema de archivos ReiserFS
- Este fue uno de los primeros sistemas de archivos
que estuvieron disponibles para Linux. - Es de proposito general y fue desarrollado por
Hans Reiser. - Posee una estructura de datos B-trees, es rápido
con archivos pequeños, todo lo contrario de XFS. - Desafortunadamente, convertir un sistema a
ReiserFS a EXT2 requiere el reformateo completo
de sus discos, una desventaja no presente en su
principal competidor, EXT3.