Documente Academic
Documente Profesional
Documente Cultură
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
sub- archivos sub-sistema
sub-sistema
sistema de
IPC
E/S procesos
caché
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
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é
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
0 1 2 3 0 1 2 3
Bloque Bloque
Pista
Bloque
Bloque de booteo
Superbloque
Tabla de nodos-i
Bloques de datos
Grupo bloques 1 Grupo bloques 2
2. Dirección indirecta
1. Dirección indirecta
3. Dirección indirecta
Tamaño archivo
Tipo archivo
Propietario
Dirección
directa
…. …. ….
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