Arquitectura Linux

59
http://www.palacinp.es.tl http://www.palacinp.es.tl

Transcript of Arquitectura Linux

Page 1: Arquitectura Linux

http://www.palacinp.es.tlhttp://www.palacinp.es.tl

Page 2: Arquitectura Linux

http://www.palacinp.es.tlhttp://www.palacinp.es.tl

Page 3: Arquitectura Linux

• 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

Page 4: Arquitectura Linux

• /bin• /boot• /dev• /etc• /home• /lib• /mnt

• /proc• /root• /sbin• /tmp• /usr• /var

http://www.palacinp.es.tlhttp://www.palacinp.es.tl

Page 5: Arquitectura Linux

• 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

Page 6: Arquitectura Linux

• 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

Page 7: Arquitectura Linux

• 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

Page 8: Arquitectura Linux

• 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

Page 9: Arquitectura Linux

• 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

Page 10: Arquitectura Linux

• 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

Page 11: Arquitectura Linux

• 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

Page 12: Arquitectura Linux

• 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

Page 13: Arquitectura Linux

• 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

Page 14: Arquitectura Linux

• 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

Page 15: Arquitectura Linux

• 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

Page 16: Arquitectura Linux

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

Page 17: Arquitectura Linux

• /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

Page 18: Arquitectura Linux

• 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

Page 19: Arquitectura Linux

• 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

Page 20: Arquitectura Linux

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

Page 21: Arquitectura Linux

• 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

Page 22: Arquitectura Linux

• 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

Page 23: Arquitectura Linux

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

Page 24: Arquitectura Linux

• 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

Page 25: Arquitectura Linux

Controladores sin buffer realizan acceso directamente en el disco

http://www.palacinp.es.tlhttp://www.palacinp.es.tl

Page 26: Arquitectura Linux

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é

Page 27: Arquitectura Linux

• 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

Page 28: Arquitectura Linux

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

Page 29: Arquitectura Linux

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

Page 30: Arquitectura Linux

• 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

Page 31: Arquitectura Linux

• 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

Page 32: Arquitectura Linux

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

Page 33: Arquitectura Linux

• 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

Page 34: Arquitectura Linux

• 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

Page 35: Arquitectura Linux

• boot• kernel• lib• math-emu• mm• Makefile• config.in

http://www.palacinp.es.tlhttp://www.palacinp.es.tl

Page 36: Arquitectura Linux

• TCP/IP• Appletalk• AX25 (radio aficionados)• IPX (Novell)• DECnet (DEC)

http://www.palacinp.es.tlhttp://www.palacinp.es.tl

Page 37: Arquitectura Linux

características

http://www.palacinp.es.tlhttp://www.palacinp.es.tl

Page 38: Arquitectura Linux

• 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

Page 39: Arquitectura Linux

0 1 2 3 0 1 2 3

Bloque Bloque

/dev/hda1

1er trozo 2do trozo

/dev/hda2

Disco duro

Pista

Bloque

Sector

Page 40: Arquitectura Linux

• 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

Page 41: Arquitectura Linux

• 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

Page 42: Arquitectura Linux

• 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

Page 43: Arquitectura Linux

Elementos sistema archivos

• Bloque de booteo• Superbloque• Tabla de nodos-i• Bloques de datos

Page 44: Arquitectura Linux

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

Page 45: Arquitectura Linux

• 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

Page 46: Arquitectura Linux

• 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

Page 47: Arquitectura Linux

• 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

Page 48: Arquitectura Linux

• 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

Page 49: Arquitectura Linux

• 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

Page 50: Arquitectura Linux

• 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

Page 51: Arquitectura Linux

• 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)

Page 52: Arquitectura Linux

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

Page 53: Arquitectura Linux

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

Page 54: Arquitectura Linux

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

Page 55: Arquitectura Linux

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

Page 56: Arquitectura Linux

• 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

Page 57: Arquitectura Linux

Relación entre tablas

discoduro

Tabla archivosespecíficaal proceso

Tabla archivosdel sistema

Tabla de nodos-Idel sistema

Dirección del bloque de datos

Page 58: Arquitectura Linux

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

Page 59: Arquitectura Linux

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