Download - Arquitectura Linux
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• /bin• /boot• /dev• /etc• /home• /lib• /mnt
• /proc• /root• /sbin• /tmp• /usr• /var
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• csh.login• fstab• gettydefs• group• inittab• issue• lilo.conf• magic• motd
• mtab• mtools• passwd• profile• psdatabase• securetty• shells• termcap• ttytype
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
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)
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• /usr/X11R6• /usr/bin• /usr/doc• /usr/etc• /usr/games• /usr/include
• /usr/info• /usr/lib• /usr/local• /usr/man• /usr/sbin• /usr/src
Contiene conjunto directorios en los cuales Linux almacena datos muy importantes
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
controlador periféricoparte física periférico
Aplicaciones
Material
controlador periféricoparte física periférico
sub-sistemaE/S
sistemaarchivos seguridad
sistemade procesos
comunicacióninter-procesos
sub-sistema
E/S
sub-sistemaarchivos
caché
sub-sistemade
procesos
sub-sistemaIPC
• 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)
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
Aplicaciones
Sistema de Archivos Virtual (VFS)
subsistemaext2
subsistemasys V
subsistemams-dos
subsistemaproc
Cache
Controlador de periféricos
Materialhttp://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
Controladores sin buffer realizan acceso directamente en el disco
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
Aplicaciones
Sistema de Archivos Virtual (VFS)
Control de periféricos
3. Bloques datos en la caché
1. Lectura Archivo
2. Lectura bloquesdatos del archivo
5. Lectura de losbloques de datos
6. Escritura de los bloques de datos en el caché
7. Liberación del contenido de la caché
8. Datos leídos
Caché
4. Lectura de los bloques de datos en la caché
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
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.A
ejecu-ción
lecturadel
archivo
datosdisponibles
quantumterminado
Proc.A
quantumterminado
datostrans-
feridos
Proc.A
desplegadoen
pantalla
findel
proceso
ejecu-ción
ejecu-ción
ejecu-ción
ejecu-ción
escrituraen el
archivo
ejecu-ción
ejecu-ción
ejecu-ción
lecturadel
archivo
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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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 pcichar soundnet scsi
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• TCP/IP• Appletalk• AX25 (radio aficionados)• IPX (Novell)• DECnet (DEC)
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
características
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
0 1 2 3 0 1 2 3
Bloque Bloque
/dev/hda1
1er trozo 2do trozo
/dev/hda2
Disco duro
Pista
Bloque
Sector
• 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
Bloquede
booteo
Super-bloque ... Tabla
denodos-i
Bloquede
datos
Super-bloque
Grupo bloques 1 Grupo bloques 2
...
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
• 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)
Propiedades del archivo
Informacionesdiversas
Tabla de las direccionesde los bloques de datos
Estructura de un nodo-iT
ipo
arch
ivo
Pro
piet
ario
Tam
año
arch
ivo
Dir
ecci
óndi
rect
a
1. D
irec
ción
ind
irec
ta2.
Dir
ecci
ón i
ndir
ecta
3. D
irec
ción
ind
irec
ta
…. …. ….
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
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)
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
Relación entre tablas
discoduro
Tabla archivosespecíficaal proceso
Tabla archivosdel sistema
Tabla de nodos-Idel sistema
Dirección del bloque de datos
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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl
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 Se le 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
http://www.palacinp.es.tlhttp://www.palacinp.es.tl