Clase File Systems

Anuncio
Sistemas de archivos
Leopoldo Taravilse1
1 Departamento
de Computación
Sistemas Operativos
05/05/2015
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
1 / 138
File Systems
¿Qué es un archivo?
Definición de archivo
Un archivo es:
Un recurso del sistema donde almacenamos informacin durable, en el
sentido de que luego de que el programa que lo crea termina de
ejecutar el archivo sigue existiendo y estando disponible para que
otros programas lo usen.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
2 / 138
File Systems
¿Qué es un archivo?
Definición de archivo
Un archivo es:
Un recurso del sistema donde almacenamos informacin durable, en el
sentido de que luego de que el programa que lo crea termina de
ejecutar el archivo sigue existiendo y estando disponible para que
otros programas lo usen.
Para nosotros, un subconjunto de los bytes disponibles en el disco que
un programa puede crear, leer, escribir o eliminar entre otras
operaciones.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
2 / 138
File Systems
¿Qué es un archivo?
Definición de archivo
Un archivo es:
Un recurso del sistema donde almacenamos informacin durable, en el
sentido de que luego de que el programa que lo crea termina de
ejecutar el archivo sigue existiendo y estando disponible para que
otros programas lo usen.
Para nosotros, un subconjunto de los bytes disponibles en el disco que
un programa puede crear, leer, escribir o eliminar entre otras
operaciones.
¿Pero cómo se organizan los archivos en el disco?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
2 / 138
File Systems
¿Qué es un archivo?
Cómo organizamos los archivos en disco?
Los archivos tienen varios atributos que es necesario almacenar:
Nombre: Un nombre human-friendly para que el usuario identifique el
archivo.
Identificador: Un nombre no legible por seres humanos, generalmente
un número, que sirve para que el File System identifique el archivo.
Ubicación: El lugar en el disco donde el file system va a buscar el
archivo cuando lo necesita.
Tamaño: El tamao del archivo. Sirve para que el file system sepa qué
porciones del disco ocupa el archivo.
Permisos: Sirven para identificar qué puede hacer cada usuario con el
archivo (leer, modificar, borrar, etc).
Timestamp y usuario: Identifican tanto quién y cuando creó el
archivo como la misma información sobre la última modificación.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
3 / 138
File Systems
File Systems
¿Pero qué es un File System?
El file system define como se organiza toda esta información para que los
archivos puedan ser accedidos con facilidad por el usuario. Algunas de las
operaciones que puede realizar el usuario gracias al file system son:
Crear un archivo
Escribir en un archivo
Leer un archivo
Mover un archivo de un directorio a otro
Borrar un archivo
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
4 / 138
File Systems
File Systems
¿Pero qué es un File System?
El file system define como se organiza toda esta información para que los
archivos puedan ser accedidos con facilidad por el usuario. Algunas de las
operaciones que puede realizar el usuario gracias al file system son:
Crear un archivo
Escribir en un archivo
Leer un archivo
Mover un archivo de un directorio a otro
Borrar un archivo
Más adelante vamos a ver en detalle cómo se guardan los directorios.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
4 / 138
File Systems
File Systems
Tipos de File System
Hoy en dı́a existen distintos file systems soportados por los distintos
sistemas operativos:
FAT (en sus distintas versiones FAT, FAT12, FAT16, FAT32)
exFAT
NTFS
ext2, ext3, ext4
HFS
ReiserFS
y muchos otros más.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
5 / 138
File Systems
File Systems
Tipos de File System
Hoy en dı́a existen distintos file systems soportados por los distintos
sistemas operativos:
FAT (en sus distintas versiones FAT, FAT12, FAT16, FAT32)
exFAT
NTFS
ext2, ext3, ext4
HFS
ReiserFS
y muchos otros más.
También existen File Systems para sistemas distribuidos, pero esos no los
vamos a ver por ahora.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
5 / 138
File Systems
File Systems
Tipos de File System
Hoy en dı́a existen distintos file systems soportados por los distintos
sistemas operativos:
FAT (en sus distintas versiones FAT, FAT12, FAT16, FAT32)
exFAT
NTFS
ext2, ext3, ext4
HFS
ReiserFS
y muchos otros más.
También existen File Systems para sistemas distribuidos, pero esos no los
vamos a ver por ahora.
De hecho hoy vamos a ver sólo dos de los mencionados en esta slide,
adivinen cuáles...
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
5 / 138
File Systems
FAT
File allocation table (FAT)
Originalmente diseñado para el uso en diskettes y adoptado por
Windows y DOS durante casi 20 años.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
6 / 138
File Systems
FAT
File allocation table (FAT)
Originalmente diseñado para el uso en diskettes y adoptado por
Windows y DOS durante casi 20 años.
Si queda tiempo después de la clase les cuento lo que era un diskette!
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
6 / 138
File Systems
FAT
File allocation table (FAT)
Originalmente diseñado para el uso en diskettes y adoptado por
Windows y DOS durante casi 20 años.
Si queda tiempo después de la clase les cuento lo que era un diskette!
Al ser pensado para dispositivos de almacenamiento 1.44MB por
gente que pensaba que 640KB de memoria iban a ser suficientes no
pensaron en escalabilidad a la hora de diseñar FAT.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
6 / 138
File Systems
FAT
File allocation table (FAT)
Originalmente diseñado para el uso en diskettes y adoptado por
Windows y DOS durante casi 20 años.
Si queda tiempo después de la clase les cuento lo que era un diskette!
Al ser pensado para dispositivos de almacenamiento 1.44MB por
gente que pensaba que 640KB de memoria iban a ser suficientes no
pensaron en escalabilidad a la hora de diseñar FAT.
Por esta razón con el crecimiento del tamaño de los discos se dejó de
usar en PCs.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
6 / 138
File Systems
FAT
File allocation table (FAT)
Originalmente diseñado para el uso en diskettes y adoptado por
Windows y DOS durante casi 20 años.
Si queda tiempo después de la clase les cuento lo que era un diskette!
Al ser pensado para dispositivos de almacenamiento 1.44MB por
gente que pensaba que 640KB de memoria iban a ser suficientes no
pensaron en escalabilidad a la hora de diseñar FAT.
Por esta razón con el crecimiento del tamaño de los discos se dejó de
usar en PCs.
Sin embargo se sigue utilizando por ejemplo en dispositivos de
almacenamiento externo como PenDrives o memorias SD.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
6 / 138
File Systems
FAT
File allocation table (FAT)
Originalmente diseñado para el uso en diskettes y adoptado por
Windows y DOS durante casi 20 años.
Si queda tiempo después de la clase les cuento lo que era un diskette!
Al ser pensado para dispositivos de almacenamiento 1.44MB por
gente que pensaba que 640KB de memoria iban a ser suficientes no
pensaron en escalabilidad a la hora de diseñar FAT.
Por esta razón con el crecimiento del tamaño de los discos se dejó de
usar en PCs.
Sin embargo se sigue utilizando por ejemplo en dispositivos de
almacenamiento externo como PenDrives o memorias SD.
Pero... ¿Cómo funciona FAT?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
6 / 138
File Systems
FAT
File allocation table (FAT)
Con FAT el disco está dividido en bloques, tı́picamente de entre 2KB
y 32KB. Cada bloque pertenece a un sólo archivo (o a ninguno
si está libre) y cada archivo puede ocupar uno o más bloques.
Un bloque no es lo mismo que un sector del disco.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
7 / 138
File Systems
FAT
File allocation table (FAT)
Con FAT el disco está dividido en bloques, tı́picamente de entre 2KB
y 32KB. Cada bloque pertenece a un sólo archivo (o a ninguno
si está libre) y cada archivo puede ocupar uno o más bloques.
Un bloque no es lo mismo que un sector del disco.
FAT guarda una tabla que indica para cada bloque del disco cuál es el
bloque que le sigue en el archivo, o si es el último bloque del archivo,
y en caso de que el bloque esté libre indica que no pertenece a ningún
archivo. Esta tabla se guarda en disco y por cuestiones de eficiencia
se carga en memoria al momento del booteo.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
7 / 138
File Systems
FAT
File allocation table (FAT)
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
8 / 138
File Systems
FAT
File allocation table (FAT)
Todo muy lindo hasta ahora pero... ¿Y el primer bloque de un archivo, de
dónde lo sacamos?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
8 / 138
File Systems
FAT
File allocation table (FAT)
Todo muy lindo hasta ahora pero... ¿Y el primer bloque de un archivo, de
dónde lo sacamos?
Para eso están los directorios.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
8 / 138
File Systems
FAT
Directorios
Los directorios son tratados como archivos en FAT en el sentido de
que cada directorio ocupa bloques del disco y contiene información
adentro de los bloques sobre los datos del directorio.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
9 / 138
File Systems
FAT
Directorios
Los directorios son tratados como archivos en FAT en el sentido de
que cada directorio ocupa bloques del disco y contiene información
adentro de los bloques sobre los datos del directorio.
Existe un bloque distinguido en la FAT para el directorio root de
modo que siempre es posible ubicar dicho directorio.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
9 / 138
File Systems
FAT
Directorios
Los directorios son tratados como archivos en FAT en el sentido de
que cada directorio ocupa bloques del disco y contiene información
adentro de los bloques sobre los datos del directorio.
Existe un bloque distinguido en la FAT para el directorio root de
modo que siempre es posible ubicar dicho directorio.
Además, cada directorio tiene información en sus bloques sobre los
bloques en los cuáles empiezan los archivos y directorios que contiene.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
9 / 138
File Systems
FAT
Directorios
Los directorios son tratados como archivos en FAT en el sentido de
que cada directorio ocupa bloques del disco y contiene información
adentro de los bloques sobre los datos del directorio.
Existe un bloque distinguido en la FAT para el directorio root de
modo que siempre es posible ubicar dicho directorio.
Además, cada directorio tiene información en sus bloques sobre los
bloques en los cuáles empiezan los archivos y directorios que contiene.
De esta manera podemos recorrer desde root cualquier path que
querramos recorrer.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
9 / 138
File Systems
FAT
Directorios
Los directorios son tratados como archivos en FAT en el sentido de
que cada directorio ocupa bloques del disco y contiene información
adentro de los bloques sobre los datos del directorio.
Existe un bloque distinguido en la FAT para el directorio root de
modo que siempre es posible ubicar dicho directorio.
Además, cada directorio tiene información en sus bloques sobre los
bloques en los cuáles empiezan los archivos y directorios que contiene.
De esta manera podemos recorrer desde root cualquier path que
querramos recorrer.
Pero... y si hacemos cd .., ¿hay que volver a root?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
9 / 138
File Systems
FAT
Directorios
Los directorios son tratados como archivos en FAT en el sentido de
que cada directorio ocupa bloques del disco y contiene información
adentro de los bloques sobre los datos del directorio.
Existe un bloque distinguido en la FAT para el directorio root de
modo que siempre es posible ubicar dicho directorio.
Además, cada directorio tiene información en sus bloques sobre los
bloques en los cuáles empiezan los archivos y directorios que contiene.
De esta manera podemos recorrer desde root cualquier path que
querramos recorrer.
Pero... y si hacemos cd .., ¿hay que volver a root? No! También se
guarda en el bloque de un directorio el bloque inicial del directorio
padre.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
9 / 138
File Systems
FAT
Problemas de FAT
FAT presenta muchos problemas.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
10 / 138
File Systems
FAT
Problemas de FAT
FAT presenta muchos problemas.
Por ejemplo, al estar la tabla en memoria puede ocupar mucho lugar.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
10 / 138
File Systems
FAT
Problemas de FAT
FAT presenta muchos problemas.
Por ejemplo, al estar la tabla en memoria puede ocupar mucho lugar.
Además los archivos en FAT no pueden ocupar más de 232 − 1 bytes
(4GB), ası́ que olvidense de tener Avengers II en 1080p en una
computadora que use FAT.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
10 / 138
File Systems
FAT
Problemas de FAT
FAT presenta muchos problemas.
Por ejemplo, al estar la tabla en memoria puede ocupar mucho lugar.
Además los archivos en FAT no pueden ocupar más de 232 − 1 bytes
(4GB), ası́ que olvidense de tener Avengers II en 1080p en una
computadora que use FAT.
La razón por la cual los archivos no pueden ocupar más de 232 − 1 bytes es
porque el campo de tamaño de un archivo, que se mide en bytes, mide 32
bits.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
10 / 138
File Systems
FAT
Problemas de FAT
FAT presenta muchos problemas.
Por ejemplo, al estar la tabla en memoria puede ocupar mucho lugar.
Además los archivos en FAT no pueden ocupar más de 232 − 1 bytes
(4GB), ası́ que olvidense de tener Avengers II en 1080p en una
computadora que use FAT.
La razón por la cual los archivos no pueden ocupar más de 232 − 1 bytes es
porque el campo de tamaño de un archivo, que se mide en bytes, mide 32
bits.
También existen problemas con la seguridad en FAT ya que no es posible
gestionar permisos con FAT.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
10 / 138
File Systems
ext2
i-nodos
Como ya cursaron Algo II ya saben todos lo que es un nodo, por
ejemplo, en el contexto de una lista enlazada. Pero... ¿Qué es un
i-nodo?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
11 / 138
File Systems
ext2
i-nodos
Como ya cursaron Algo II ya saben todos lo que es un nodo, por
ejemplo, en el contexto de una lista enlazada. Pero... ¿Qué es un
i-nodo?
Ya lo vieron en la teórica pero lo vamos a repasar ya que les va a
servir para el taller de File Systems.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
11 / 138
File Systems
ext2
i-nodos
Como ya cursaron Algo II ya saben todos lo que es un nodo, por
ejemplo, en el contexto de una lista enlazada. Pero... ¿Qué es un
i-nodo?
Ya lo vieron en la teórica pero lo vamos a repasar ya que les va a
servir para el taller de File Systems.
Para el que no vino a la teórica... no, un i-nodo no es un nodo de
Apple!
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
11 / 138
File Systems
ext2
i-nodos
Como ya cursaron Algo II ya saben todos lo que es un nodo, por
ejemplo, en el contexto de una lista enlazada. Pero... ¿Qué es un
i-nodo?
Ya lo vieron en la teórica pero lo vamos a repasar ya que les va a
servir para el taller de File Systems.
Para el que no vino a la teórica... no, un i-nodo no es un nodo de
Apple!
Un i-nodo es una estructura que sirve para almacenar información
sobre archivos y directorios. ext2, ext3 y ext4 son tres file systems
que están implementados utilizando i-nodos.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
11 / 138
File Systems
ext2
i-nodos
Como ya cursaron Algo II ya saben todos lo que es un nodo, por
ejemplo, en el contexto de una lista enlazada. Pero... ¿Qué es un
i-nodo?
Ya lo vieron en la teórica pero lo vamos a repasar ya que les va a
servir para el taller de File Systems.
Para el que no vino a la teórica... no, un i-nodo no es un nodo de
Apple!
Un i-nodo es una estructura que sirve para almacenar información
sobre archivos y directorios. ext2, ext3 y ext4 son tres file systems
que están implementados utilizando i-nodos.
Se llaman nodos porque la forma de llegar a un archivo es parecida a
la de recorrer una lista enlazada.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
11 / 138
File Systems
ext2
i-nodos
¿Qué es un i-nodo?
Un i-nodo (del inglés index node) es una estructura de datos que
representa un archivo o directorio dentro del file system. El directorio root
está guardado en el i-nodo número 2 y cada i-nodo representa un archivo o
directorio.
Desde root se pueden recorrer los directorios al igual que en FAT
moviendose por los directorios como si fuesen archivos, ya que un
directorio tiene en sus bloques en disco la información de los archivos que
contiene, entre ellos, sus subdirectorios.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
12 / 138
File Systems
ext2
Indirecciones en i-nodos
Un i-nodo puede tener hasta 12 entradas, representando 12 bloques
de memoria.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
13 / 138
File Systems
ext2
Indirecciones en i-nodos
Un i-nodo puede tener hasta 12 entradas, representando 12 bloques
de memoria.
Además, un i-nodo puede apuntar a un bloque que se comporta como
un i-nodo, en el sentido de que tiene entradas que representan
direcciones de bloques en el disco.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
13 / 138
File Systems
ext2
Indirecciones en i-nodos
Un i-nodo puede tener hasta 12 entradas, representando 12 bloques
de memoria.
Además, un i-nodo puede apuntar a un bloque que se comporta como
un i-nodo, en el sentido de que tiene entradas que representan
direcciones de bloques en el disco.
Y también hay una entrada del i-nodo que apunta a bloques que
apuntan a bloques que apuntan a bloques donde está la información
de los archivos.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
13 / 138
File Systems
ext2
Indirecciones en i-nodos
Y hay una entrada que apunta a bloques que apuntan a bloques que
apuntan a bloques que apuntan a los bloques que tienen la información del
archivo.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
14 / 138
File Systems
ext2
Indirecciones en i-nodos
Y hay una entrada que apunta a bloques que apuntan a bloques que
apuntan a bloques que apuntan a los bloques que tienen la información del
archivo.
Ası́ dicho es un lio, mejor veamoslo gráficamente.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
14 / 138
File Systems
ext2
Indirecciones en i-nodos
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
15 / 138
File Systems
ext2
Datos y metadata
Los i-nodos guardan mucha información sobre los archivos:
El tamaño del archivo.
El ID del dispositivo donde está el archivo.
El User ID del dueño del archivo y el group ID del archivo.
Los permisos.
Timestamps.
Link count: cuenta cuántos links apuntan a ese i-nodo.
Los punteros a los bloques del archivo.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
16 / 138
File Systems
ext2
Directorios en i-nodos
Cómo contamos los archivos que hay en un directorio
Un caso de uso muy común puede ser querer contar la cantidad de
archivos de un directorio. ¿Se les ocurre cómo?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
17 / 138
File Systems
ext2
Directorios en i-nodos
Cómo contamos los archivos que hay en un directorio
Un caso de uso muy común puede ser querer contar la cantidad de
archivos de un directorio. ¿Se les ocurre cómo?
Con el tamaño del directorio podemos ir leyendo las entradas hasta que
leemos N bytes donde N es el tamaño del directorio. Si no tuviesemos el
tamaño del directorio no sabrı́amos hasta donde leer.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
17 / 138
File Systems
ext2
Dir-entries
Los bloques de directorios están compuestos por dir-entries, que contienen
información sobre los archivos y directorios que se encuentran dentro del
directorio al cuál representan.
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
18 / 138
File Systems
Manos a la obra
Ejercicio
Se tiene un disco con 225 sectores de 1KB y:
Tamaño de bloque de 2, 4 u 8 sectores.
Identificadores de bloque de 8, 16, 24 o 32 bits.
Se pide:
1
Suponiendo que se configura con 2 sectores por bloque,
identificadores de 16 bits. Cuál es el tamaño que ocupa la FAT?
2
¿Cuál es el máximo tamaño que pueden ocupar los archivos en disco?
3
¿Cuántos archivos de 1MB puedo guardar en el disco?
4
¿Y de 1KB?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
19 / 138
File Systems
Preguntas
¿Preguntas?
Leopoldo Taravilse (DC-UBA)
File Systems
05/05/2015
20 / 138
Descargar