Notas de clase [formato powerpoint]

Anuncio
Introducción a Linux
FCFM, BUAP
Verano 2002
TEMARIO
• Introducción a Linux
• El sistema de ventanas
X-Windows
• Sistemas de Archivos
•
• Gestión Básica
• Programas y aplicaciones
Intro. Linux
Manejando el Shell
FCFM, BUAP
1. INTRODUCCION
[
• Computadora [
|
[
|
hardware
software
-->
progs. del sistema SO
aplicaciones
|
\/
Procesador, memoria, reloj, terminal, disco,
dispositivos E/S
Intro. Linux
FCFM, BUAP
Linux ?
• Unix es multi-usuario, multi-tareas; modo de texto y gráfico
• Linux nació como Unix para PC’s, ahora en todas partes !
• Linux Torvald, 1991.
• Linux es gratuito y libre
Intro. Linux
FCFM, BUAP
Capas del sistema
Maple
Juegos
Compiladores Editores
Calculos
Shell
SISTEMA OPERATIVO
Intro. Linux
Aplicaciones
Programas
del Sistema
LENGUAJES DE MAQUINA
Hardware
MICROPROGRAMACION
Hardware
Dispositivos Fisicos
Hardware
FCFM, BUAP
Capas del Sistema II
Intro. Linux
FCFM, BUAP
Control
• En lugar de controlar los dispositivos con el lenguaje de
máquina, usamos el sistema operativo, que nos presenta una
máquina virtual para ello.
• SO: proporciona una asignación ordenada y controlada de los
procesadores, memoria y dispositivos E/S.
• Windows
??
• Linux
??
Intro. Linux
FCFM, BUAP
Conceptos
• Procesos
programa en ejecución
(programa ejecutable, datos, pila, contador
registro, etc.)
 tabla de procesos (guarda info del estado de cada proceso)
•
=
Interfaz entre SO y programas del usuario = conjunto de
“instrucciones ampliadas”:
llamadas del sistema
• Las LLS de procesos fundamentales son las que se ocupan de la
creación y fin de procesos. Proceso “intérprete de comandos” o
shell lee instrucciones o órdenes a partir de la terminal
Intro. Linux
FCFM, BUAP
Shell.
• Shell
Previo
-- carga procesos
-- crea procesos y entorno
-- cierra procesos
• Estructura de árbol en procesos
pero antes hay que saber que es el UID y GID !
Intro. Linux
FCFM, BUAP
Login de un Usuario
Al conectarse un usuario al sistema:
– Telnet o ssh.
– Se evalúa si el modo de conexión (local o remoto) es válido
para dicho usuario (en base al getty).
– Se arranca el programa shell asociado.
– Configuración de la sesión: general (/etc/profile) y de
usuario (~/.profile).
Intro. Linux
FCFM, BUAP
Sus cuentas
• Cada usuario posee un espacio en el disco duro llamado
su cuenta
• Asociada a esta cuenta se encuentra un nombre y una palabra
clave: ID de login y password
• Sólo si coinciden el ID del login y el password podrá el usuario
entrar al sistema
Intro. Linux
FCFM, BUAP
2. SISTEMAS DE ARCHIVOS
•
•
•
•
•
•
•
•
Visión del usuario del sistema de archivos
Archivos
Directorios
Servicios de archivos
Servicios de directorios
Sistemas de archivos
El servidor de archivos
Puntos a recordar
Intro. Linux
FCFM, BUAP
Gestión de archivos y directorios
• Objetivos:
– Entender los conceptos de archivo y directorio
– Mostrar los métodos de acceso y los mecanismos de
protección
– Estudiar las semánticas de compartición
– Comprender la estructura del sistema de ficheros
Presentar las llamadas al sistema y ejemplos de programación
en LINUX y Windows
– Presentar distintas técnicas de gestión de archivos y
directorios a nivel de diseño
Intro. Linux
FCFM, BUAP
Características para el usuario
• Almacenamiento permanente de información. No desaparecen
aunque se apague el computador.
• Conjunto de información estructurada de forma lógica según
criterios de aplicación.
• Nombres lógicos y estructurados.
• No están ligados al ciclo de vida de una aplicación particular.
• Abstraen los dispositivos de almacenamiento físico.
• Se acceden a través de llamadas al sistema operativo o de
bibliotecas de utilidades.
Intro. Linux
FCFM, BUAP
Sistema de archivos
• El acceso a los dispositivos es:
– Incómodo
• Detalles físicos de los dispositivos
• Dependiente de las direcciones físicas
– No seguro
• Si el usuario accede a nivel físico no tiene restricciones
• El sistema de archivos es la capa de software entre dispositivos y
usuarios.
• Objetivos:
– Suministrar una visión lógica de los dispositivos
– Ofrecer primitivas de acceso cómodas e independientes de
los detalles físicos
– Mecanismos de protección
Intro. Linux
FCFM, BUAP
Concepto de archivo
• Un espacio lógico de direcciones contiguas usado para
almacenar datos
• Tipos de archivos:
– Datos:
• numéricos
• carácter
• binarios
– Programas:
• código fuente
• archivos objetos (imagen de carga)
– Documentos
Intro. Linux
FCFM, BUAP
Atributos del archivo
• Nombre: la única información en formato legible por una persona.
• Identificación única del archivo y del usuario: descriptor interno del
archivo, dueño y grupo del archivo
• Tipo de archivo: necesario en sistemas que proporciona distintos formatos de
archivos.
• Tamaño del archivo: número de bytes en el archivo, máximo tamaño
posible, etc.
• Protección: control de accesos y de las operaciones sobre archivos
• Información temporal: de creación, de acceso, de modificación, etc.
• Información de control: archivo oculto, de sistema, normal o directorio, etc.
Intro. Linux
FCFM, BUAP
Representación del archivo
•
La información relacionada con el archivo se mantiene en el
descriptor del archivo, al que se apunta desde los directorios.
• Es distinto en cada sistema operativo: nodo-i, registro Windows,
etc.
• Tipos de archivos:
– Archivos normales: ASCII y binarios.
– Archivos especiales: de bloques y de caracteres
Intro. Linux
FCFM, BUAP
Ejemplos de representación
N ombr e
Atr ib.
S ize K B
Agr up. FAT
cabecer a
Atr ibutos
Tamaño
N ombr e
S egur idad
D atos
Vcluster s
Intro. Linux
FCFM, BUAP
Nombres de Fichero y Extensiones
Extensión
•
•
•
•
•
Tiras de caracteres
Longitud: fija o variable
Sensibles a tipografía
Extensión: obligatoria o no
Los usuarios usan nombres
lógicos de este estilo
• Los directorios relacionan
nombres lógicos y
descriptores internos de
ficheros
• El sistema de ficheros
trabaja con descriptores
internos
Intro. Linux
exe, com,
bin, none
c, s, asm, p
pas, f77
Significado
Programa ejecutable
Z, z, zip
Código fuente en distintos
lenguajes
Archivos comprimidos
gif, jpg
Archivos de imágenes
o, obj
Archivos objeto, compilados
pero sin montar
ps, dvi, pdf
Archivos ASCII o binarios en
formato imprimible o visible
txt, doc
Archivos de texto
tex, roff
Archivos de entrada para
formateadores de texto
html
Archivos de hipertexto para
World Wide Web
FCFM, BUAP
Estructura del fichero
• Ninguna - secuencia de palabras o bytes (UNIX)
• Estructura sencilla de registros
– Líneas
– Longitud fija
– Longitud variable
• Estructuras complejas
– Documentos con formato (HTML, postscript)
– Fichero de carga reubicable (módulo de carga)
• Se puede simular estructuras de registro y complejas con una
estructura plana y secuencias de control
• ¿Quién decide la estructura?
– Interna: El sistema operativo
– Externa: Las aplicaciones
Intro. Linux
FCFM, BUAP
Distintas estructuras lógicas
Árbol de registros
Cabecera
Módulo
objeto
Cabecera
Registros de
longitud
variable
Byte o
registro de
longitud fija
Intro. Linux
Módulo
objeto
Archivo de
biblioteca
FCFM, BUAP
Archivos: visión lógica II
• Estructura de un archivo:
– Archivos de estructura compleja
• Archivos indexados
• Archivos directos o de dispersión
– Ejemplo de archivo indexado:
Registro
Clave
Fichero
indice
Fichero principal
– Los archivos estructurados en registros y los archivos con estructuras
complejas se pueden construir como una capa sobre la visión de tira de
bytes.
Intro. Linux
FCFM, BUAP
Estructura de archivo ejecutable LINUX
Número mágic o
Número de sec c iones
Cabecera
primaria
Tam año segmento texto
Tam año segmento datos
Cabecera de
sección 1
Tipo de sección,
tamaño de la sección
dirección virtual
Tam año datos sin valor
inic ial
Tam año tabla de símbolos
Tipo de sección,
tamaño de la sección
dirección virtual
Sección 1
Código
Sección 2
Datos con
valor inicial
Sección n
Datos con
valor inicial
Valor inic ial de registros
Direc c ión inic ial
...
Cabecera de
sección n
Opc iones
Información
de carga
Tabla de
símbolos
Otra
información
Intro. Linux
FCFM, BUAP
Concepto de directorio
• Objeto que relaciona de forma unívoca un nombre de usuario de
archivo con su descriptor interno
• Organizan y proporcionan información sobre la estructuración
de los sistemas de archivos
• Una colección de nodos que contienen información acerca de los
archivos
Intro. Linux
FCFM, BUAP
Directorios: visión lógica
• Esquema jerárquico.
• Cuando se abre un archivo el SO busca el nombre en la
estructura de directorios.
• Operaciones sobre un directorio:
– Crear (insertar) y borrar (eliminar) directorios.
– Abrir y cerrar directorios.
– Renombrar directorios.
– Leer entradas de un directorio.
– Montar (combinar)
• La organización jerárquica de un directorio
– Simplifica el nombrado de archivos (nombres únicos)
– Proporciona una gestión de la distribución => agrupar
archivos de forma lógica (mismo usuario, misma aplicación)
Intro. Linux
FCFM, BUAP
Estructura de los directorios
• Tanto la estructura del directorio como los archivos residen en
discos
• Los directorios se suelen implementar como archivos
• Copias de respaldo en cintas, por seguridad
• Información en un directorio: nombre, tipo, dirección, longitud
máxima y actual, tiempos de acceso y modificación, dueño, etc.
• Hay estructuras de directorio muy distintas. La información
depende de esa estructura.
• Dos alternativas principales:
– Almacenar atributos de archivo en entrada directorio
– Almacenar <nombre, identificador>, con datos archivo en
una estructura distinta. Esta es mejor.
Intro. Linux
FCFM, BUAP
Ejemplo de entradas de directorio
Nombre
Tipo de
archivo
Contador
de bloques
...
Código de
usuario
Números
de bloque
archivo
extendido
Direc torio de CP/M
Nombre
Número
del primer
Tipo de
archivo Reservado Hora bloque
Atributos
Fecha
Tamaño
Direc torio de MS-DOS
Nodo-i: Puntero al
descriptor del archivo Nombre
Direc torio de UNIX
Intro. Linux
FCFM, BUAP
Organización del directorio
• Eficiencia: localizar un archivo rápidamente
• Nombrado: conveniente y sencillo para los usuarios
– Dos usuarios pueden tener el mismo nombre para archivos
distintos
– Los mismos archivos pueden tener nombres distintos
– Nombres de longitud variable
• Agrupación: agrupación lógica de los archivos según sus
propiedades (por ejemplo: programas Pascal, juegos, etc.)
• Estructurado: operaciones claramente definidas y ocultación
• Sencillez: la entrada de directorio debe ser lo más sencilla
posible.
Intro. Linux
FCFM, BUAP
Directorio de un nivel
• Un único directorio para todos los usuarios
• Problemas de nombrado y agrupación
carta
Intro. Linux
mapa.gif
lista.txt
...
Directorio
...
...
Archivos
...
programa.o
FCFM, BUAP
Directorio de dos niveles
•
•
•
•
Un directorio por cada usuario
Camino de acceso automático o manual
El mismo nombre de archivo para varios usuarios
Búsqueda eficiente, pero problemas de agrupación
...
marivi miguel
...
datos lista.c
Directorio ...
del usuario
Directorio ...
maestro
elvira
test
agenda
claves
...
...
...
archivos
...
mail
...
lista.c
...
Intro. Linux
Directorio ...
del usuario
archivos
Directorio ...
del usuario
archivos
claves
...
mio.o
...
FCFM, BUAP
Directorio con estructura de árbol
• Búsqueda eficiente y agrupación
• Nombres relativos y absolutos -> directorio de trabajo
tmp
marivi
miguel
home
...
...
Directorio ...
raíz
usr
bin
elvira
include
stdio.h
datos
lista.c
test
claves
agenda
claves
sh
correo
Intro. Linux
agenda
rm
vi
mio.o
FCFM, BUAP
mail
buzon
Directorio con estructura de árbol
• Los nombres absolutos contienen todo el camino
• Los nombres relativos parten del directorio de trabajo o actual
• Cambio de directorio:
– cd /spell/mail/prog
– cd prog
• Borrar un archivo: rm <nombre-archivo>
• Crear un subdirectorio: mkdir <nombre_dir>
• Ejemplo:
– cd /spell/mail
– mkdir count
– ls /spell/mail/count
• Borrar un subdirectorio: rm -r mail
Intro. Linux
FCFM, BUAP
Directorio de grafo acíclico I
• Tienen archivos y subdirectorios compartidos
• Este concepto no existe en Windows
tmp
marivi miguel
home
...
...
Directorio ...
raíz
usr
bin
elvira
include
stdio.h
datos
lista.c
test
claves
agenda
Intro. Linux
agenda
buzon
claves
sh
correo
mail
rm
vi
claves
FCFM, BUAP
Directorio de grafo acíclico II
• link: Un archivo con varios nombres -> control de enlaces
– un único archivo con contador enlaces en descriptor (e. Físicos)
– archivos nuevos con el nombre destino dentro (e. simbólicos)
• Borrado de enlaces:
– a) decrementar contador; si 0 borrar archivo
– b) recorrer los enlaces y borrar todos
– c) borrar únicamente el enlace y dejar los demás
• Problema grave: existencia de bucles en el árbol. Soluciones:
– Permitir sólo enlaces a archivos, no subdirectorios
– Algoritmo de búsqueda de bucle cuando se hace un enlace
• Limitación de implementación en UNIX: sólo enlaces físicos dentro del
mismo sistema de archivos.
Intro. Linux
FCFM, BUAP
Nombres jerárquicos
• Nombre absoluto: especificación del nombre respecto a la raíz (/
en LINUX, \ en Windows).
• Nombre relativo: especificación del nombre respecto a un
directorio distinto del raíz
– Ejemplo: (Estamos en /users/) miguel/claves
– Relativos al dir. de trabajo o actual: aquel en el se está al
indicar el nombre relativo. En Linux se obtiene con pwd
• Directorios especiales:
– . Directorio de trabajo. Ejemplo: cp / users/miguel/claves .
– .. Directorio padre. Ejemplo: ls ..
– Directorio HOME: el directorio base del usuario
Intro. Linux
FCFM, BUAP
Interpretación de nombres en LINUX. II
• Interpretar /users/miguel/claves
– Traer a memoria entradas archivo con nodo-i 2
– Se busca dentro users y se obtiene el nodo-i 342
– Traer a memoria entradas archivo con nodo-i 342
– Se busca dentro miguel y se obtiene el nodo-i 256
– Traer a memoria entradas archivo con nodo-i 256
– Se busca dentro claves y se obtiene el nodo-i 758
– Se lee el nodo-i 758 y ya se tienen los datos del archivo
• ¿Cuándo parar?
– Se ha encontrado el nodo-i del archivo
– No se ha encontrado y no hay más subdirectorios
– Estamos en un directorio y no contiene la siguiente
componente del nombre (por ejemplo, miguel).
Intro. Linux
FCFM, BUAP
Jerarquía de directorios
• ¿Árbol único de directorios?
– Por dispositivo lógico en Windows (c:\users\miguel\claves,
j:\pepe\tmp, ...)
– Para todo el sistema en UNIX (/users/miguel/claves,
/pepe/tmp, ...).
• Hacen falta servicios para construir la jerarquía: mount y
umount.
– mount /dev/hda /users
– umount /users
• Ventajas: imagen única del sistema y ocultan el tipo de
dispositivo
• Desventajas: complican la traducción de nombres, problemas
para enlaces físicos entre archivos
Intro. Linux
FCFM, BUAP
Montado de Sistemas de archivos o particiones
Volumen raiz
Volumen sin montar
(/dev/hd0)
(/dev/hd1)
Volumen montado
/
/
/
mount /dev/hd1 /usr
/lib
/bin
/usr
/d1
/d2
/d3/f1
/d3
/lib
/bin
/usr
/d3/f2
/usr/d3
/usr/d1 /usr/d2
/usr/d3/f1 /usr/d3/f2
Intro. Linux
FCFM, BUAP
Arbol de directorios
• /bin: Ejecutables básicos del
SSOO.
• /dev: Ficheros especiales
asociados a dispositivos.
• /etc: Configuración del sistema.
• /home: Directorio de cuentas de
usuarios.
• /lib: Librerías básicas del
sistema.
Intro. Linux
/
/bin
/dev
/etc
/home
/lib
/mnt
/opt
/proc
/bin
/sbin
/etc
/tmp
/include
/usr
/lib
/var
/man
/local
FCFM, BUAP
Arbol de directorios
• /mnt: Directorio de montaje
de ciertos sistemas de
ficheros.
• /opt: Aplicaciones
adicionales del sistema.
/
/bin
/dev
/etc
/home
/lib
/mnt
/opt
• /proc: Sistema de ficheros
virtual para la gestión de
recursos.
• /sbin: Ejecutables de
administración del SSOO
Intro. Linux
/proc
/bin
/sbin
/etc
/tmp
/include
/usr
/lib
/var
/man
/local
FCFM, BUAP
Arbol de directorios
• /tmp: Directorio para
ficheros temporales.
• /usr: Aplicaciones
adicionales del SSOO.
/
/bin
/dev
/etc
/home
/lib
/mnt
• /usr/local: Programas
locales del sistema.
• /var: Directorio para
ficheros de log y colas de
trabajos.
Intro. Linux
/opt
/proc
/bin
/sbin
/etc
/tmp
/include
/usr
/lib
/var
/man
/local
FCFM, BUAP
Directorios Especiales
• /dev
Agrupa entradas de tres
diferentes tipos:
– Dispositivos de tipo
carácter.
– Dispositivos de tipo
bloque.
– Dispositivos virtuales
(/dev/zero).
Todos estos dispositivos tienen
asociado un minor y un
major number.
Intro. Linux
• /proc
Se corresponde con un sistema
de ficheros virtual (no tiene
soporte en disco). Las
entradas del directorio son:
– Procesos en ejecución.
– Información del sistema.
– Mapping de recursos del
sistema.
FCFM, BUAP
Sistemas de archivos y particiones
• El sistema de archivos permite organizar la información dentro de los
dispositivos de almacenamiento secundario en un formato inteligible para el
sistema operativo.
• Previamente a la instalación del sistema de archivos es necesario dividir
físicamente, o lógicamente, los discos en particiones o volúmenes [Pinkert
1989].
• Una partición es una porción de un disco a la que se la dota de una
identidad propia y que puede ser manipulada por el sistema operativo como
una entidad lógica independiente.
• Una vez creadas las particiones, el sistema operativo debe crear las
estructuras de los sistemas de archivos dentro de esas particiones. Para ello se
proporcionan mandatos como format o mkfs al usuario.
#mkswap –c /dev/hda2 20800
#mkfs -c /dev/hda3 –b 8196 123100
Intro. Linux
FCFM, BUAP
Tipos de particiones
P ar tición 4
P ar tición 5
P ar tición 2
P ar tición 3
Intro. Linux
FCFM, BUAP
Sistemas de archivos y particiones (II)
• Sistema de archivos: conjunto coherente de metainformación y datos.
• Ejemplos de Sistemas de archivos:
MS-DOS
Boot
Dos copias
de la FAT
Directorio
Raíz
Datos y
Directorios
UNIX
Boot
Intro. Linux
Super
Bloque
Mapas
de bits
nodos-i
Datos y
Directorios
FCFM, BUAP
Sistemas de archivos y particiones (III)
• Descripción de sistemas de archivos:
– El sector de arranque en MS-DOS
– El superbloque en UNIX
• Relación sistema de archivos-dispositivo:
– Típico: 1 dispositivo N sistemas de archivos (particiones)
– Grandes archivos: N dispositivos 1 sistema de archivos
• Típicamente cada dispositivo se divide en una o más particiones
(en cada partición sistema de archivos)
• La tabla de particiones indica el principio, el tamaño y el tipo de
cada partición.
Intro. Linux
FCFM, BUAP
Otros sistemas de archivos
•
•
•
•
•
•
Fast File System
EXT2 (extended file system)
Archivos con bandas
LFS (log structured file system)
Sistemas de archivos paralelos
....
Intro. Linux
FCFM, BUAP
Servidor de archivos
• Para proporcionar un acceso eficiente y sencillo a los
dispositivos de almacenamiento, todos los sistemas operativos
tienen un servidor de archivos que permite almacenar, buscar y
leer datos fácilmente.
• Dicho servidor de archivos tiene dos tipos de problemas de
diseño muy distintos entre sí:
– Definir la visión de usuario del sistema de entrada/salida,
incluyendo servicios, archivos, directorios, sistemas de
archivos, etc.
– Definir los algoritmos y estructuras de datos a utilizar para
hacer corresponder la visión del usuario con el sistema físico
de almacenamiento secundario.
Intro. Linux
FCFM, BUAP
Estructura del servidor de archivos
Proceso de
Usuario 1
Proceso de
Usuario 2
Proceso de
Usuario 3
Proceso de
Usuario n
...
Nivel de
usuario
Nivel de
sistema
Sistema de Archivos Virtual
Módulo de Organización de Archivos
ext2
msdos
Servidor de Bloques
ffs
...
proc
Cache de
Bloques
Manejadores de Dispositivo
...
Intro. Linux
FCFM, BUAP
Sistema de archivos virtuales
• S.A. Virtual: interfaz de llamadas de entrada/salida del sistema y de pasar al
módulo de organización de archivos la información necesaria para ejecutar
los servicios pedidos por los usuarios.
• Servicios:
– manejo de directorios,
– gestión de nombres,
– algunos servicios de seguridad,
– integración dentro del servidor de archivos de distintos tipos de sistemas
de archivos
– servicios genéricos de archivos y directorios.
• Nodo virtual: estructura de información que incluye las características
mínimas comunes a todos los sistemas de archivos subyacentes y que enlaza
con un descriptor de archivo de cada tipo particular.
Intro. Linux
FCFM, BUAP
Módulo de organización de archivos
• Proporciona el modelo del archivo del sistema operativo y los servicios de
archivos.
• Relaciona la imagen lógica del archivo con su imagen física, proporcionando
algoritmos para trasladar direcciones lógicas de bloques a sus
correspondientes direcciones físicas.
• Gestiona el espacio de los sistemas de archivos, la asignación de bloques a
archivos y el manejo de los descriptores de archivo (nodos-i de UNIX o
registros de Windows NT).
• Un módulo de este estilo por cada tipo de archivo soportado (UNIX, AFS,
Windows NT, MS-DOS, EFS, MINIX, etc.).
• Dentro de este nivel también se proporcionan servicios para pseudo-archivos,
tales como los del sistema de archivos proc.
• Las llamadas de gestión de archivos y de directorios particulares de cada
sistema de archivos se resuelven en el módulo de organización de archivos.
Para ello, se usa la información existente en el nodo-i del archivo afectado
por las operaciones.
Intro. Linux
FCFM, BUAP
Flujo de datos en el S. de A.
read (fd, buffer, tamaño)
buffer
Usuario
tamaño
arc hivo lógic o
(VFS)
arc hivo lógic o
(FFS)
3
4
5
6
bloques del
archivo
Bloques lógic os
(Servidor
de bloques)
1340
1756
840
8322
bloques del
dispositivo
1340
Manejador de
disco y
dispositivo
1756
840
bloques del
disco
8322
Intro. Linux
FCFM, BUAP
Estructuras de datos asociadas al S. de A. (I)
• Tabla de nodos-v: almacena en memoria la información del nodo-v existente
en el disco y otra que se usa dinámicamente y que sólo tiene sentido cuando
el archivo está abierto.
– Problema: si sólo hay un campo de apuntador, cada operación de un
proceso afectaría a todos los demás.
– Posible solución: incluir la información relativa al archivo dentro del
bloque de descripción del proceso (BCP).
• Tabla de archivos abiertos (tdaa) por un proceso, dentro del BCP, con sus
descriptores temporales y el valor del apuntador de posición del archivo para
ese proceso.
– El tamaño de esta tabla define el máximo número de archivos que cada
proceso puede tener abierto de forma simultánea.
– El descriptor de archivo fd indica el lugar de tabla. La tdaa se rellena
de forma ordenada, de forma que siempre se ocupa la primera posición
libre de la tabla.
– En los sistemas UNIX cada proceso tiene tres descriptores de archivos
abiertos por defecto: entrada estándar, fd = 0, salida estándar, fd =
1, error estándar, fd = 2.
Intro. Linux
FCFM, BUAP
Flujo datos con cache de bloques
read (fd, buffer, tamaño)
buffer
Usuario
tamaño
arc hivo lógic o
(VFS)
arc hivo lógic o
(FFS)
3
4
5
6
bloques del
archivo
Bloques lógic os
(Servidor
de bloques)
1340
1756
840
8322
bloques del
dispositivo
Cac he de bloques
(Servidor
de bloques)
1340
1756
840
1756
Manejador de
disc o y
dispositivo
8322
bloques del
disco
8322
Intro. Linux
FCFM, BUAP
Políticas de reemplazo
• Algoritmo:
– Comprobar si el bloque a leer está en la cache.
• En caso de que no esté, se lee del dispositivo y se copia
a la cache.
• Si la cache está llena, es necesario hacer hueco para el
nuevo bloque reemplazando uno de los existentes:
políticas de reemplazo.
• Si el bloque ha sido escrito (sucio): política de
escritura.
• Políticas de reemplazo: FIFO (First in First Out), segunda oportunidad, MRU
(Most Recently Used), LRU (Least Recently Used), etc.
– La política de reemplazo más frecuentemente usada es la LRU. Esta política
reemplaza el bloque que lleva más tiempo sin ser usado, asumiendo que no será
referenciado próximamente.
– Los bloques más usados tienden a estar siempre en la cache y, por tanto, no van al
disco. La utilización estricta de esta política puede crear problemas de fiabilidad
Intro. Linux en el sistema de archivos si el computador falla.
FCFM, BUAP
– La mayoría de los servidores de archivos distinguen entre bloques especiales y
Políticas de escritura
• Escritura inmediata (write-through): se escribe cada vez que se modifica el
bloque.
– No hay problema de fiabilidad, pero se reduce el rendimiento del sistema.
• Escritura diferida (write-back): sólo se escriben los datos a disco cuando se
eligen para su reemplazo por falta de espacio en la cache.
– Optimiza el rendimiento, pero genera los problemas de fiabilidad
anteriormente descritos.
• Escritura retrasada (delayed-write), que consiste en escribir a disco los
bloques de datos modificados en la cache de forma periódica cada cierto
tiempo (30 segundos en UNIX).
– Compromiso entre rendimiento y fiabilidad.
– Reduce la extensión de los posibles daños por pérdida de datos.
– Los bloques especiales se escriben inmediatamente al disco.
– No se puede quitar un disco del sistema sin antes volcar los datos de la
cache.
• Escritura al cierre (write-on-close): cuando se cierra un archivo, se vuelcan
al disco los bloques del mismo que tienen datos actualizados.
Intro. Linux
FCFM, BUAP
Montado de sistemas de archivos o particiones
• Oculta el nombre del dispositivo físico o partición
Volumen raiz
Volumen sin montar
(/dev/hd0)
(/dev/hd1)
Volumen montado
/
/
/
mount /dev/hd1 /usr
/lib
/bin
/usr
/d1
/d2
/d3/f1
/d3
/lib
/bin
/usr
/d3/f2
/usr/d3
• En MS-DOS c:\tmp\datos.txt
/usr/d1 /usr/d2
/usr/d3/f1 /usr/d3/f2
Intro. Linux
FCFM, BUAP
Enlaces
• Permite que dos o más nombres hagan referencia al mismo
archivo.
• Dos tipos:
– Enlace físico
• El archivo sólo se elimina cuando se borran todos los enlaces
• Sólo se permiten enlazar archivos (no directorios) del mismo
volumen.
– Enlace simbólico
• El archivo se elimina cuando se borra el enlace físico. Si
permanece el enlace simbólico provoca errores al tratar de
accederlo.
• Se puede hacer con archivos y directorios.
• Se puede hacer entre archivos de diferentes sistema de archivos
Intro. Linux
FCFM, BUAP
Enlace físico
/
usr
/
user
lib
prog.c
pepe
.
..
datos.txt
prog.c
pepe
prueba.txt
23
100
28
400
prueba.txt
datos.txt
80
100
60
.
..
datos.txt
prog.c
juan
prog.c
pepe
juan
.
..
user
lib
juan
pepe
datos.txt
usr
prueba.txt
datos2.txt
juan
23
100
28
400
.
..
prueba.txt
datos2.txt
80
100
60
28
ln /user/pepe/datos.txt /user/juan/datos2.txt
Intro. Linux
FCFM, BUAP
nodo-i 28
enlaces = 2
descripción
del fichero
Enlace simbólico
/
usr
/
user
lib
pepe
datos.txt
prog.c
pepe
.
..
datos.txt
prog.c
usr
juan
pepe
prueba.txt
juan
23
100
28
400
.
..
80
100
prueba.txt 60
user
lib
datos.txt
nodo-i 28
enlaces = 1
descripción
del fichero
prog.c
pepe
.
..
datos.txt
prog.c
juan
prueba.txt
datos2.txt
juan
23
100
28
400
.
..
80
100
prueba.txt 60
datos2.txt 130
ln -s /user/pepe/datos.txt /user/juan/datos2.txt
Intro. Linux
FCFM, BUAP
nodo-i 130
enlaces = 1
/user/pepe/
datos.txt
Ejemplo de montado
/
=
Punto de
montado
Intro. Linux
FCFM, BUAP
punto de
montado
Fiabilidad del sistema de archivos
• Fallos HW y SW pueden provocar fallos en un volumen
• Soluciones:
– Hardware:
• Controladores que tratan con sectores con fallos
• Discos con información redundante (RAID)
– Backups (copias de respaldo)
• En discos
• En cintas
• Backups incrementales
Intro. Linux
A
B
B
A
FCFM, BUAP
Redundancia con paridad
Dispositivo RAID
Disco 0
Disco 1
bloque 0 bloque 1
Disco 2
Disco 3
bloque 2 paridad
bloque 3
Intro. Linux
FCFM, BUAP
Consistencia del sistema de archivos (I)
•
•
•
Dos aspectos importantes:
– Comprobar que la estructura física del sistema de archivos es coherente.
– Verificar que la estructura lógica del sistema de archivos es correcta.
Estrucutra física: se comprueba la superficie del dispositivo de
almacenamiento.
Estructura lógica:
1. Se comprueba que el contenido del superbloque responde a las
características del sistema de archivos.
2. Se comprueba que los mapas de bits de nodos-i se corresponden con los
nodos-i ocupados en el sistema de archivos.
3. Se comprueba que los mapas de bits de bloques se corresponden con los
bloques asignados a archivos.
4. Se comprueba que ningún bloque esté asignado a más de un archivo.
5. Se comprueba el sistema de directorios del sistema de archivos, para ver
que un mismo nodo-i no está asignado a más de un directorio.
Intro. Linux
FCFM, BUAP
Consistencia del sistema de archivos (II)
• Consistencia sobre archivos:
– Contador de enlaces > contador real
– Contador de enlaces < contador real
– Número de nodo-i > Número total de nodos-i
– Archivos con bits de protección 0007
– Archivos con privilegios en directorios de usuario
• UNIX y LINUX: fsck
fsck /dev/dsk/c0t0d3s1
– Comprueba el dispositivo físico c0t0d3s1
Intro. Linux
FCFM, BUAP
Puntos a recordar (I)
  Los archivos y los directorios son los elementos centrales del sistema.
  Archivo: unidad de almacenamiento lógico no volátil que agrupa un
conjunto de información relacionada entre sí bajo un mismo nombre.  Todos
los sistemas operativos tienen un descriptor de archivo que almacena
atributos del mismo.
  Todos los sistemas operativos proporcionan mecanismos de nombrado que
permiten asignar un nombre a un archivo en el momento de su creación.
 Desde el punto de vista del usuario, la información de un archivo puede
estructurarse como una lista de caracteres, un conjunto de registros secuencial
o indexado, etc.
  Las dos formas de acceso más habituales son el acceso secuencial y el
directo (o aleatorio).
  La semántica de coutilización especifica qué ocurre cuando varios
procesos acceden de forma simultánea al mismo archivo.
  Un directorio es un objeto que relaciona de forma unívoca el nombre de
usuario de un archivo y el descriptor interno del mismo usado por el sistema
operativo.
Intro. Linux
FCFM, BUAP
Puntos a recordar (II)
  Hay dos posibles formas de especificar un nombre: nombre completo del
archivo, denominado nombre absoluto, o nombre de forma relativa a algún
subdirectorio del árbol de directorios, denominado nombre relativo.
  Previamente a la instalación del sistema operativo es necesario dividir
físicamente, o lógicamente, los discos en particiones o volúmenes.
  Una vez creadas las particiones, el sistema operativo debe crear las
estructuras de los sistemas de archivos dentro de esas particiones. Para ello se
proporcionan mandatos como format o mkfs al usuario.
  El superbloque, los mapas de bloques y los mapas de descriptores
constituyen la metainformación de un sistema de archivos. Si el superbloque
se estropea, todo el sistema de archivos queda inaccesible.
  Existen distintos tipos de estructuras de sistemas de archivos: tradicional,
FFS, LFS, con bandas, etc. Cada una de ellas es más apropiada para
determinados propósitos. El FFS es muy usado en la actualidad.
  Los servidores de archivos tienen una estructura interna que, en general,
permite acceder a los distintos dispositivos del sistema mediante archivos de
distintos tipos, escondiendo estos detalles a los usuarios.
Intro. Linux
FCFM, BUAP
Puntos a recordar (III)
  El sistema de archivos virtuales proporciona una interfaz de llamadas de





entrada/salida genéricas válidas para todos los tipos de sistemas de archivos instalados
en el sistema operativo.
 Los mecanismos de asignación hacen corresponder la imagen lógica del archivo con
la imagen física que existe en el almacenamiento secundario. Hay dos políticas de
asignación básicas: bloques contiguos y bloques discontiguos.
 Dos mecanismos populares para gestionar el espacio libre son los mapas de bits y la
lista de bloques libres.
 Para optimizar el rendimiento del sistema de entrada/salida, el servidor de archivos
incorpora mecanismos de incremento de prestaciones tales como discos RAM, caches
de nombres, caches de bloques y compresión de datos.
 La destrucción de un sistema de archivos es, a menudo, mucho peor que la
destrucción de un computador. Es importante salvaguardar los datos.
 Un sistema de archivos puede quedar en estado incoherente por mal uso, caídas de
tensión, apagados indebidos del sistema operativo, etc. · Actualmente, algunos
servidores de archivos incorporan servicios avanzados tales como actualizaciones
atómicas, transacciones o replicación.
Intro. Linux
FCFM, BUAP
Terminales Gráficos
X Window:
– Entorno gráfico de los sistemas UNIX.
– Arquitectura Cliente/Servidor
– Diferentes niveles (librerías) de desarrollo.
– Nuevos problemas de seguridad.
Intro. Linux
FCFM, BUAP
X Windows
Servidor:
– Asociado al terminal
gráfico.
– Muestra en pantalla los
pixels.
Cliente:
– Aplicación con salida
gráfica.
– Está asociada a un servidor.
Intro. Linux
window
manager
xterm
Servidor X
xterm
FCFM, BUAP
X Windows
Servidor:
– Interactúa con el hardware gráfico.
– Acepta mensajes X11.
Clientes:
– Usan primitivas para dibujar en el servidor.
– Pueden ser aplicaciones remotas.
– Gestor de ventanas: window manager
Intro. Linux
FCFM, BUAP
X Windows
• Librerías de alto nivel:
– Motif
– Qt
– ...
Aplicaciones X
• Librerías de bajo nivel:
– X11
– Xlib
Motif
Xtoolkit
Xlib
X11
Kernel
Hardware
Intro. Linux
FCFM, BUAP
Documentos relacionados
Descargar