Está en la página 1de 38

CONCEPTOS

FUNDAMENTALES
LINUX
El sistema de archivos inicial de Linux fue MINIX 1.
• Nombres de archivos de 14 caracteres.
• Tamaño máximo de archivos de 64MB.

MINIX 1 fue reemplazado por el sistema de archivos ext (extended file system).
• Nombres de archivos de 255 caracteres.
• Tamaño máximo de archivos de 2GB.

Ext fue reemplazado por ext2 el cual se convirtió en el Sistema principal de


archivos.
• Mejor rendimiento.
Un archivo en Linux es una secuencia de 0 o más bytes que contienen
información arbitraria.

• Los nombres de los archivos se limitan a 255 caracteres, y se permiten


todos los caracteres ASCII excepto NUL en los nombres de archivos.

• Muchos programas esperan que los nombres de los archivos


consistan en un nombre base y una extensión, separados por un
punto.
• El carácter / también se utiliza para separar nombres de directorios:
/usr/abc/x
Además de los archivos regulares, Linux también acepta los archivos especiales
de caracteres y los archivos especiales de bloques.
• Los archivos especiales de caracteres se utilizan para modelar los dispositivos de
E/S en serie, como los teclados y las impresoras.
Al abrir y leer de /dev/tty se lee del teclado; al abrir y escribir en /dev/lp se escribe en la
impresora.

• Los archivos especiales de bloques, se pueden utilizar para leer y escribir en


particiones de disco crudas sin importar el sistema de archivos.
Se utilizan para paginación e intercambio en los programas que establecen sistemas de archivos
(por ejemplo, mkfs), y en programas que corrigen sistemas de archivos enfermos (por ejemplo,
fsck).
Las computadoras personales tienen normalmente al menos dos
discos: un disco duro y una unidad de disco óptico (como el DVD).

• Colocar un sistema de archivos auto contenido en cada unidad y sólo


mantenerlos separados.

• Linux permite montar un disco en el árbol de archivos de otro disco.


Una propiedad interesante del sistema de archivos de Linux es el bloqueo.

POSIX ofrece un mecanismo flexible y detallado para que los procesos


bloqueen desde un solo byte hasta todo un archivo en una operación
indivisible. El mecanismo de bloqueo requiere que el proceso que hace la
llamada especifique el archivo a bloquear, el byte inicial y el número de
bytes. Si la operación tiene éxito, el sistema crea una entrada en la tabla para
indicar que los bytes en cuestión (por ejemplo, el registro de una base de
datos) están bloqueados.
Hay dos tipos de bloqueos: bloqueos compartidos y bloqueos exclusivos.

• Si una porción de un archivo ya contiene un bloqueo compartido, se


permite un segundo intento de colocar un bloqueo compartido sobre este
archivo, pero un intento de poner un bloqueo exclusivo sobre él fracasará.

• Si una porción de un archivo contiene un bloqueo exclusivo, todos los


intentos de bloquear cualquier parte de esta porción fracasarán hasta que
se libere el bloqueo.
CONCEPTOS
FUNDAMENTALES
UNIX
Un archivo en UNIX es una secuencia plana de bytes.
• Los nombres de los archivos se limitan a 255 caracteres, y se permiten
todos los caracteres ASCII excepto NUL en los nombres de archivos.

• Las versiones más viejas de UNIX como UNIX v7 sólo permitían 14


caracteres en los nombre de los archivos.

• Un nombre en UNIX puede empezar por un punto lo que significa que es


un archivo del sistema.
CONCEPTOS
FUNDAMENTALES
MINIX
Un archivo en MINIX es una secuencia de bytes.

• En las primeras versiones de MINIX los archivos estaban limitados a


un máximo de 64MB y 14 caracteres para el nombre del archivo.

• En la versión 3 de MINIX ya se permitían nombres de archivos de


hasta 60 caracteres.
CONCEPTOS
FUNDAMENTALES
ANDROID
Un archivo en MINIX es una secuencia de bytes.

• Uno de los sistemas de archivos de android es YAFFS2 (Yet Another


Flash File System 2).

• Desde el 2011 la plataforma utiliza ext4 como sistemas de archivos.


CONCEPTOS
FUNDAMENTALES
WINDOWS
Un archivo de NTFS no es sólo una secuencia lineal de bytes, como los
archivos de FAT-32 y UNIX. En vez de ello, un archivo consiste en varios
atributos, cada uno de los cuales se representa mediante un flujo de bytes.

• En NTFS, los nombres de archivos individuales están limitados a 255


caracteres y las rutas completas a 32,767 caracteres.

• Los nombres de archivos están en Unicode.

• NTFS admite por completo los nombres sensibles a mayúsculas y


minúsculas.
NTFS es un sistema de archivos jerárquico, similar al sistema de
archivos de UNIX.

• El separador entre los nombres de los componentes es “\” en vez de


“/”Los nombres de archivos están en Unicode.
LLAMADAS AL SISTEMA DE
ARCHIVOS UNIX
Las llamadas al sistema relacionadas con la
estructura de archivos disponibles en el sistema
UNIX permiten crear, abrir y cerrar archivos,
leer y escribir archivos, acceder aleatoriamente
a archivos, dar alias y eliminar archivos, obtener
información sobre archivos, verificar la
accesibilidad de los archivos, cambiar las
protecciones, propietario y grupo de archivos y
dispositivos de control.
IMPLEMENTACIÓN DEL SISTEMA
DE ARCHIVOS EN UNIX
• Un bloque de arranque: contiene un programa de arranque primario para el sistema
operativo;

• un superbloque: parámetros estáticos del sistema de archivos, como el tamaño total, el


tamaño de bloque y fragmento de bloques de datos.

• inodes: significa nodo de índice (los inodes son encabezados de archivo);

• bloques de datos: cada bloque tiene típicamente un tamaño de 4 Kbytes u 8 Kbytes;

• tamaño de bloque de datos de fragmentos: generalmente de 512 bytes o 1024 bytes;


El número de inodos determina el número máximo de archivos en el sistema de archivos.
Cada archivo en un sistema UNIX tiene
asociado un inodo. El inodo contiene la
información necesaria para que un
proceso pueda acceder al archivo. Esta
información incluye: propietario,
derechos de acceso, tamaño, localización
en sistema de archivos, etc.
Implementación del sistema
de archivos de Linux
El sistema de archivos virtual de Linux
Para poder permitir que las aplicaciones interactúen con distintos
sistemas de archivos, implementados en distintos tipos de dispositivos
locales o remotos, Linux adopta una metodología que se utiliza en
otros sistemas UNIX: el Sistema de Archivos Virtual (VFS). VFS define un
conjunto de abstracciones básicas del sistema de archivos y las
operaciones que se permiten en estas abstracciones. Las invocaciones
de las llamadas al sistema que describimos en la sección anterior
acceden a las estructuras de datos del VFS, determinan el sistema de
archivos exacto al que pertenece el archivo utilizado, y mediante los
apuntadores a funciones almacenados en las estructuras de datos del
VFS, invocan a la operación correspondiente en el sistema de archivos
especificado.
Las cuatro estructuras principales de sistemas
de archivos que el VFS acepta.
El sistema de archivos ext2 de Linux
La primera versión de Linux utilizaba el sistema de archivos de MINIX, y
estaba limitado por los nombres de archivos cortos y los tamaños de
archivos de 64 MB. En cierto momento el sistema MINIX se reemplazó
por el primer sistema de archivos extendido: ext, el cual permitía
nombres de archivos y tamaños de archivos más largos. Debido a sus
ineficiencias en el rendimiento, ext se reemplazó por su sucesor ext2.
Los mapas de bits se utilizan para tomar decisiones rápidas en relación
con el lugar donde se deben asignar los datos del nuevo sistema de
archivos. Cuando se asignan nuevos bloques de archivo, ext2 también
asigna previamente un número (ocho) de bloques adicionales para ese
archivo, de manera que se minimice la fragmentación de archivos
debido a las futuras operaciones de escritura.
El archivo de directorios permite nombres de archivos de hasta 255
caracteres. Cada directorio consiste de cierto número integral de
bloques de disco, de manera que se puedan escribir directorios en
forma atómica en el disco.
Si el archivo está presente, el sistema extrae el número de nodo-i y lo
utiliza como un índice en la tabla de nodos-i (en el disco) para localizar
el nodo-i correspondiente y llevarlo a la memoria. El nodo-i se coloca
en la tabla de nodos-i, una estructura de datos del kernel que contiene
todos los nodos-i para los archivos y directorios que están abiertos en
ese momento. El formato de las entradas en el nodo-i (como mínimo)
debe contener todos los campos devueltos por la llamada al sistema
stat, de manera que esta llamada pueda funcionar (vea la figura 10-28).
Tabla de descripción de archivos abiertos
El sistema de archivos ext3 de Linux
Para poder evitar toda pérdida de datos después de fallas en el sistema y
fallas de energía, el sistema de archivos ext2 tendría que escribir cada
bloque de datos en el disco tan pronto como se hubiera creado.
La idea básica detrás de este tipo de sistema de archivos es mantener un
registro de transacciones, el cual describe todas las operaciones del
sistema de archivos en orden secuencial. Al escribir en forma secuencial
los cambios en los datos o metadatos del sistema de archivos, las
operaciones no sufren de las sobrecargas del movimiento de la cabeza
del disco durante los accesos aleatorios al mismo.
JBD
El registro de transacciones es un archivo que se administra como un
búfer circular. Se puede almacenar en el mismo dispositivo, o en un
dispositivo separado del sistema de archivos principal. Como las
operaciones del registro de transacciones no se registran a sí mismas
como transacciones, no las maneja el mismo sistema de archivos ext3.
En vez de ello, se utiliza un JBD (Dispositivo de bloque transaccional).
El JBD proporciona tres estructuras de datos principales:
• registro del diario.
• Manejador de operación atómica
• Transacción.
El sistema de archivos /proc
El concepto básico es que para cada proceso en el sistema, se crea un
directorio en /proc. El nombre del directorio es el PID del proceso,
expresado como un número decimal. Por ejemplo, /proc/619 es el
directorio que corresponde al proceso con el PID 619. En este
directorio hay archivos que parecen contener información sobre el
proceso, como su línea de comandos, las cadenas de entorno y las
máscaras de señales. De hecho, estos archivos no existen en el disco.
Cuando se leen, el sistema obtiene la información del proceso actual
según sea necesaria, y la devuelve en un formato estándar.

También podría gustarte