Sunteți pe pagina 1din 59

• La distribución de Linux no ha transformado en mucho la

arborescencia
• Existe un estándar de sistema de archivos (FSSTND: File
System Standard)
• Las distribuciones Linux más importantes y algunos Unix
respetan este estándar
• Documento disponible en:
– sitio: tsx-11.mit.edu
– directorio: /pub/linux/docs/linux-standards
– archivo: fsstnd-1.2.txt
 /bin  /proc
 /boot  /root
 /dev  /sbin
 /etc  /tmp
 /home  /usr
 /lib  /var
 /mnt
• Al inicio del sistema el programa de “booteo” analizará el
directorio /boot
• Entre los objetos buscados esta el archivo map, a través
del cual LILO determinará el lugar del núcleo en el disco
duro
• Sin esta información LILO no puede cargar en memoria
principal
• LILO depositará archivo boot.b, que es la base de
configuración del sector de booteo
• Los comandos más importantes están almacenados en
este directorio
• Ejemplo: ls, who, ps etc.
• Menos importantes: /usr/bin
• El colocar un comando en un directorio o en otro es una
elección perfectamente arbitraria
• Se justificaba en la época de discos duros rápidos y caros,
contra los lentos y baratos
• Todos los controladores (drivers) de periféricos son
accedidos a través archivos de periféricos
• Son interfaces con los controladores de periféricos y
no contienen nada
• Dos tipos: caracteres y bloques
• No tienen lo que se podría llamar un tamaño
• Número tamaño sustituido por número de
controlador
• Archivos de configuración
• Antiguos sistemas: comandos administración
• FSSTD dice que solo archivos configuración
• En algunos casos existe directorio /etc/rc.d, que contiene
scripts usados en el booteo
• Se pueden almacenar archivos que serán copiados
automáticamente en el directorio personal de un nuevo
usuario
• mtab
• mtools
• csh.login
• passwd
• fstab • profile
• gettydefs • psdatabase
• group • securetty
• inittab • shells
• issue
• termcap
• lilo.conf
• magic • ttytype
• motd
• Directorio personal de los usuarios
• Ventajas:
– usuario se beneficia de su propio sistema de archivos
– pocos derechos de escritura le son atribuidos
• Una vez que los usuarios tienen definido su lugar en un
sistema archivos, es posible definir las limites de zonas de
memoria (quotas)
– un usuario no podrá monopolizar toda la memoria
 Linux ofrece la posibilidad de utilizar las bibliotecas de
funciones comunes
 Las bibliotecas compartidas indispensables al arranque
se encuentran aquí
 Otras bibliotecas se encuentran en /usr/lib
• Es un pseudo-sistema de archivos
• Todos los archivos de este directorio no ocupan espacio
en el disco
• Se trata de construcciones lógicas
• Apuntan hacia programas en memoria principal que leen
información sin la depositar en el disco duro
• Contiene archivos que permiten
– leer la configuración actual del sistema
– informarse acerca de los procesos en ejecución
• Los archivos más importantes para iniciar Linux se
encuentran en /etc y /sbin
• Contiene comandos para civilizar Linux
• Se pueden distinguir tres dominios claves:
– los comandos de sistema generales: init, swapon, getty,
swapoff, mkswap, etc
– los comandos de arranque y detención del sistema: shudown,
fastboot, fasthalt, reboot, etc
– los comandos que administran el espacio del disco duro: fsck,
e2fsck, mkfs, mke2fs, fdisk, etc
• Muchas utilerías necesitan un espacio temporal de
almacenamiento
• Por ejemplo: editores, compiladores, etc
• Directorio accesible a todo mundo en lectura/escritura
• En el caso de múltiples usuarios el directorio debe ser la
raíz de otro sistema de archivos
• FSSNT hace diferencia entre zonas en los usuarios solo
pueden leer y las que solo pueden escribir
• Datos usuario son divididos en
– /usr: datos que los usuarios solo pueden leer
– /var: datos que los usuarios pueden leer/escribir
• Usuario común no sabe que algunos comandos crean
datos bajo su nombre, ejemplo: man
 La impresión es otro ejemplo, la tarea es
provisoriamente almacenada en los sub-
directorios: /var/spool/lpd.
 Otros dominios en los cuales son creados
archivos y tratados a nombre del usuario:
– el lanzamiento por calendarización a intervalos
regulares de comandos y de scripts (comandos
at y cron)
– la transmisión de informaciones (mail)
– el contar con un registro de conexiones o
contabilidad (p.e. archivos .log)
Contiene conjunto directorios en los cuales Linux
almacena datos muy importantes

 /usr/X11R6  /usr/info
 /usr/bin  /usr/lib
 /usr/doc  /usr/local
 /usr/etc  /usr/man
 /usr/games  /usr/sbin
 /usr/include  /usr/src
 Linux no es un bloque monolítico
 Varios componentes trabajan en conjunto, diseñados
por personas diferentes y conjuntados en
distribuciones
 Solo del exterior el núcleo Linux parece una unidad
 Existe una diferencia entre el núcleo y las aplicaciones
 Administración memoria principal
 Acceso a los periféricos
 Administración del espacio en disco duro
 Administración de los programas y los procesos
 Administración de los derecho de acceso
Aplicaciones

sub-sistema sistema sistema comunicación


seguridad
E/S archivos de procesos inter-procesos

sub-sistema
sub- archivos sub-sistema
sub-sistema
sistema de
IPC
E/S procesos
caché

controlador periférico controlador periférico


parte física periférico parte física periférico

Material
 Garantiza una administración correcta de los archivos
y de los derechos de acceso
 La administración varia mucho según el tipo de
sistema de archivos
 Linux adopto el concepto de VFS (Virtual File System)
 Principio: todos los módulos de un sistema de
archivos, vistos del exterior, presentan las misma
rutinas
 Es responsabilidad del núcleo de convertir las
llamadas de sistemas estándares en las específicas a
los archivos
 Programador no debe preocuparse del tipo de
sistema archivos con el que trabaja
Aplicaciones

Sistema de Archivos Virtual (VFS)

subsistema subsistema subsistema subsistema


ext2 sys V ms-dos proc

Cache

Controlador de periféricos

http://www.palacinp.es.tl Material
• Rutinas sistemas archivos transmiten los accesos a los
controladores de periféricos
• Por cada acceso los bloques de datos necesarios son
cargados del disco duro
• Acceso a disco duro se hace a través de controladores con
buffers
– almacenan en memoria principal datos accedidos
– esto evita un acceso disco en la próxima lect/esct
– datos en RAM por lo que se gana en rapidez
• Controladores sin buffer realizan acceso directamente en
el disco
 Controladoressin buffer realizan acceso
directamente en el disco
Aplicaciones
1. Lectura Archivo 8. Datos leídos
Sistema de Archivos Virtual (VFS)
2. Lectura bloques 7. Liberación del contenido de la
datos del archivo caché
3. Bloques datos en la caché
Caché

6. Escritura de los bloques de


4. Lectura de los bloques de datos en datos en el caché
la caché
Control de periféricos
5. Lectura de los
bloques de datos
 Asigna zonas aisladas de memoria a cada uno de los
programas y controla las demandas de memoria que se
realicen
 Linux no administra la memoria en el sentido estricto
(físico)
 Aprovecha que, desde el 80386, los procesadores Intel
saben tratar la memoria virtual
 También administra el acceso al
microprocesador (calendarizador)
 Cada proceso esta registrado en una tabla
central de procesos, por lo que es posible
verificar que procesos están ejecutandose
 Para evitar que se apropien del procesador a
cada proceso se le asigna un tiempo: quantum
 Una vez que el tiempo termine se le interrumpe
y se le pone a un lado
 Al proceso siguiente le es asignado el
procesador
Proc. lectura datos quantum ejecu- lectura
ejecu- ejecu-
A del disponibles terminado ción del
ción ción
archivo archivo
escritura
Proc. quantum ejecu- datos ejecu-
ejecu- en el
A terminado ción trans- ción
ción archivo
feridos
desplegado
Proc. ejecu- fin
ejecu- en
A ción del
ción pantalla
proceso

Tiempo
 Implementación del sistema de intercomunicación
entre procesos
 las colas de mensajes (message queues)
 la zonas de memoria común (memoria compartida o
shared memory)
 los semáforos
• Tanto los procesos como el sub-sistema de archivos
utilizan los controladores de periféricos
• Los principales tipos de controladores se encuentran
dentro directorio /usr/src/linux/drivers:
block pci
char sound
net scsi
 Controladores orientados bloques:
– pueden trabajar con buffer o sin él
 Controladores bloques con buffer
– los datos leídos son entregados al proceso, pero
no se descartan enseguida
– son almacenados en una zona de memoria
– próximo acceso estarán disponibles
 Controladores sin buffer
– toda demanda, en las dos direcciones, son
ejecutadas directamente en disco
– al final es seguro que los datos están en disco,
con buffer esto no era seguro
• Linux trata de adaptarse a la máquina.
• El mismo código debe existir para diferentes
implementaciones y funcionar de la misma forma
• Elementos del núcleo que dependen del tipo de
procesador son almacenados en directorios aparte
• En directorio /usr/src/linux/arc se encuentra un directorio
por microprocesador soportado
 alpha: microprocesador DEC Alpha
 m68k: microprocesadores Motorola 68000 y
siguientes: 68020, 68030, etc
 mips: microprocesador MIPS, R3000,
R4000 a R10000
 ppc: microprocesador PowerPC (en un
principio IBM)
 sparc: microprocesadores SPARC de SUN
 boot
 kernel
 lib
 math-emu
 mm
 Makefile
 config.in
 TCP/IP
 Appletalk
 AX25 (radio aficionados)
 IPX (Novell)
 DECnet (DEC)
características
 Se refiere a la estructura del soporte físico que le da al
usuario de un arborescencia
 Elemento base: el bloque:
 espacio disco duro se expresa en bloques
 los bloques son de 521 bytes
 Diferentes tipos sistemas archivos se apoyan sobre diferentes
formas:
 cada grupo reagrupa los bloques físicos en bloques lógicos de
diferente tamaño
/dev/hda1 /dev/hda2

1er trozo 2do trozo

0 1 2 3 0 1 2 3
Bloque Bloque

Pista

Bloque

Sector Disco duro


 Vista usuario: arborescencia homogénea
 ¿Qué forma tienen los datos y los archivos en el disco
duro?
 Diferentes tipos sistemas archivos:
 Extended Filesystem
 Xia Filesystem
 Extended File System
 Sistema montado
 afbs: Amiga Fast File System
 ext fs: Extended Fyle System
 ext2 fs: Extended Fyle System extendido
 hpfs: High Performance File System
 isofs: sistema ISO 9660 (usado en CD-ROMs)
 minix fs: MINIX File System
 ncpfs: sistema archivos para clientes Novell
 nfs: NetworkFile System
• proc: pseudo sistema de archivos
• smb fs: Samba File Systems
• sysv fs: Sistema archivos del sistema V Unix
• ufs fs: Sistema archivos FreeBSD y Solaris
• umsdos: extensión sistema archivos MS-DOS
• vfat: sistema dotado tabla asignación virtual
• xiafs: sistema desarrollado por Qi Frank Xia para
reemplazar al Extended File System
Elementos sistema archivos

 Bloque de booteo
 Superbloque
 Tabla de nodos-i
 Bloques de datos
Grupo bloques 1 Grupo bloques 2

Bloque Tabla Bloque


de
Super-
bloque
... de
Super-
de bloque
...
booteo nodos-i datos
 Se ubica en el bloque cero de todos los sistemas de
archivos
 Contiene programa para lanzar e inicializar todo el
sistema
 Ningún programa usuario tiene acceso
 El superbloque
 La lista de descripción de los grupos de bloques
 La imagen de los bloques
 La imagen de los nodos-i
 La tabla de los nodos-i
 Los bloques de datos
• Tamaño total del sistema de archivos, en bloques o nodos-i
• Número de bloques libres del sistema
• Número de bloques reservados a nodos-I
• Número de nodos-I libres
• Dirección del primer bloque de datos
• Tamaño de un bloque de datos
• Tamaño de un bloque parcial de datos
 Hora de la última modificación sistema archivos
 Hora integración (montaje) del sistema
 número de versión del sistema
 hora de la última verificación del sistema
 intervalo máximo entre dos personas
• Compuesto por un conjunto de nodos-i, del mimos tamaño
• Un nodo-i puede presentarse de dos formas:
– como nodo-I en el disco duro
– cargada en memoria para el tratamiento
• Nodo-i describe todos las características de un archivo
• Existe uno por cada archivo físico
 Modo archivo
 Número usuario propietario
 Tamaño, en bytes, del archivo
 Acceso
 hora del último acceso
 hora de la última modificación
 hora de la creación de nodo-i
 hora de la última supresión del nodo-i
 Número de grupo del archivo
• Número de ligas
• Semáforos del nodo-I
• tabla de direcciones del bloque
• derechos de acceso
• tipo de archivo:
– archivo clásico
– directorio
– archivo periférico
– archivo FIFO
– referencia (ejemplo liga simbólica)
Estructura de un nodo-i

2. Dirección indirecta
1. Dirección indirecta

3. Dirección indirecta
Tamaño archivo
Tipo archivo
Propietario

Dirección
directa
…. …. ….

Propiedades del Tabla de las direcciones Informaciones


archivo de los bloques de datos diversas
Bloques de datos
 Se ocupan del espacio disponible en el disco duro para el
sistema de archivos
 Tamaño de cada bloque físico corresponde a exactamente al
de bloques lógicos
Tabla archivos nivel sistema
• Objetivo: proporcionar acceso paralelo a los archivos
• A cada archivo abierto le corresponde una estructura en
memoria principal
• Todos los procesos del sistema acceden a dicha tabla
• Si varios procesos abren el mismo archivo solo se registrará
una entrada en la tabla
• Es a través de esta tabla que se puede acceder
indirectamente a los nodos-i
 Es necesario vigilar ciertas consecuencias
 Solo existe un solo componente indicando la
localización del archivo
 Si un proceso A modifica este valor, esto
tendrá consecuencias para el resto de los
procesos
 Si un proceso B ignora lo anterior escribirá
sus datos en un lugar equivocado
 Une entrada en la tabla se elimina hasta que
ningún proceso hace referencia al archivo
 Si un proceso quiere abrir un archivo, este creará una
entrada en un tabla de archivos especifica al proceso
 Tamaño tabla: 256 => un proceso solo puede abrir 256
archivos al mismo tiempo
 Los tres primeras entradas están reservadas a stdin
(0), stout (1) y stderr (2)
Relación entre tablas

Dirección del
bloque de datos

disco
duro
Tabla archivos
específica Tabla archivos
al proceso del sistema
Tabla de nodos-I
del sistema
Etapas abertura de un archivo
• Búsqueda del archivo y asociación con un nodo-I
– realizada a través función namei()
• Búsqueda, en su sistema de archivos, del número de nodo-i
previamente determinado
– una vez encontrado se verifican los permisos y se carga el
archivo
• Una entrada es realizada en memoria para este nodo-i, en la
tabla nodos-i a nivel sistema
 Una estructura se crea en la tabla de archivos
a nivel sistema
– en dicha estructura se encuentran las operaciones
especificas al sistema de archivos y el nodo-i
 Sele indica al proceso la localización en
memoria principal de la estructura que
corresponde al archivo accedido
– cada proceso administra una tabla de archivos
específica a los procesos
– en este lugar se encuentra la referencia a la tabla
de archivos a nivel sistema

S-ar putea să vă placă și