PDF de programación - Capítulo 9 - The File system

Imágen de pdf Capítulo 9 - The File system

Capítulo 9 - The File systemgráfica de visualizaciones

Publicado el 12 de Abril del 2019
606 visualizaciones desde el 12 de Abril del 2019
103,3 KB
16 paginas
Creado hace 21a (21/08/2002)
file:///root/tlk-0.8-2/fs/filesystem.html

Índice general, Mostrar marcos, Sin marcos

Capítulo 9
The File system

Este capítulo describe cómo el kernel de Linux gestiona los ficheros en los sistemas de ficheros
soportados por éste. Describe el Sistema de Ficheros Virtual (VFS) y explica cómo los sistemas de
ficheros reales del kernel de Linux son soportados.

Una de los rasgos más importantes de Linux es su soporte para diferentes sistemas de ficheros. Ésto lo hace
muy flexible y bien capacitado para coexistir con muchos otros sistemas operativos. En el momento de escribir
ésto, Linux soporta 15 sistemas de ficheros; ext, ext2, xia, minix, umsdos, msdos, vfat, proc, smb,
ncp, iso9660, sysv, hpfs, affs and ufs, y sin duda, con el tiempo se añadirán más.

En Linux, como en Unix, a los distintos sistemas de ficheros que el sistema puede usar no se accede por
identificadores de dispositivo (como un número o nombre de unidad) pero, en cambio se combinan en una
simple structura jerárquica de árbol que representa el sistema de ficheros como una entidad única y sencilla.
Linux añade cada sistema de ficheros nuevo en este simple árbol de sistemas de ficheros cuando se monta.
Todos los sistemas de ficheros, de cualquier tipo, se montan sobre un directorio y los ficheros del sistema de
ficheros son el contenido de ese directorio. Este directorio se conoce como directorio de montaje o punto de
montaje. Cuando el sistema de ficheros se desmonta, los ficheros propios del directorio de montaje son visibles
de nuevo.

Cuando se inicializan los discos (usando fdisk, por ejemplo) tienen una estructura de partición inpuesta que
divide el disco físico en un número de particiones lógicas. Cada partición puede mantener un sistema de
ficheros, por ejemplo un sistema de ficheros EXT2. Los sistemas de ficheros organizan los ficheros en
structuras jerárquicas lógicas con directorios, enlaces flexibles y más contenidos en los bloques de los
dispositivos físicos. Los dispositivos que pueden contener sistemas de ficheros se conocen con el nombre de
dispositivos de bloque. La partición de disco IDE /dev/hda1, la primera partición de la primera unidad de
disco en el sistema, es un dispositivo de bloque. Los sistemas de ficheros de Linux contemplan estos
dispositivos de bloque como simples colecciones lineales de bloques, ellos no saben o tienen en cuenta la
geometría del disco físico que hay debajo. Es la tarea de cada controlador de dispositivo de bloque asignar una
petición de leer un bloque particular de su dispositivo en términos comprensibles para su dispositivo; la pista
en cuestión, sector y cilindro de su disco duro donde se guarda el bloque. Un sistema de ficheros tiene que
mirar, sentir y operar de la misma forma sin importarle con que dispositivo está tratando. Por otra parte, al
usar los sistemas de ficheros de Linux, no importa (al menos para el usuario del sistema) que estos distintos
sistemas de ficheros estén en diferentes soportes controlados por diferentes controladores de hardware. El
sistema de ficheros puede incluso no estar en el sistema local, puede ser perfectamente un disco remoto
montado sobre un enlace de red. Considerese el siguiente ejemplo donde un sistema Linux tiene su sistema de
ficheros raíz en un disco SCSI:

A E boot etc lib opt tmp usr
C F cdrom fd proc root var sbin
D bin dev home mnt lost+found

Ni los usuarios ni los programas que operan con los ficheros necesitan saber que /C de hecho es un sistema de
ficheros VFAT montado que está en el primer disco IDE del sistema. En el ejemplo (que es mi sistema Linux
en casa), /E es el disco IDE primario en la segunda controladora IDE. No importa que la primera controladora
IDE sea una controladora PCI y que la segunda sea una controladora ISA que también controla el IDE
CDROM. Puedo conectarme a la red donde trabajo usando un modem y el protocolo de red PPP y en este caso
puedo remotamente montar mis sistemas de ficheros Linux Alpha AXP\ sobre /mnt/remote.

Los ficheros en un sistema de ficheros son grupos de datos; el fichero que contiene las fuentes de este capítulo

1 of 16

08/21/02 15:09

file:///root/tlk-0.8-2/fs/filesystem.html

es un fichero ASCII llamado filesystems.tex. Un sistema de ficheros no sólo posee los datos contenidos
dentro de los ficheros del sistema de ficheros, además mantiene la estructura del sistema de ficheros.
Mantiene toda la información que los usuarios de Linux y procesos ven como ficheros, directorios, enlaces
flexibles, información de protección de ficheros y así. Por otro lado debe mantener esa información de forma
eficiente y segura, la integridad básica del sistema operativo depende de su sistema de ficheros. Nadie usaria
un sistema operativo que perdiera datos y ficheros de forma aleatoria1.

Minix, el primer sistema de ficheros que Linux tuvo es bastante restrictivo y no era muy rápido. Minix, the
first file system that Linux had is rather restrictive and lacking in performance. Sus nombres de ficheros no
pueden tener más de 14 caracteres (que es mejor que nombres de ficheros 8.3) y el tamaño máximo de
ficheros es 64 MBytes. 64 MBytes puede a primera vista ser suficiente pero se necesitan tamaños de ficheros
más grandes para soportar incluso modestas bases de datos. El primer sistema de ficheros diseñado
especificamente para Linux, el sistema de Ficheros Extendido, o EXT, fue introducido en Abril de 1992 y
solventó muchos problemas pero era aun falto de rapidez. Así, en 1993, el Segundo sistema de Ficheros
Extendido, o EXT2, fue añadido. Este es el sistema de ficheros que se describe en detalle más tarde en este
capítulo.

Un importante desarrollo tuvo lugar cuando se añadió en sistema de ficheros EXT en Linux. El sistema de
ficheros real se separó del sistema operativo y servicios del sistema a favor de un interfaz conocido como el
sistema de Ficheros Virtual, o VFS. VFS permite a Linux soportar muchos, incluso muy diferentes, sistemas
de ficheros, cada uno presentando un interfaz software común al VFS. Todos los detalles del sistema de
ficheros de Linux son traducidos mediante software de forma que todo el sistema de ficheros parece idéntico
al resto del kernel de Linux y a los programas que se ejecutan en el sistema. La capa del sistema de Ficheros
Virtual de Linux permite al usuario montar de forma transparente diferentes sistemas de ficheros al mismo
tiempo.

El sistema de Ficheros Virtual está implementado de forma que el acceso a los ficheros es rápida y tan
eficiente como es posible. También debe asegurar que los ficheros y los datos que contiene son correctos.
Estos dos requisitos pueden ser incompatibles uno con el otro. El VFS de Linux mantiene una antememoria
con información de cada sistema de ficheros montado y en uso. Se debe tener mucho cuidado al actualizar
correctamente el sistema de ficheros ya que los datos contenidos en las antememorias se modifican cuando
cuando se crean, escriben y borran ficheros y directorios. Si se pudieran ver las estructuras de datos del sistema
de ficheros dentro del kernel en ejecución, se podria ver los bloques de datos que se leen y escriben por el
sistema de ficheros. Las estructuras de datos, que describen los ficheros y directorios que son accedidos serian
creadas y destruidas y todo el tiempo los controladores de los dispositivo estarian trabajando, buascando y
guardando datos. La antememoria o caché más importantes es el Buffer Cache, que está integrado entre cada
sistema de ficheros y su dispositivo de bloque. Tal y como se accede a los bloques se ponen en el Buffer Cache
y se almacenan en varias colas dependiendo de sus estados. El Buffer Cache no sólo mantiene buffers de
datos, tambien ayuda a administrar el interfaz asíncrono con los controladores de dispositivos de bloque.

9.1 The Second Extended File system (EXT2)

Figure 9.1: Physical Layout of the EXT2 File system

El Segundo sistema de ficheros Extendido fue pensado (por Rémy Card) como un sistema de ficheros

2 of 16

08/21/02 15:09

file:///root/tlk-0.8-2/fs/filesystem.html

extensible y poderoso para Linux. También es el sistema de ficheros más éxito tiene en la comunidad Linux
y es básico para todas las distribuciones actuales de Linux. El sistema de ficheros EXT2, como muchos
sistemas de ficheros, se construye con la premisa de que los datos contenidos en los ficheros se guarden en
bloques de datos. Estos bloques de datos son todos de la misma longitud y, si bien esa longitud puede variar
entre diferentes sistemas de ficheros EXT2 el tamaño de los bloques de un sistema de ficheros EXT2 en
particular se decide cuando se crea (usando mke2fs). El tamaño de cada fichero se redondea hasta un numero
entero de bloques. Si el tamaño de bloque es 1024 bytes, entonces un fichero de 1025 bytes ocupará dos
bloques de 1024 bytes. Desafortunadamente esto significa que por media se desperdicia un bloque por fichero.
==========================================================================
Normalmente en ordenadores se Usually in computing you trade off CPU usage for memory and disk space
utilisation. In this case Linux, along with most operating systems, trades off a relatively inefficient disk usage
in order to reduce the workload on the CPU.
========================================================================== No
todos los bloques del sistema de ficheros contienen datos, algunos deben usarse para mantener la información
que describe la estructura del sistema de ficheros. EXT2 define la topologia del sistema de ficheros
describiendo cada fichero del sistema con una estructura de datos inodo. Un inodo describe que bloques
ocupan los datos de un fichero y también los permisos de acceso del fichero, las horas de modificación del
fichero y el tipo del fichero. Cada fichero en el sistema de ficheros EXT2 se describe por un único inodo y
cada inodo tiene un único número que lo identific
  • Links de descarga
http://lwp-l.com/pdf15712

Comentarios de: Capítulo 9 - The File system (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad