Arquitectura Linux

Post on 12-Jun-2015

839 views 5 download

Transcript of 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