P. 1
Administracion de Sistemas Operativos

Administracion de Sistemas Operativos

|Views: 18|Likes:
Publicado pornayem2001

More info:

Published by: nayem2001 on Nov 12, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/08/2015

pdf

text

original

Sections

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 1 - Visión General de la Administración de un Sistema Operativo
a) Introducción
Según Tanembaum, existen dos aspectos o puntos de vista diferentes respecto de los SS. OO.: a) el S. O. es una máquina ampliada (llamada también máquina virtual) que es más fácil de programar y manejar que el propio hardware de la máquina (llamada también máquina real). b) el S. O. es un gestor de recursos que ofrece una distribución ordenada y controlada de los dispositivos de la máquina real, entre los distintos programas que compiten por esos recursos. Otra definición para el S. O. es la siguiente: ' ' programa cuyo objetivo es el de simplificar el manejo del ordenador, haciéndolo seguro y eficiente. Las funciones de un S. O. han sido, clásicamente, las siguientes:
• • •

la gestión de recursos, la ejecución de servicios para los programas y la ejecución de órdenes de usuario.

Tradicionalmente, se han representado los elementos que intervienen en la comunicación hombreordenador, en el siguiente modelo de capas: Usuario M. V.

Usuario Aplicaciones S. O.

HW Usuario S. O. HW

En una primera aproximación, entendemos que el usuario se comunica con una máquina virtual (' ' algo que no es lo que parece''). Si obs ervamos más de cerca, y nos centramos en el nivel más básico en el uso del ordenador, percibiremos que el usuario se comunica con un sistema operativo que, a su vez, se comunica con la máquina física o real (que en los gráficos se llama HW o hardware). Si observamos la relación entre el usuario y el ordenador a un nivel más alto, se verá que el usuario interacciona con una serie de aplicaciones que interactúan con el sistema operativo,
Tema 1, página 1 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

el cual, a su vez, interacciona con la máquina física. Para representar un rango más amplio de canales de comunicación entre el usuario y el ordenador, podemos usar el siguiente esquema:

Usuario Aplicaciones S. O. HW

en el caso de máquinas aisladas, o el que se muestra a continuación para el caso de máquinas conectadas mediante un red:

Usuario Aplicaciones S. O. HW Network

Usuario Aplicaciones S. O. HW

En este diagrama de capas, se muestra que la conexión de dos máquinas mediante una red se concibe como una parte del hardware de las máquinas, aunque el sistema operativo provea de modos de acceso a esos recursos del sistema. Nuestro área de interés se centrará en la zona del S. O. que aparece marcada en los gráficos. Si descendemos a un nivel de detalle aún mayor, podemos ver el sistema operativo como dos partes
Tema 1, página 2 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

interconectadas entre sí y concordantes con la definición de Tanembaum: 1. una máquina virtual: compuesta de una serie de servicios y una shell (o intérprete de comandos) y 2. un gestor de recursos o kernel, que provee a la máquina de un funcionamiento básico y una forma de acceder a los dispositivos.

Aplicaciones

Usuario (3)

Servicios

Kernel

Shell

HW

En el tema 3, abordaremos la administración de usuarios y su entorno. Es decir, afectaremos a la frontera entre el usuario y la shell, y entre el usuario y las aplicaciones, para establecer a qué pueden acceder qué usuarios, cuándo y cómo. En el tema 4, trataremos el problema de cómo se guarda y recupera la información desde el usuario y las aplicaciones en el hardware. En el tema 5, veremos cómo hacer que un ordenador se comunique con otros, a nivel del sistema operativo, mediante una red. En el tema 7, veremos cómo se administran recursos de conexión e impresión.

b) Conceptos
Vamos a definir una serie de conceptos que nos serán útiles a la hora de la administración de un sistema operativo: a) proceso: básicamente, un programa en ejecución, es decir, el conjunto formado por un programa ejecutable, sus datos, su pila, su contador de programa y sus registros. La definición provista por The Free On-line Dictionary of Computing (27 SEP 03) es la
Tema 1, página 3 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

siguiente: ' 'S ecuencia de estados de un programa en ejecución. Un proceso consta de código del programa (que puede ser compartido con otros procesos que ejecutan el mismo programa), datos privados, y el estado del procesador, en particular, los valores de los registros. Puede tener asociados una serie de recursos.“ b) archivo: colección de datos almacenada en memoria. La definición más consecuente, provista por WordNet® 2.0 es: ''con junto de registros relacionados (en forma escrita o electrónica) que se almacenan juntos' '. c) sistema de ficheros: la definición provista por The Free On-line Dictionary of Computing (27 SEP 03) es ' 'un sis tema para organizar directorios y fichero, generalmente en términos de cómo lo implementa el sistema operativo; la colección de ficheros y directorios que se almacenan en una unidad determinada'' . d) jerarquía de directorios o á rbol: jerarquía de directorios (archivos que contienen a otros archivos) en la que se organizan los archivos dentro de un sistema de ficheros, cuyo punto de partida es el llamado directorio raíz. La definición que provee The Free On-line Dictionary of Computing (27 SEP 03) para un sistema de ficheros jerárquico es: ''sis tema de ficheros en el que los archivos están organizados en una jerarquía en la que, los nodos intermedios de la misma se llaman directorios y las hojas se conocen como archivos, comenzando por un nodo raíz. e) shell o intérprete de comandos: programa que permite la comunicación directa entre el usuario y el S. O. en un lenguaje más próximo al usuario que el propio lenguaje máquina o el de los servicios provistos por el núcleo (o kernel). Generalmente, consta de una línea de comandos que espera un comando introducido por el usuario, para posteriormente procesarlo y devolver el resultado proporcionado por el sistema operativo. La definición provista por Jargon File (4.3.0, 30 APR 2001) es ''el nté i rprete de comandos usado para pasar comandos a un sistema operativo; llamado de esta manera porque es la parte del sistema operativo que lo comunica con el mundo exterior (el usuario). Más generalmente, se usa este vocablo para describir a cualquier programa de interfase que media en el acceso a cualquier recurso o servicio por conveniencia, eficiencia o, simplemente, por seguridad'' .

c) Tareas de un administrador
Las principales tareas de una administrador del sistema operativo son las siguientes:
• • • • • • • •

administrar usuarios, configurar dispositivos, arranque y desconexión del sistema operativo, seguridad del sistema (tanto interna como externa), bitácora o supervisión del sistema, copia de seguridad, formación de los usuarios en el uso del sistema operativo en cuestión, y consejero de los usuarios en cuanto a temas relacionados con dicho sistema operativo.
Ignacio José Blanco Medina

Tema 1, página 4

Administración de Sistemas Operativos

Curso Académico 2003-2004

Algunas normas básicas para un administrador de sistema operativo son:
• •

jamás conectar al sistema como administrador si no es necesario, evitar la administración del sistema operativo mientras haya usuarios que puedan verse afectados en un mayor grado por dicha tarea de administración (por ejemplo, con el reinicio del equipo informático), y realizar copias de seguridad en un horario no crítico.

Algunas referencias
• • •

Wordnet The Free On-Line Dictionary of Computing Jargon File

Tema 1, página 5

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 2 - Instalación de un Sistema Operativo
a) Dedicación del Sistema Operativo
En primer lugar, es necesario determinar a qué se va a dedicar el ordenador que se está instalando, ya que, en última instancia, este uso determinará el tipo de sistema operativo que se deberá instalar. Esta decisión vendrá influida por el tipo de organización que se desea aplicar a la información dentro del sistema y al tipo de servicios que se requerirán del ordenador en cuestión. Las posibilidades, a la hora de instalar un equipo, son las siguientes: a) máquina independiente: un ordenador que trabaja de forma aislada y que es utilizada por uno o más usuarios. Requerirá de un espacio de disco para cada usuario, además de las aplicaciones que estos puedan necesitar. b) máquina servidor: equipo que, usualmente, trabaja conectada a una red de ordenadores y que se dedica a la atención de peticiones emitidas por otros ordenadores, conocidos como máquinas cliente. Según el servicio que se desee ofrecer, habrá unas u otras restricciones sobre los recursos, como pueden ser espacio o acceso a red. Generalmente, un ordenador servidor (host) sólo requerirá del uso de aquellos recursos relacionados de alguna forma con el servicio que ofrece, ya que sólo ejecutará procesos relacionados con el núcleo del sistema operativo (kernel) y con el servicio ofrecido. Los principales (o más conocidos) servicios que se pueden proveer, son:

servicio de disco: este tipo de servidor atiende peticiones de acceso a sus discos duros por parte de usuarios o de aplicaciones ejecutadas por estos desde ordenadores remotos (clientes de disco). Según el tipo de archivos a los que accede el usuario, podemos distinguir entre:

servidores de cuenta de usuario: centralizan los archivos de cada usuario, de modo que, sea cual sea el ordenador en el que se conecte el usuario, podrá manejar sus ficheros (siempre que usuario y ordenador estén autorizados para ello). servidores de aplicaciones: centralizan el software instalado en una empresa u organización de modo que sólo es necesario realizar una instalación de cada programa para todos los clientes autorizados.

servicio de impresión: el ordenador dedicado a este servicio cuenta, entre su hardware, con una o varias impresoras, en las que se imprimen los trabajos recibidos como peticiones de otros ordenadores, emitidas por usuarios o programas que trabajan sobre ordenadores remotos. Los servidores de impresión como máquinas independiente están empezando a quedar desfasados por la aparición de impresoras que incorporan su propio procesador, memoria, disco duro, sistema operativo y hardware de red, con lo que la funcionalidad del servidor se incorpora a la propia impresora, la cual se conecta directamente a la red. servicio de correo electrónico/noticias: atiende peticiones de envío/recepción de correo electrónico por parte de usuarios registrados y programas que actúen en su nombre. La responsabilidad de la limpieza del correo recibido (en cuanto a virus) ha pasado de pertenecer al usuario a estar integrada dentro del propio servidor, de modo que los correos recibidos se comprueban y limpian automáticamente antes de que el usuario pueda proceder a su lectura. Según el tipo de servidor de correo de que estemos hablando, las restricciones sobre los recursos serán distintas:

Tema 2, página 1

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

servidor POP3: el servidor actúa como una estafeta de correo. El programa de correo, que se ejecuta en el ordenador cliente, conecta con el servidor y descarga de forma local el correo electrónico recibido desde la última conexión, además de proceder al envío del correo saliente. Este modo de comunicación se conoce como off-line. La necesidad de espacio para las cuentas de correo de los usuarios estará adaptada a la cantidad de correo que el usuario puede recibir. servidor IMAP: el servidor actúa como apartado de correo. El programa de correo que se ejecuta en el ordenador cliente actúa interactivamente con el servidor de correo. Los correos electrónicos se reciben y almacenan directamente en el servidor de correo. Las ventajas que presenta el uso del protocolo IMAP para el correo electrónico reside en que el correo puede ser consultado indiferentemente desde cualquier ordenador cliente con un programa cliente de IMAP. Sin embargo, como desventajas cabe remarcar la necesidad de una red de ordenadores con un ancho de banda suficiente y que la necesidad de espacio de disco para almacenar las cuentas de correo de los usuarios estará adaptada a la cantidad de correo que el usuario puede almacenar.

servicio de web hosting (o albergue de páginas web, o de web, simplemente): almacena una jerarquía de páginas web y atiende peticiones de acceso a las mismas, emitidas por programas (navegador o browser) ejecutados en ordenadores cliente. Generalmente, las páginas web suelen ser interfaces para otros servicios provistos por la misma máquina, de modo que el servidor instalado en la máquina (referido al proceso que ofrece el servicio) sólo actúa como paso a otros servicios (portal), como pueden ser correo, bases de datos, etc. servicio de acceso (ISP, Internet Service Provider o proveedor de servicios de Internet): proveen de servicio de acceso a una red a un ordenador que no está directamente conectada a una. Es preciso recordar, como se verá en el tema 5, que todo ordenador conectado a una red tiene, en dicha red, un identificador único o dirección IP (dirección de Internet Protocol). De este modo, un ordenador no conectado a una red no posee dicha dirección, que es provista por un ISP para que el cliente la ostente temporalmente hasta que finalice el uso del servicio. El proceso de conexión tiene el esquema que se muestra en la figura 1 y sigue los siguientes pasos: 1º el cliente conecta con el ISP, 2º el ISP concede una dirección temporal mediante un protocolo conocido como DHCP (que se estudiará en el tema 5), y 3º el ISP actúa como router, es decir, envía toda la información emitida por el cliente a través de su propia conexión a la red.
Cliente ISP Servidor ISP

Network
Ilustración 1. Servicio ISP Tema 2, página 2 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

sigue los siguientes pasos:
➢ ➢

el cliente conecta con el ISP, el ISP concede una configuración de red de forma temporal mediante el protocolo DHCP (Dynamic Host Configuration Protocol), y el ISP actúa como un gateway y router entre el cliente y la red.

➢ 

servicio de proceso: proveen a las máquinas cliente de tiempo de proceso en su/s procesador/es. Existen dos modos de conexión a estos servidores:
➢ ➢

conexión mediante shell remota: modo texto, y conexión mediante clientes gráficos (X server): lanza un interfaz gráfico remoto, pero el grueso del cálculo se ejecuta en el servidor.

servicios multimedia: comunmente conocidos como servidores de streaming, en los que el cliente se conecta y reproduce segmentos archivos en formatos de multimedia conforme se descargan, para borrarlos después (WMV, RealMedia, MP3, ...).

d) clusters: conjuntos de máquinas que trabajan juntas y aparecen como una sola. Comunmente, se conectan a nivel de placa base. En general, un servidor no tiene por qué estar dedicado a un único servicio (por ejemplo, a la impresión), sino que puede proveer varios servicios. A partir de ahora, llamaremos ordenador servidor a aquel ordenador que ejecuta procesos para proveer servicios y servidor al proceso que gestiona y ofrece un servicio. Una vez establecido el tipo de instalación, que establecerá restricciones sobre el espacio necesario y su distribución, se procederá al tratamiento del soporte de almacenamiento para la instalación.

b) Particionado del disco duro: (i) Estructura física de un disco duro
Un disco duro (comunmente representado por HD) es una pila de 1 o más platos (véase la ilustración 2), cada uno de los cuales tiene dos caras recubiertas con un material magnético que permite la representación de información. La información de cada una de las caras es leída por una cabeza lectora y escrita por una cabeza de grabación, de modo que se habla de cabeza. Un disco tiene n cabezas, donde n es el número de platos multiplicado por dos. Para aumentar la eficiencia en el acceso y aumentar la integración (reducir el tamaño), todas las cabezas están sujetas al mismo brazo mecánico, y todos los platos están sujetos al mismo brazo, de modo que hay un solo motor de giro para el disco y un solo motor para posicionar las cabezas. Las cabezas de lectura y escritura no se mueven verticalmente, sino que flotan sobre los discos en lo que se conoce como colchón de aire (la velocidad de giro del disco origina una corriente circular de aire sobre la superficie del disco, y sobre esa corriente flota la cabeza). Físicamente, un disco tiene varios platos, cada uno de los cuales tiene dos caras (véanse las ilustraciones 3 y 4), cada una de las cuales tiene una serie de pistas circulares conocidas como pistas (circulares, que no espirales como los discos de vinilo). Cada pista se divide en una serie de
Tema 2, página 3 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

arcos o segmentos de pista conocidos como sectores. Al conjunto de todas las pistas que se encuentran en la misma vertical se le conoce como cilindro, y al conjunto de sectores que se encuentran en la misma proyección vertical se le conoce como cluster o bloque.

Ilustración 2.- Estructura interna de un disco duro

Ilustración 3.- Estructura de los platos y caras

De la forma de disponer la información almacenada en un disco en sectores, bloques, cilindros, etc. dependerá la eficiencia del dispositivo de almacenamiento.

(ii) Estructura lógica de un disco duro
Lógicamente, un disco duro se compone de:
• • •

sector de arranque o MBR (Master Boot Record), espacio particionado (o espacio preparado para albergar un sistema de ficheros), y espacio sin particionar (espacio libre no preparado para albergar un sistema de ficheros).

El sector de arranque de un disco, conocido como sector 0 o MBR, se encuentra ubicado en la cabeza 0, cilindro 0 y sector 1. En dicha sección del disco se almacenan la tabla de particiones y un
Tema 2, página 4 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

programa de inicialización que indica dónde se encuentra ubicado el sistema operativo que permite ceder el control a la partición activa del disco (la cual tiene su propio sector 0 o sector de arranque). En este MBR se almacena el programa conocido como cargador del sistema operativo (NTLoader, LILO, GRUB, ...).

Ilustración 4Estructura interna de una cara

La motivación para el uso de particiones es la siguiente:

permite una mejor organización de la información, por ejemplo, de diversos tipos (correo, bases de datos, archivos de usuario, etc.), permite la instalación de múltiples sistemas operativos en el mismo ordenador, o varias instalaciones del mismo, mejoran la eficiencia ya que, a veces, es preferible varias FATs (tabla de asignación de archivos) pequeñas que una grande dado que, en particiones grandes, el tamaño de cluster es mayor y se desperdicia más espacio.

Existen dos tipos de particiones: las primarias y las extendidas. Inicialmente, un disco duro sólo podía contener cuatro particiones primarias (debido a la estructura de su tabla de particiones, que se almacena en el MBR) como máximo. Sin embargo, la necesidad de aumentar el número de particiones posibles llevó a la introducción de un nuevo tipo de particiones llamadas extendidas, que se caracteriza por contener varias unidades lógicas (particiones independientes). De este modo, la estructura lógica de un disco duro puede variar desde la siguiente: MBR hasta la siguiente: MBR PP1 PP2 PP3 Partición primaria PL1 PL2 PL3 ... Pln

Para que la BIOS del ordenador pueda iniciar desde un disco duro (disco ''ar rancable'' o de inicio), es necesario que una de las particiones primarias esté marcada como activa (aquella partición a la que se cede el control en el arranque).

Tema 2, página 5

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

La estructura de una tabla de particiones se ve a continuación: PP1 PP2 PP3 PP4 PE de modo que sólo puedan estar marcadas cuatro de las cinco entradas. Un disco duro que no posea unidades lógicas, tendrá la siguiente estructura: PP1 PP2 PP3 PP4 PE Si, por el contrario, hay j unidades lógicas dentro del disco, la partición extendida contiene una '' lista enlazada'' ed tablas de particiones con dos entradas cada una, de la siguiente forma: PP1 PP2 PP3 PP4 PE PE PE PL1 PL2 PLj

...

En realidad, para cada uno de los nodos de la lista de extensión de particiones se usan las dos primeras entradas (una para la partición lógica y otra para la referencia a la siguiente tabla de extensión). Tanto las particiones primarias como las unidades lógicas son denominadas unidades por algunos sistemas operativos, y estas unidades son la forma en la que el sistema operativo gestiona las particiones con formato. Inicialmente, los sistemas operativos debían instalarse en particiones primarias (debido que la BIOS del ordenador sólo podía conceder el control durante el arranque a estas particiones). Sin embargo, la llegada de programas gestores de arranque y cargadores del sistema operativo cada vez más complejos posibilitan que puedan instalarse en cualquier partición (salvo que el programa de instalación no lo permita). Los gestores de arranque de Linux permiten iniciar sistemas operativos de cualquier tipo, mientras que los del sistema Windows sólo reconocen instalaciones de Windows.

Tema 2, página 6

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

(iii) Estructura lógica de una partición
El concepto básico dentro de todo sistema de ficheros es el concepto de fichero, que se ha descrito anteriormente. Sin embargo, la forma de almacenar y gestionar estas estructuras dentro de la partición varía de unos sistemas de ficheros a otros (es decir, del formato que se haya aplicado a la partición). Cada sistema operativo posee uno o varios sistemas de ficheros que son manejados directamente por el núcleo del sistema operativo. Estos sistemas se llaman nativos y se ven a continuación: DOS FAT VFAT FAT32 NTFS EXT
El sistema de ficheros F T (File Allocation Table o Ta!la de

Win95 Acc Acc, Nat

Win95 OSR2 Acc Acc

Win98 Acc Acc

WinNT Acc Acc

Win2000 Acc Acc Acc

WinXP Acc Acc Acc

Linux Acc Acc Acc Acc RO Acc, Nat

Acc, Nat

Acc, Nat Acc, Nat

Acc, Nat Acc, Nat Acc, Nat

signación de Ficheros)

La estructura lógica de una partición con este tipo de formato es la que se ve a continuación: Sector de arranque FAT1 FAT2 Directorio Raíz Área de datos

Este sistema de ficheros emplea un índice conocido como tabla FAT. Cada una de las entradas de la tabla corresponde a un fichero en el sistema, y almacena la siguiente información con respecto al msmo:
• • • •

nombre grupos usados grupos libres grupos defectuosos

Un grupo es un cluster (un conjunto de sectores consecutivos de un disco). Por ellos, el tamaño ocupado del disco será siempre múltiplo del tamano del cluster, y el tamaño de este determinará el grado de aprovechamiento del disco. Un cluster nunca es compartido por dos ficheros y, por ello, es importante optimizar el tamaño del cluster en función de la aplicación que se vaya a dar al sistema. Por ejemplo, supónganse dos ficheros con un único byte cada uno. Cada uno de ellos irá a parar a un cluster distinto. Si el cluster es de 32 KB, para el sistema operativo estarán reserados 64 KB, mientras que sólo dos de esos bytes contienen información real. Las entradas de la tabla FAT pueden contener nombres de 8 caracteres de largo más un punto y otros tres caracteres (extensión). Cada bloque es direccionado por 16 bits, de modo que sólo pueden direccionarse 216 bloques = 65.536 bloques. Dado que el tamaño máximo del bloque es de 25 KB =
Tema 2, página 7 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

32 KB, el tamaño máximo de espacio direccionable es de 216 bloques · 25 KB/bloque = 2 · 220 KB = 2 GB.
El sistema de ficheros VFAT Virtual FAT)

La estructura de índice para los ficheros es la misma que la del sistema FAT, pero la entrada de nombre puede contener hasta 255 caracteres (sumando los caracteres del nombre propiamente dicho, el punto y la extensión). Sin embargo, plantea el mismo problema de direccionamiento que el sistema FAT.
El sistema de ficheros FAT!" FAT de !" bits)

Este sistema de ficheros incorpora las características de el sistema de fichero VFAT e incrementa el número de bits para el direccionamiento de bloques a 32 bits. Esto permite direccionar 232 bloques. El tamaño de bloque para las particiones grandes es, además, menor con lo que se aprovecha mejor el espacio. No obstante, este sistema de ficheros FAT32 no puede aplicarse a particiones de tamaño inferior a 512 MB.
El sistema de ficheros "TFS

El sistema de ficheros NTFS supone un cambio radical con respecto a los anteriores sistemas de ficheros de Microsoft e incorpora características de seguridad y de comprobación de consistencia del sistemas de ficheros. El formato del sistema de ficheros resulta en la creación de una estructura denominada Master File Table (MFT) que contiene información sobre los archivos y directorios almacenados en la partición. La estructura lógica de una partición de este tipo es la siguiente: Partition Boot Sector
Sector 0 Sector 16

MFT

Una partición con este sistema de ficheros se compone de: a) Partition Boot Sector: en los sectores que van del 0 al 15, contiene los parámetros BIOS sobre la localización relativa de la partición en el disco y sobre las estructuras del sistema de ficheros. Además, incorpora información sobre la carga de los archivos de todos los sistemas operativos iniciables mediante el programa NTLDR. b) MFT o Master File Table: primer fichero del sistema de ficheros. Almacena toda la información sobre los ficheros y directorios del sistema de ficheros. Cuando se aplica el formato a la partición, el sistema reserva 1 MB para los metadatos de la MFT. La MFT contiene una serie de registros con la siguiente estructura: Standard information File or directory name Security descriptor Data or index Other information

La MFT reserva 1024 bytes dentro de la zona de datos del registro, de modo que ficheros pequeños (de menos de 1 KB) pueden quedar contenidos integramente dentro de su registro correspondiente de la MFT. Si el tamaño sobrepasa 1 KB, se reservan extensiones a lo largo del disco, y se almacenan las referencias a esas extensiones en el registro de la MFT correspondiente
Tema 2, página 8 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

al archivo en cuestión. Con algo más de detalle, pero aún a grandes rasgos, cada registro de la MFT contiene:
• •

información estándar: sello de tiempo, enlaces, etc. lista de atributos: lista de la localización de los atributos del objeto del sistema de ficheros que no se almacena dentro del MFT, nombre: de hasta 255 caracteres, descriptor de seguridad: quién posee el objeto y quién puede hacer según qué cosas. index root, index allocation y bitmap: para los directorios volume information y volume name: para registros especiales dentro de la MFT.

• • • •

Los 16 primeros registros de la MFT son de uso exclusivo para ficheros del sistema, que son: Registro 0: $MFT Registro 1: $MFTMirror Registro 2: $Logfile Registro 3: $Volume Registro 4: $AttrDef Registro 5: $ Registro 6: $Bitmap Registro 7: $Boot Registro 8: $BadClus Registro 9: $Secure Registro 10: $Upcase Registro 11: $Extend Registro 12: $ Registro 13: $ Registro 14: $ Registro 15: $
El sistema de ficheros E#T2FS

(El directorio raíz) (clusters usados) (que incluye el BPB y el cargador) (clusters dañados) (descriptores de seguridad) (tabla de conversión de caracteres) (extensiones: cuota, ...) (no usado) (no usado) (no usado) (no usado)

En el almacenamiento, el sistema de ficheros ext2 no distingue entre ficheros y directorios, aunque el tratamiento de ambos sea distinto. Este sistema de ficheros constituye una evolución del sistema de ficheros ext, desarrollado a partir del sistema de ficheros del sistema operativo Minix y basado en el sistema de ficheros FFS del sistema operativo UNIX. El principal concepto en el que se basa el sistema de ficheros FFS es el de la homogeneidad, dado que un directorio sólo es un fichero especial, pero un fichero al fin y al cabo.
Tema 2, página 9 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

$lo%ues & fragmentación

Normalmente el sector de disco tiene 512 bytes. Sin embargo, un bloque (cluster) mayor sería deseable. De todos modos, y dado que el sistema operativo UNIX contiene archivos que, en su mayoría, son de tamaño pequeño, se limita el tamaño de bloque a dos sectores. Una solución posterior pasa por definit dos tamaños de bloque (o, exactamente, un tamaño para el bloque y un tamaño para fragmentos de bloque), de modo que todos los bloques de un fichero tienen el tamaño de un bloque (por ejemplo, 8 Kbytes) excepto el último, que tiene el tamaño de un fragmento (múltiplo de un divisor de el bloque como, por ejemplo, 2 Kbytes). Los tamaños de bloque y fragmento se establecen durante la aplicación de formato a la partición que contendrá al sistema de ficheros. Si este sistema de ficheros estuviera pensado para contener ficheros pequeños, el tamaño del fragmento debería adaptarse al tamaño de los ficheros. Si, por el contrario, se realizan transferencias de ficheros de gran tamaño, entonces se recomienda un tamaño de bloque grande. Dichos tamaños suelen variar entre 4096:512 y 8192:1024.
I-nodos

Cualquier objeto contenido en el sistema de ficheros está representado por una estructura conocida como i-node (Index Node) que se ve a continuación:

Tema 2, página 10

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

El uso que se da a los campos de la estructura i-node son:

mode: tipo de objeto del sistema de ficheros (fichero, directorio, enlace simbólico, dispositivo de caracteres, dispositivo de bloques o socket), owner info: usuario (uid) y grupo (gid), size: número de bloques que contienen los datos del objeto, timestamps: fechas de creación y última modificación, direct blocks: 12 direcciones de bloques físicos que permiten almacenar 12*tamaño de bloque bytes del contenido del fichero, indirect blocks: una dirección a un bloque físico que contiene direcciones a bloques físicos para almacenar 2060*tamaño de bloque bytes del contenido del fichero, double indirect blocks: una dirección a un bloque físico que contiene 2060 direcciones a bloques físicos que contienen 2060 direcciones a bloques físicos para el almacenamiento de datos, triple indirect blocks: ...

• • • •

'irectorios

El atributo mode diferencia a un fichero de un directorio. Los bloques de datos de un directorio contienen una entrada por cada elemento contenido en el mismo, cada una de las cuales contiene la siguiente información:
• • •

longitud del nombre de objeto, nombre del objeto y número del i-nodo. . o directorio autocontenido y .. o directorio contenedor (directorio padre).

En todo directorio, hay dos entradas especiales:
• •

El directorio raíz tiene por nombre / y no posee directorio contenedor.
Enlaces

Existen dos tipos de enlaces: duros y simbólicos. Los enlaces duros se tratan como entradas normales de directorio. Los enlaces simbólicos han de ser controlados para no caer en recursión infinita cuando se recorra un camino.

lgunas referencias

Tema 2, página 11

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 3 - Administración de usuarios y entornos de usuario
a) Conceptos previos
Usuario: persona autorizada para usar un sistema informático. Se autentifica mediante un nombre y una contraseña (password). En realidad, un sistema informático no asocia el concepto de usuario con el de cuenta física, sino con un nombre de cuenta (de modo que la misma persona puede poseer varios nombre de cuenta y, por ende, varios usuarios). Del mismo modo, una cuente de usuario puede estar asociada a más de una persona (práctica no aconsejable por motivos de seguridad). Perfil: la definición técnica es “ fichero de control para un programa, generalmente un fichero de texto leído desde el directorio home de cada usuario y que está orientado a una modificación fácil por parte del mismo para personalizar el uso del programa en cuestión” . La propia conexión del usuario al sistema, desencadena el comienzo de un proceso conocido como shell, cuyo perfil se almacena en el propio directorio home (.bashrc, .profile, .shrc, ...). Contraseña: conjunto de caracteres alfanuméricos y especiales, conocido únicamente por el usuario y el sistema operativo sobre el que se ha llegado a un acuerdo para que sea usado como clave de acceso al sistema. Grupo de usuarios: agrupación de privilegios compartidos por una serie de usuarios. Cada usuario pertenece a uno o más grupos que comparten privilegios y derechos comunes. Cualquier grupo es susceptible de obtener derechos y privilegios, de modo que cualquier usuario suscrito a ese grupo ostenta sus propios privilegios y los de los grupos a los que está adscrito.

b) Creación de cuentas
Previo al proceso de creación de las cuentas de usuario, es necesario recopilar una serie de datos referentes a las cuentas que se crearán, como son:
        

nombre de la cuenta del usuario, grupo/s a el/los que pertenece, directorio home, shell que usa para la conexión al sistema (en el caso de sistemas del tipo UNIX), información adicional (variada), fecha de expiración (deshabilitación de cuenta), dias para el bloqueo de cuenta después de la expiración de la contraseña, contraseña y UID (User Identifier).

(i) Gestión de cuentas de usuario en Windows® 2000 Server
En el sistema operativo Windows® 2000 Server instalado en una máquina servidor independiente (no conectada a dominio), los usuarios se crean mediante el Administrador de Equipos (al cual puede accederse con la opción “Admin istrar” del menú contextual de “ Mi PC” o bien a través del
Tema 3, página 1 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

“P anel de Control” y la subcategoría “Her ramientas Administrativas” ). En cambio, si el equipo se encuentra conectado a un dominio como servidor PDC o BDC, la administración de usuarios se realiza mediante la herramienta “ Usuarios y Equipos de Active Directory” ubicada en la subcategoría “Herr amientas Administrativas” del “Pan el de Control”. Durante el proceso de creación de cuentas, el gestor solicita del administrador información como: nombre y apellidos del usuario, nombre de la cuenta, nombre de la cuenta en sistemas operativos anteriores a Windows® 2000 suscritos al dominio, contraseña, fecha de expiración de la contraseña e información adicional. Sin embargo, el gestor sólo solicita información genérica que puede ser ampliada manualmente después de la creación de la cuenta de usuario a través de las propiedades del menú contextual del usuario en cuestión. En el caso de este sistema operativo, el UID (User Identifier) es generado y gestionado internamente, sin intervención del administrador.

(ii)Gestión de cuentas de usuario en Linux
En las últimas versiones de las distribuciones actuales del sistema operativo Linux, existen diversas herramientas para la gestión de usuarios, pero todas ellas recurren a un comando del sistema operativo para la gestión de cuentas. En este apartado, nos centraremos en los comandos de la shell para la gestión, de los cuales, el que se encarga de la creación de usuarios es:
adduser [-u uid [-o]] [-g group] [-G group,...] [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire] [-p passwd] [-M] [-n] [-r] name

Algunos de estos parámetros pueden omitirse durante la ejecución del comando. En este caso, aquellos parámetros omitidos toman valores por defecto que pueden modificarse mediante una sintaxis adicional del comando:
adduser -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire]

En este sistema operativo, toda la información sobre cualquier cuenta de usuario se encuentra almacenada en el fichero de texto /etc/passwd, que contiene una línea para cada usuario, con el siguiente formato:
<nombre cuenta>:<contraseña>:<uid>:<gid>:<comentario>:<home>:<shell>

La información adicional sobre la seguridad, expiración de la contraseña, etc. se almacena en el fichero /etc/shadow, que contiene una línea para cada usuario, con el siguiente formato:
<nombre cuenta>:<contraseña>:<días desde el último cambio de contraseña>: <días antes el próximo cambio posible>: <días para el próximo cambio obligatorio>: <días antes del aviso de expiración de contraseña>: <días antes del bloqueo de cuenta expirada>: <días de bloqueo>:<campo reservado>

Tema 3, página 2

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

c) Gestión de contraseñas
Una contraseña se almacena cifrada mediante un algoritmo de encriptación como se ve en la siguiente figura:

Contraseña

Encriptación

Users File

Durante el acceso, el usuario proporciona una contraseña que se encripta y se comprueba con la almacenada en el fichero que contiene las contraseñas de usuario:

Contraseña

Encriptación

Contraseña cifrada

Users File

Comparador

Acceso
A la hora de seleccionar una contraseña existen una serie de recomendaciones, algunas de las cuales son tenidas en cuenta por el algoritmo de encriptación. Algunas de esas recomendaciones no pueden ser ignoradas ya que supondrían un fallo de seguridad en el sistema. Por citar algunas de las que se aplican comunmente, están:

longitud mínima de 6 caracteres entre los que se recomiendan caracteres alfanuméricos y especiales, no se permiten palabras que aparezcan en un diccionario incorporado al sistema de encriptación, se recomienda el uso de palabras no relacionadas con el usuario (nombres, fechas, ...), no se permiten contraseñas que sólo contengan caracteres numéricos, se recomienda el uso de caracteres y digitos combinados en la contraseña, y no se permiten cambios triviales sobre palabras del diccionario o derivadas.
Ignacio José Blanco Medina

• • • • •

Tema 3, página 3

Administración de Sistemas Operativos

Curso Académico 2003-2004

Para la gestión de contraseñas en Windows® 2000 Server se usa el mismo “ Administrador de Equipos” que para la gestión de usuarios, dado que la contraseña es una propiedad del usuario sobre la que puede tener privilegios de cambio o no. En caso de que el usuario posea privilegios para alterar su contraseña, la forma más rápida para hacerlo consiste en el uso de las teclas <Ctrl>+<Alt>+<Del> durante la ejecución de una sesión, lo cual inicia el menú de control de sesión. El comando para la gestión de contraseñas en el sistema operativo Linux es:
passwd [-l] [-u [-f]] [-d] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [username]

d) Ficheros de inicialización de usuario (perfiles)
Como ya se ha dicho anteriormente, un perfil es un fichero de configuración para un programa. La shell es un programa específico que permite la comunicación entre el usuario y el sistema operativo a un nivel básico y, como tal, tiene sus propios ficheros de configuración. El perfil de usuario en Windows® 2000 Server se compone de una serie de directorios y ficheros que almacenan toda la información sobre el usuario, así como es estado de la sesión de trabajo para el mismo (unidades conectadas desde la red, accesos a sitios en Internet, archivos personales, configuración de escritorio, etc.) Sin embargo, los perfiles de un usuario en Windows® 2000 Server son generados por el propio sistema operativo. Lo único que puede hacer el administrador es usar un perfil genérico, totalmente configurado (unidades de uso más común, configuraciones de programas, etc.) para forzar a que el sistema operativo lo copie para los usuarios que el administrador determine. Si un ordenador se conecta a un dominio, y se prevé que los usuarios tengan la necesidad de acceder a los recursos del dominio desde diversos ordenadores conectados al mismo, es recomendable almacenar los perfiles en un directorio centralizado en uno de esos ordenadores (generalmente el que actúa como servidor de dominio), de modo que los perfiles cargados por el usuario no dependan del ordenador en el que dicho usuario inicie la sesión. La especificación de la ubicación de los perfiles para un usuario concreto se realiza durante la creación de un usuario. Por el contrario, en el sistema operativo Linux, el perfil de usuario se compone principalmente de un archivo de texto que el intérprete de comandos ejecuta cuando se inicia una sesión y que puede ser fácilmente modificado por el usuario. Los ficheros de configuración más comunes para las diversas shells del sistema son: Shell /bin/bash /bin/tcsh /bin/sh Perfil de sistema /etc/bashrc /etc/tcshrc /etc/profile Perfil de usuario ~/.bashrc ~/.tcshrc ~/.profile

Inicialmente, las shells fueron diseñadas para ejecutar en primer lugar el perfil de sistema y, seguidamente, el perfil de usuario. Sin embargo, en la actualidad y por cuestiones de
Tema 3, página 4 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

homogeneidad, las shells ejecutan únicamente el perfil de usuario, pero se garantiza la correcta configuración del sistema haciendo que el perfil de usuario ejecute forzosamente el perfil de sistema. El uso de dobles perfiles permite al administrador reflejar cambios que deban afectar a la totalidad del sistema y a todos los usuarios, sin más que modificar los ficheros de sistema que se muestran en la tabla anterior (en el directorio /etc). Durante la creación de un usuario, se le copia, de forma automática un perfil de usuario por defecto y una serie de ficheros y directorios necesarios para el funcionamiento de la shell y de aplicaciones como el servidor gráfico. A este conjunto de ficheros (incluido el perfil de usuario) y directorios, que se copian al usuario recien creado, se le conoce como esqueleto de la cuenta (skeleton). Por defecto, el comando de creación de usuarios toma un esqueleto determinado (contenido en el directorio /etc/skel), aunque es posible especificar el esqueleto que debe usuarse tanto por defecto como para un usuario que se desea crear, mediante el siguiente comando:
adduser -m -k <ubicación> <username>

El modificador -m obliga al comando adduser a crear el directorio home si este no existe, y el modificador -k establece que directorio contiene los ficheros y directorios que se usarán como esqueleto de la cuenta.

e) Cuentas especiales (restringidas)
Las cuentas restringidas son cuentas especiales que no están asignadas a ninguna persona. Estas cuentas se relacionan con algún servicio ofrecido por el sistema. Por ejemplo, cuando un usuario accede a una página web en un servidor (máquina servidor), dicha máquina ejecuta un proceso (proceso servidor de páginas web) para satisfacer las peticiones del cliente. Este proceso servidor ha de estar adscrito a algún usuario del sistema y, dado que no se puede crear una cuenta de usuario para cada usuario que únicamente tenga que acceder a páginas web, existe un usuario en el sistema que inicia cada proceso servidor de páginas web. En el caso de Windows® 2000 Server, el usuario más común para los accesos vía HTTP es el usuario IUSR_<nombre del sitio web>, que es creado de forma automática por el gestor de servicios de Internet provisto por Windows® 2000 Server: Internet Information Server (IIS). En el caso de UNIX, exite un usuario restringido por cada uno de los servicios de red, como pueden ser el usuario ftp para procesos asignados a clientes del protocolo FTP conectador mediante modo anónimo, o el usuario mail para clientes de correo que consultan tablones de noticias públicos.

f) Grupos de usuarios
Un grupo de usuarios es un conjunto de usuarios con privilegios comunes. En el sistema operativo Windows® 2000 Server, un usuario puede pertenecer a varios grupos de usuarios. En cambio, en los sistemas UNIX, un usuario pertenece forzosamente a un grupo de usuarios, conocido como grupo primario (que se almacena en la entrada del fichero /etc/passwd correspondiente al usuario en cuestión), y a ninguno, uno o varios grupos secundarios. La lista de usuarios que pertenecen a un grupo secundario se recoge en la entrada del fichero /etc/group correspondiente al grupo en cuestión. El formato del fichero /etc/group es el siguiente:
Tema 3, página 5 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

<nombre grupo>:<contraseña>:<gid>:<username>,<username>,...

Los parámetros tienen el siguiente significado:
• • • •

nombre grupo: nombre del grupo en cuestión, contraseña: de administración del grupo, gid: identificador numérico del grupo, lista de usuarios: que tienen al grupo como secundario.

Para la gestión de grupos en Windows® 2000 Server, se usa la misma aplicación que para la gestión de usuarios y se sigue el mismo proceso. En los sistemas operativos UNIX, los comandos para gestión de grupos son:

nuevo grupo:
groupadd [-g gid [-o]] [-r] [-f] group

donde la opción -g permite especificar el GID del grupo, -o permite que no se pueda crear más de un grupo con el mismo GID, -r permite crear el grupo como un grupo para cuenta restringida y el -f fuerza a devolver un mensaje de error si ya existe un grupo con el GID especificado.

modificación de grupo:
groupmod [-g gid [-o]] [-n name] group

donde las opciones tienen el mismo significado en el caso anterior, menos la opción -n que permite cambiar el nombre de un grupo.

borrado de grupo:
groupdel group

Análogamente al fichero /etc/shadow, que almacena información acerca de la información de seguridad en contraseñas de cada usuario (tiempo de expiración, etc.) existe un fichero que almacena información adicional para los grupos: /etc/gshadow. El formato del fichero es el siguiente:
<nombre grupo>:<contraseña>:<gid>:<username>,<username>,...

es decir, tiene el mismo formato que el fichero /etc/group.

g) Borrado de cuentas de usuario
En el caso de Windows® 2000 Server, la gestión de usuarios y contraseñas se realiza mediante la misma aplicación que se usa para gestionar las cuentas de usuario y los grupos, aunque la destrucción de un usuario no implica el borrado de todos los ficheros que pueda tener adscritos en el sistema de ficheros. En los sistemas operativos UNIX, el borrado de una cuenta se realiza mediante el comando:
userdel [-r] name

La opción -r obliga al comando a eliminar tanto la cuenta de disco (directorio home) del usuario como el fichero de entrada de correo (inbox) del usuario ubicado en el directorio /var/spool/mail.

Tema 3, página 6

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

h) Algunas referencias
• •

Páginas de manual de Linux, y Ayuda de Windows® 2000 Server.

Tema 3, página 7

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 4 - Gestión de ficheros y sistemas de ficheros
Un sistema de ficheros es una estructura que permite el almacenamiento de información en una partición y su posterior recuperación y modificación. Los sistemas de ficheros de uso más extendido son:
• • • •

FAT (en sus variantes, 12, 16, V y 32), NTFS, HPFS, y ext (y sus extensiones ext2 y ext3).

La gestión de los sistemas de ficheros recogen una serie de operaciones que se detallarán a lo largo del desarrollo del tema, y que son:

Tareas de creación (o aplicación) de un sistema de ficheros:
 

Particionado de discos Creación (o aplicación) de un sistema de ficheros

  

Montaje del sistema de ficheros Comprobación del sistema de ficheros Seguridad en el sistema de ficheros

a) Tareas de creación (o aplicación) del sistema de ficheros (i) Particionado de disco
El primer paso, anterior al de la aplicación del sistema de ficheros propiamente dicho, es el de particionado del disco, es decir, el de reserva del espacio de disco que albergará ese sistema de ficheros. La herramienta para la gestión de particiones en Windows® 2000 Server es el Administrador de Discos Lógico, al cual se accede mediante el menú contextual del elemento Mi PC, o a través de la subcategoría Herramientas Administrativas del Panel de Control. Esta herramienta permite la creación de particiones, de tipos primario, extendido o lógico, especificando su tamaño y permitiendo asignarle una letra de unidad o no. La herramienta que permite la gestión de particiones en el sistema operativo Linux es el comando fdisk, aunque es incapaz de gestionar más de 16 particiones dentro de un mismo disco. La alternativa a este comando, y que no posee la misma limitación, es el comando parted.

(ii)Aplicación del sistema de ficheros
A esta tarea se la conoce comunmente como “f ormateo” o aplicación de formato, y consiste en incorporar a la partición las estructuras que permitirán el almacenamiento de archivos y otras estructuras propias de un sistema de ficheros. La herramienta para la aplicación de un sistema de ficheros en Windows® 2000 Server es el Administrador de Discos Lógico, que se describe en el apartado anterior. Sin embargo, la operación de formato puede ser invocada desde el menú contextual del icono de la unidad en cuestión, que se
Tema 4, página 1 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

encuentra en el elemento Mi PC. Esta herramienta permite establecer el tipo de sistema de ficheros que se aplicará (FAT, FAT32 o NTFS) y el tamaño de la unidad de asignación (o bloque). Sin embargo, existe una alternativa a la herramienta gráfica, que puede invocarse desde una ventana de comando:
format <unidad>: <opciones>

que puede invocarse con las siguientes opciones (aunque existen más):

/fs:[FAT|FAT32|NTFS] para el tipo de sistema de ficheros que el comando aplicará a la

partición,
• •

/v:<etiqueta> para fijar una etiqueta para la unidad, /q para aplicar un formato de forma rápida (únicamente borra el contenido de las estructuras de

ficheros de la partición), y

/a:[512|1024|2048|4096|8192|16k|32k|64k|128k|256k] para el tamaño de bloque

(de los cuales los dos últimos sólo son aplicables a FAT y FAT32),

En el sistema operativo UNIX, el comando para dar formato a una partición es:
mkfs -V -t <fstype> <fs-options> <filesystem> [<blocks>]

Este comando es un redireccionador de comandos, es decir, dependiendo del valor del parámetro <fstype> invoca a uno u otro comando. Así, para el valor ext2, llama al comando mkfs.ext2 o e2mkfs que se encarga de aplicar el sistema de ficheros. Algunos de los sistemas de ficheros que permite el comando fsck son: ext2, ext3 o vfat. Cada uno de los comandos incorpora un conjunto de opciones independientes. Algunas de las opciones más comunes para el sistema de ficheros ext2 son:
• •

-b [1024|2048|4096] establece el tamaño de bloque para el sistema de ficheros, y -f <fragment size> para fijar el tamaño para el fragmento de bloque,

La opción más común para el sistema de ficheros vfat es -F [12|16|32] para fijar el número de bits de la tabla FAT.

b) Montaje del sistema de ficheros (i) Sistema operativo LINUX
Al proceso de hacer accesible una partición, con formato aplicado previamente, durante una ejecución concreta del sistema operativo, se le conoce como montaje. En el sistema operativo UNIX, exite una única jerarquía de directorios, conocida como á rbol de directorios. Cualquier partición accesible, contiene una estructura de ficheros y directorios que tiene que ser accesible en la jerarquía única. Al punto en el que se “ conecta” la estructura de directorios, contenida en una partición, con la jerarquía se le conoce como punto de montaje. Al existir una única jerarquía de directorios, sólo existe una cima de esa jerarquía, o primer directorio, llamado raíz, y representado por el símbolo /. Ese directorio constituye el punto de montaje del sistema de ficheros que contiene al propio sistema operativo. El proceso de montaje consiste en el análisis del tipo y contenido de una partición, la creación de la
Tema 4, página 2 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

estructura de directorios contenida en la partición y “c uelgue” de esa estructura en el punto de montaje establecido para la partición. Por eso, a esta operación se le conoce también como colgado de particiones o cuelgue. La información manejada durante la ejecución del sistema operativo UNIX no tiene por qué estar ubicada en una única partición, pero es necesario conectar todas las particiones necesarias. Una vez cargado el sistema operativo, se procede al montaje de las particiones predeterminadas en el fichero /etc/fstab. Este fichero almacena una línea por cada sistema de ficheros determinado en el sistema, que no contiene más que opciones para la invocación automática del comando de montaje mount:
mount <options> <device> <dir>

algunas de las opciones son las siguientes:
• • • •

-r monta el sistema de ficheros de la partición para lectura solamente, -w monta el sistema de ficheros de la partición para lectura y escritura, -t <fstype> ahorra al comando la labor de identificar el tipo de sistema de ficheros, y -o <fsoptions> establece la lista de opciones de montaje para el sistema de ficheros en

cuestión, y que es propia de cada tipo de sistema de ficheros.

Esta operación de montaje se efectúa sobre cada una de las líneas del fichero /etc/fstab en función de su contenido. Como se ha dicho anteriormente, cada línea del fichero representa un sistema de ficheros almacenado en una partición, y contiene la siguiente información sobre dicho sistema de ficheros:
<device>|LABEL=<label> <mount dir> <fstype> <fsoptions> <dumpno> <pass_no>

Recuérdese que, a partir del momento de la creación de la partición, el sistema operativo considera que cada partición es un dispositivo independiente, creando su propio archivo de dispositivo en el directorio /dev. Sin embargo, durante la operación de aplicación de formato, es posible asignar una etiqueta al sistema de ficheros contenido en la partición, la cual se almacena en la estructura de datos contenida en el sector 0 de la partición. Desde ese momento, cualquiera de las dos referencias a la partición (etiqueta o dispositivo) es indiferente. La operación mount se aplica a cada una de las líneas del fichero que no incluyan la opción noauto en el campo <fsoptions>. La operación contraria al montaje es la de desmontaje. Esta operación se encarga de volcar los datos no almacenados en la partición que se desmonta y actualizar la información sobre modificaciones en el sistema de ficheros antes de eliminar su estructura de directorios del á rbol de directorios.

(ii)Sistema operativo Windows® 2

Server

La filosofía de directorios del sistema operativo Windows® 2000 Server es, sin embargo, distinta. En dicho sistema operativo, no existe una única jerarquía de directorios, sino una por cada partición accesible (unidad), de modo que es necesario identificar una de esas jerarquías de las demás, mediante lo que se conoce como letra de unidad (representada por una letra del alfabeto, seguida del carácter :). Algunas de esas letras se reservan a unidades o dispositivos especiales: A y B (para las unidades de floppy), o C (para la primera partición del primer disco duro, conocida como de sistema).
Tema 4, página 3 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Con estas consideraciones, hay que indicar que no existe un único directorio raíz, sino uno por cada unidad accesible. El identificador del directorio raíz de una unidad es <unidad>:\ . La única forma de hacer que una unidad no esté accesible consiste en retirarle la letra de unidad. Con ello, se elimina el modo de acceso a la jerarquía de directorios y ficheros que contiene, pero no es una operación de desmontaje ya que la unidad sigue estando accesible por otros medios.

c) Comprobación de la consistencia del sistema de ficheros
Dado que un sistema de ficheros almacena información sobre los archivos almacenados en las bloques de la partición, y que tanto los propios archivos como las estructuras de datos sobre la partición son susceptibles de daño, es necesario proveer de los mecanismos de seguridad para la recuperación de fallos, siempre en la medida de los posible.

(i) Sistema operativo Windows® 2

Server

En Windows® 2000 Server, la integridad de un sistema de ficheros es comprobada por la herramienta Scandisk, accesible desde las Herramientas situadas en las Propiedades del menú contextual de cada icono de unidad situado en Mi PC. Los sistemas de ficheros FAT no incluyen información para la comprobación de la consistencia, con lo cual, la recuperación se centra en recuperar toda la información posible de los bloques dañados, copiando su contenido en un nuevo fichero, y liberando o marcando los bloques erróneos. Por el contrario, el sistema de ficheros NTFS es un sistema de ficheros transaccional. Este tipo de sistemas de ficheros se basa en el concepto de bitácora (registro de acciones), de modo que, cualquier cambio, antes de realizarse, es registrado en la bitácora. Para cada cambio, se almacenan varios registros:

registro REDO (rehacer): registro que contiene los cambios realizados por la operación, antes de realizarse, para volver a realizarlos en caso de que falle, y registro UNDO (deshacer): registro que contiene los cambios que hay que deshacer para que el sistema de ficheros quede como estaba antes de realizar la operación.

Adicionalmente, se almacenan registros de operación efectuada (COMMIT) y, periódicamente, se almacenan puntos de verificación (CHECKPOINT). El almacenamiento de un checkpoint implica desechar todos los registros anteriores, puesto que los cambios almacenados en esos registros ya se han realizado. La primera vez que se accede a una partición de tipo NTFS, durante el encendido del ordenador, fuerza una ejecución del test de integridad. Si el log no está vacío, esto implica que hubo transacciones que no se completaron, y han de ser recuperadas. Para ello, se recorren los registros hacia delante. Si se encuentra un registro de COMMIT para la operación, se consideran realizados los cambios, y por tanto, se usan los registros REDO para realizar los cambios de nuevo y asegurar que han sido volcados al disco. Si, por el contrario, no se encuentra un registro de COMMIT, nada garantiza que la última sentencia sea válida y que no haya más operaciones detrás para la misma transacción, de modo que se usan los registros UNDO para fijar el estado de los bloques implicados al estado anterior a la realización de la operación. El registro de log se almacena en el fichero $Logfile de la estructura de datos MFT del sistema de ficheros NTFS, creada durante el proceso de aplicación de formato a una partición NTFS. El fichero
Tema 4, página 4 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

$Logfile se compone de dos secciones:
 

á rea de logging: constituida por una lista circular de registros de log, y á rea de restart: que contiene información tal como la posición del á rea de logging donde comienza la lista circular de registros de log y la posición en la que termina. La posición de inicio es útil para determinar la posición a partir de la cual comienzan las operaciones dudosas del sistema transaccional. El sistema mantiene dos copias de esta área por si ocurrieran fallos.

(ii)Sistema operativo !"#$%
Durante la operación con un sistema de ficheros en UNIX, la información de los ficheros y directorios está contenida tanto en disco como en la caché de disco en memoria por motivos de eficiencia. En general, la información sobre los distintos directorios se almacena en memoria (que mantiene la copia actualizada de la información y que, periódicamente, se copia al disco). Supongase un fallo eléctrico que provoque la desconexión del equipo informático. Ello implica que toda la información sobre ficheros abiertos desaparecerá, dejando el sistema de ficheros en estado de inconsistencia, ya que el estado real de algunos ficheros no está descrito en las estructuras del sistema de ficheros. El comprobador de consistencia de UNIX compara los datos de la estructura de directorios con los bloques del disco, tratando de resolver las incongruencias detectadas. En cuanto al tipo de errores que pueden darse en un sistema de ficheros, estos están muy ligados a los algoritmos de reserva y liberación de bloques en el disco. Por ejemplo, supongamos un sistema de ficheros con un sistema de referencias de bloques para un archivo basado en una lista de bloques (cada bloque contiene un enlace al siguiente bloque). A esta alternativa se la conoce como sistema de ficheros enlazado. Una entrada de directorio incorrecta puede resolverse recorriendo secuencialmente los bloques del fichero, siempre que no se haya perdido ningún enlace. Por el contrario, en un sistema de ficheros indexado (en el que la información sobre los archivos se almacena en una estructura parecida a un índice), la pérdida de una entrada de directorio haría imposible su recuperación puesto que se ha perdido el orden y posición de los bloques. Para evitar posibles fallos, el subsistema de gestión de disco sólo mantiene copias de los inodos de ficheros abiertos para lectura. La modificación de un archivo que suponga la reserva o liberación de bloques en el disco produce una escritura inmediata del i-nodo en el sistema de ficheros, antes incluso de la escritura del propio bloque modificado. El comando que efectúa la comprobación de la consistencia de un sistema de ficheros es fsck, y realiza comprobaciones a nivel de i-nodos, bloques, directorios y mapas de bits de reserva de bloques. Las tareas de comprobación del sistema de ficheros incluyen:

comprobar que la información almacenada en el superbloque de la partición (bloque que se almacena en el sector 0 de la misma) concuerda con las características de la misma, comprobar que los mapas de bits de i-nodos reservados coinciden con los i-nodos reservados efectivamente, comprobar que los mapas de bits de bloques reservados se corresponden con los bloques reservados efectivamente en el disco, y comprobar en la estructura de directorios que ningún i-nodo está referenciado por más de un directorio.

Tema 4, página 5

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

La comprobación del estado de los bloques se realiza en base a dos tablas. La primera de ellas contiene un número entero que representa el número de veces que un bloque es referenciado en la zona de bloques de un i-nodo. La segunda contiene un entero que especifica si un bloque está libre o reservado. A la hora de la comprobación del sistema de ficheros, se carga en la segunda tabla la tabla de bloques libres, y la primera se completa recorriendo la estructura de i-nodos del sistema de ficheros. Una vez rellenas las dos tablas, se procede a la comprobación, bloque por bloque (casilla por casilla) de las dos tablas. Después de ello, se procede a la comprobación. Si en una posición dada, hay un cero en una de las tablas y un uno en la otra se habla de bloque coherente. Si todos los bloques se encuentran en este estado, se habla de sistema de ficheros coherente. Cuando en una posición dada hay un cero en ambas tablas (el bloque no aparece como libre y tampoco como ocupado, luego se reservó el bloque para un fichero que no lo referenció, en última instancia), se habla de bloque perdido. La única solución posible es la de crear un nuevo fichero que contenga como único bloque al bloque en cuestión, fichero que se mete en el directorio lost+found que poseen todos los sistemas de ficheros ext. Cuando aparece un número mayor que uno en la primera tabla (un bloque tiene más de una referencia en los i-nodos), se habla de bloque reutilizado. Al no ser capaz de discernir a qué fichero pertenece en realidad el bloque, esta situación se resuelve reservando un nuevo bloque, copiando el original y cambiando la referencia de uno de los i-nodos para que “ apunte” al nuevo bloque reservado. Cuando aparece un número mayor que uno en la segunda tabla, se habla de bloque libre repetido. Esta situación, que podría parecer irreal, puede darse en el caso de sistemas de ficheros que implementen el mapa de bloques libres como una lista de bloques, si ocurriera un fallo en el algoritmo de liberación de bloques. La solución a esta situación pasa por poner un uno en la posición correspondiente de la tabla de bloques libres. El comando que se encarga de la comprobación del sistema de ficheros es fsck. Al igual que el comando mkfs, éste actúa como redireccionador de comando.

d) Se !ridad en el sistema de ficheros
La mayor parte de los sistemas de ficheros actuales diseñados para máquinas multiusuario incluyen la capacidad de asignar características de seguridad a los objetos contenidos en él a distintos niveles.

(i) Windows ® 2

Server (#T&S)

Como se vio anteriormente (tema 2), cada una de las entradas de la estructura MFT del sistema de ficheros NTFS incluye información de seguridad mediante el campo Security Descriptor. En las primeras versiones del sistema de ficheros, este campo incluía una referencia a una lista de descriptores de seguridad asignados al objeto en cuestión. Esta implementación se reveló ineficiente a la hora de asignar los mismos permisos a todo un subárbol de objetos del sistema, ya que generaban demasiada redundancia y ocupaban demasiado espacio. La versión 5 del sistema de ficheros introduce un nuevo fichero en el MFT, conocido como
Tema 4, página 6 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

$SECURE, que almacena una única copia de cada descriptor de seguridad asignado en el sistema de ficheros. Este fichero se divide en tres partes:
➔ ➔ ➔

$SDH (Security Descriptors Hashing), $SDI (Security Descriptor Index) y $SDS (Security Descriptor Section).

Estás partes están relacionadas entre sí como se muestra en la siguiente figura:

$SDH Index
Hash1 $SDS Offset Hash2 $SDS Offset Hash0 $SDS Offset

$SDS
Security Descriptor 0 Security Descriptor 1 Security Descriptor 2

$SDI
NTFS Security ID 0 $SDS Offset NTFS Security ID 1 $SDS Offset NTFS Security ID 2 $SDS Offset

Cada descriptor de seguridad posee un identificador único (asignado por el sistema) y se localiza mediante el uso de un hashing simple. Sin embargo, estas funciones de hashing pueden plantear problemas de colisión, de modo que dos descriptores puedan dar lugar al mismo valor hash.
'reación de descriptores

Cuando se introduce un nuevo descriptor de seguridad, en primer lugar se comprueba su existencia previa. Para ello, se calcula su valor hash y se localiza su desplazamiento en $SDH. Si ese valor hash no tiene asignado un desplazamiento (el descriptor no ha aparecido previamente), se le asigna un desplazamiento en $SDS, se introduce el descriptor en esa zona de $SDS y se almacena el desplazamiento en la posición hash correspondiente de $SDH. Una vez generado el nuevo descriptor es necesario generar un nuevo identificador y una entrada en $SDI. Si, por el contrario, el valor hash tiene un desplazamiento asignado pueden ocurrir dos cosas: 1º el descriptor de seguridad almacenado en el desplazamiento de $SDS concuerda con el nuevo descriptor, luego ese descriptor ya está almacenado, o 2º el descriptor de seguridad no coincide con el introducido (se ha producido una colisión), pero no sabemos dónde puede estar el descriptor buscado, por lo cual es necesario buscarlo en todo $SDS. Esta búsqueda puede resultar en: a) no se encuentra el descriptor en $SDS, lo cual implica que el descriptor es nuevo, luego hay
Tema 4, página 7 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

que almacenarlo en un desplazamiento libre de $SDS y generar un nuevo identificador de descriptor para almacenarlos ambos en $SDI, o b) se encuentra el descriptor en un desplazamiento de $SDS, luego hay que buscar el identificador que tiene ese desplazamiento en $SDI. Un descriptor de seguridad se crea para ser asignado a un objeto, lo cual se logra almacenando el identificador del descriptor de seguridad (localizado o generado) en el atributo Security Descriptor de la tabla MFT. Los bloques de permisos que pueden asignarse a un descriptor de seguridad son:
    

control total, modificar, lectura y ejecución, listado de contenidos y lectura y escritura.

Sin embargo, estos bloques de permisos no son más que combinaciones de permisos básicos, que logran los resultados deseados. Esos permisos básicos son:
➔ atravesar ➔ listar ➔ leer ➔ leer

carpeta / ejecutar fichero,

carpeta / leer fichero,

atributos, atributos especiales, ficheros / escribir, carpetas / modificar, atributos, atributos especiales,

➔ crear ➔ crear

➔ cambiar ➔ cambiar ➔ borrar ➔ borrar, ➔ leer

ficheros y subdirectorios,

permisos, permisos, posesión, y

➔ cambiar ➔ tomar

➔ sincronizar.

Algunos de estos atributos tienen una doble semántica que depende del objeto al que se aplique (ficheros o directorios). La modificación del descriptor de seguridad asignado a un objeto pasa por localizarlo en el sistema de ficheros mediante una ventana del navegador y acceder a la ficha de Seguridad, localizada en las Propiedades del menú contextual del objeto en cuestión.

Tema 4, página 8

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

(ii)Sistema operativo !"#$%
El sistema de ficheros ext se basa en el sistema de ficheros FFS y almacena la información relacionada con la seguridad en el i-nodo correspondiente al objeto en cuestión. Las operaciones controlables en un sistema de ficheros de este tipo son:
➔ lectura, ➔ escritura, ➔ ejecución, ➔ añadido, ➔ borrado ➔ listado.

y

Sin embargo, existe una serie de permisos especiales que permiten abrir o cerrar acciones específicas:
➔ sólo

ejecutar (si es un directorio) pero no pasar a través de él, o ejecutar si alguien puede ejecutar (si es un archivo, es decir, ejecutar si alguno de los otros owners tiene el permiso de ejecución), el uid o el gid (setUID) durante la ejecución, y el espacio de swap para almacenar texto de programa.

➔ cambiar ➔ usar

Los otros tipos de acciones posibles son sólo combinaciones de estos permisos básicos. Al proceso de asignar seguridad a los nodos de un sistema de ficheros se le conoce como control de acceso, de modo que cada uno de los objetos tendrá una lista de accesos (pares usuario-permisos). El problema de estas listas es su longitud. A fin de simplificar la complejidad de las listas, se crearon los conceptos de owner user (por defecto, el usuario que crea un objeto), owner group (por defecto, el grupo primario al que pertenece el usuario que crea el objeto) y owner other. Estos tres conceptos permiten que cualquier usuario tenga permisos asignados sobre todo objeto del sistema de ficheros, ya que permite asignar permisos distintos para el usuario que posee el objeto, para los usuarios de grupo que lo posee y para el resto de los usuarios. En el sistema de ficheros ext, la información de seguridad se almacena en dos campos concretos: mode y owner. El campo owner del i-nodo almacena dos valores: uid (user owner identifier) y gid (group owner id). El campo mode se compone a su vez de 10 partes:

tipo de objeto: indicador que puede ser – (archivo), d (directorio), l (enlace), b (dispositivo de bloques) o c (dispositivo carácter), permisos de owner user: tres permisos r (lectura / listado), w (escritura / modificación) y x (ejecución / paso) que permiten establecer qué acciones puede realizar el usuario que posee el objeto en cuestión, permisos de owner group: tres permisos r, w y x que permiten establecer qué acciones pueden realizar los usuarios que pertenecen al grupo que posee el objeto en cuestión, y
Ignacio José Blanco Medina

Tema 4, página 9

Administración de Sistemas Operativos

Curso Académico 2003-2004

permisos de owner other: tres permisos r, w y x que permiten establecer qué acciones pueden realizar los demás usuarios.
chown [-R] <username> <object>

El comando que permite el cambio del owner user de un objeto es: El comando que permite cambiar el owner group es:
chgrp [-R] <username> <object>

Sin embargo, es posible cambiar ambas asignaciones simultáneamente con:
chown [-R] <username>.<group name> <object>

El comando que permite cambiar el campo mode de un i-nodo es:
chmod [<options>] <mode> <object>

donde el modo puede especificarse de dos formas distintas:
•absoluta:

especificado todos los permisos mediante tres dígitos octales, uno para el owner user, otros para el owner group y otro para owner other, que reflejen los permisos de cada uno traduciendo la presencia del permiso por un uno y la ausencia del mismo por un cero; unidos los tres dan un número binario de tres cifras que puede ser leído en base octal (o sea, 777 para acceso total de todos sería rwxrwxrwx, y acceso cerrado sería 000, o sea, ---------). se establece una expresión regular para cambiar sólo parte de los permisos:
[ugoa...][[+-=][rwxXstugo...]...]

•relativa:

donde u es el usuario, g es el grupo, o es el resto de usuarios y a afecta a todos los owner por igual.
"l !nas referencias
• •

Páginas de manual de LINUX http://www.qvctc.commnet.edu/classes/csc277/ntfs.html#Structure%20of%20an%20NTFS% 20Volume

Tema 4, página 10

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 5 - Administración de una red
a) Redes e interconexión de ordenadores
Se define una red de ordenadores como un subsistema de comunicación compuesto por una serie de componentes hardware y software, que proporcionan los servicios necesarios para que los procesos que se ejecutan en los distintos ordenadores que conforman la red puedan comunicarse entre sí. Tradicionalmente, las redes se han dividido en dos tipos distintos, aunque esta división es subjetiva:
• •

LAN (Local Area Network, redes de área local) WAN (Wide Area Network, redes de área amplia)

Algunos parámetros de importancia, a la hora de evaluar una red, son: Tasa de transferencia: velocidad de intercambio de datos, medida en kilobytes por segundo (KB/s) o en megabytes por segundo (MB/s). Latencia: tiempo que se tarda en completar el envío y recepción de un mensaje vacío, a lo que se conoce como sobrecarga del sistema de comunicaciones. Tiempo de transferencia: el tiempo que se tarda en enviar un mensaje:  tamaño de mensaje  latencia   tasa de transferencia  Se recomienda una latencia baja para todo sistema de comunicaciones, al ser la que predomina en los mensajes pequeños. Paquetes por segundo Capacidad de crecimiento: grado en el que se ve afectada la red cuando se añade un nuevo nodo (por ejemplo, una red de tipo ethernet se degrada cuando se introduce un nuevo nodo, ya que aumenta el número de colisiones). Calidad de servicio: capacidad de la red para satisfacer las necesidades de un servicio determinado (ancho de banda, latencia mínima, etc.), por ejemplo, para aplicaciones multimedia. Ancho de banda: o bandwidth, es la máxima cantidad de información, medida en bits por segundo (b/s, bps) que se puede transmitir por un canal. Fiabilidad: posibilidad de pérdida de mensajes. Seguridad: protección de datos en tránsito a través de la red.

b) Protocolos de comunicación
En primer lugar, hay ciertos conceptos que deben ser introducidos: Mensaje: objeto lógico intercambiado entre dos o más procesos. Los mensajes tienen que ser descompuestos en paquetes para su envío a través de la red. Paquete: unidad de información que se intercambian dos dispositivos de comunicación. El tamaño de estos suele venir limitado por el hardware. Protocolo: conjunto de reglas e intrucciones para el gobierno del intercambio de paquetes y
Tema 5, página 1 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

mensajes. Un protocolo fija varios parámetros en una configuración, entre los que destacan: 1º la secuencia de los mensajes y 2º el formato de los mismos. Lo que habitualmente se conoce como protocolo de comunicación (como, por ejemplo, el protocolo TCP/IP) suele ser, a menudo, una pila de protocolos más específicos que realizan las siguientes funciones:
• • •

segmentación y ensamblado de paquetes, encapsulamiento, control de conexión (existen dos tipos de protocolos: orientados a conexión y no orientados a conexión), control de flujo (mecanismo de control mediante el cual el receptor controla la cantidad de información enviada por el emisor), control de errores y direccionamiento.

• •

Los tipos de protocolo más usados son OSI y TCP/IP. En concreto, el protocolo usado para la implementación de INTERNET es el conocido como TCP/IP. Este protocolo es un protocolo de capas (el modelo de capas permite aislar la funcionalidad de distintos niveles, estableciendo una interfaz bien definida para comunicar un nivel con los inmediatamente superior e inferior), cuya estructura general puede verse en la siguiente figura:

Aplicación Transporte Internet Interfaz de red Emisor Receptor

Las funciones de cada uno de los niveles de la familia de protocolos TCP/IP son: a) Nivel de red (o interfaz de red): controla el acceso al hardware de red, por lo que está muy ligado a la infraestructura concreta de dicha red.

Tema 5, página 2

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

b) Nivel de Internet (también conocido como IP): se encarga de la transmisión de paquetes entre el emisor y el receptor. c) Nivel de transporte: transmite mensajes entre procesos. En el nivel de transporte, existen dos tipos de protocolos: (i) Protocolo UDP: protocolo no orientado a conexión que permite un tamaño máximo de paquete de 64KB, que no ofrece fiabilidad y que no considera un orden en la entrega de los paquetes (es decir, el receptor es quien ordena los paquetes del mensaje conforme llegan). (ii) Protocolo TCP: protocolo orientado a conexión que observa el orden en la entrega de paquetes. Un protocolo orientado a conexión tiene tres fases: establecimiento, intercambio de mensajes y cierre. d) Nivel de aplicación: nivel conformado por las aplicaciones que se comunican entre sí en los distintos nodos en conexión (FTP, HTTP, TELNET, ...).

(i) Direccionamiento IP
Un aspecto importante a la hora de la configuración y gestión del sistema operativo es el direccionamiento dentro de la red. Todo ordenador conectado a la red se identifica mediante un conjunto de 4 bytes (4B, 32 bits) conocido como dirección IP, de valor único y asignado por un organismo mundial conocido como N. I. C. (Network Information Center). Cuando una red no está conectada a INTERNET, puede establecer su propio direccionamiento. Los 32 bits de la dirección de red se dividen en bits de red (que identifican a la red a la que está conectado el ordenador, red que está conectada a INTERNET) y bits de host (que identifican al ordenador dentro de la red a la que está conectado). Dependiendo de cuántos bits se destinen a bits de red y, en consecuencia, cuántos se destinen a bits de host, se habla de clases de direccionamiento. Hay cinco clases en total: Clase A: de los 32 bits, 1 identifica a la clase, 7 a la red y 24 al ordenador.

0
0 1

7 bits
Network

24 bits
!ost

Las direcciones de esta clase de red van desde la 0.1.0.0 hasta la 126.0.0.0, lo cual constituye un conjunto de 126 redes de 1' 6 millones de ordenadores cada una. Clase B: de los 32 bits, 2 identifican a la clase, 14 a la red y 16 al ordenador.

10
0 2

14 bits
Network 1"

1" bits
!ost

A esta clase, pertenecen las direcciones que van desde la 128.0.0.1 hasta la 191.255.0.0, lo cual permite la existencia de 16320 redes con 65024 ordenadores cada una.

Tema 5, página 3

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Clase C: de los 32 bits, 3 identifican a la clase, 21 a la red y 8 al ordenador.

110
0 $

21 bits
Network 2%

# bits
!ost

A esta clase pertenecen las direcciones que van desde la 192.0.1.0 hasta la 223.255.255.0, lo cual permite la existencia de 2 millones de redes con 254 ordenadores cada una. Clase D: de los 32 bits, 4 identifican a la clase y 28 al ordenador. Esta última se usa para direccionamiento de difusión múltiple.

1110
0 $

2# bits
!ost

A esta clase pertenecen las direcciones que van desde la 224.0.0.0 hasta la 239.255.235.255. Clase E: Aún no se ha establecido cómo se gestionará. Las direcciones de esta clase van desde la 240.0.0.0 hasta la 247.255.255.255.

c) Nodos especiales de una red
INTERNET no es, en sí misma, una red tal y como la concebimos, ya que en una red, los nodos son ordenadores. En el caso de INTERNET, los nodos son redes, a su vez. Por eso se la conoce como la red de redes. En INTERNET, las redes se interconectan entre sí, pero esa interconexión puede ser más o menos trivial. Si dos redes usan los mismos protocolos, no será difícil conectar una a otra (siempre que no planteen conflictos en el direccionamiento), ya que los mensajes de un nodo en una de ellas a otro nodo en la otra se transmiten “en el mismo idioma” , por así decir. Si, por el contrario, ambas redes usan protocolos distintos, será necesario realizar una “tr aducción”. Para conectar dos subredes se usan una serie de nodos especiales, que se diferencian entre sí en la funcionalidad que presentan. Algunos de estos nodos son:

router: nodo que enlaza dos o mas segmentos de red separados. Los segmentos unidos por un router permanecen lógicamente separados y actúan como subredes independientes. Estos nodos tienen acceso a una serie de servicios al nivel de red de los protocolos OSI, lo cual les permite calcular el camino de envío entre origen y destino en función de ciertos parámetros. gateway: dispositivos complejos que enlazan dos o más redes con distintas arquitecturas.

d) Arquitectura cliente-servidor: servicios comunes en una red
Se define una arquitectura cliente servidor como “ un sistema distribuido entre múltiples procesadores donde se ejecutan programas que solicitan servicios a otros procesadores que ejecutan servidores que los proporcionan”. En esta arquitectura, el procesamiento de los datos se realiza en distintas partes, que son: el peticionario (cliente) y el proveedor (servidor). Un cliente envía, durante el procesamiento de los datos, una serie de peticiones a uno o varios servidores para que estos realicen una tarea
Tema 5, página 4 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

determinada. re)*est &liente ser(ice Los modos básicos de comunicación en una arquitectura cliente-servidor son:
• •

'er(idor

RPC (Remote Procedure Call), o basado en mensajes.

(i) Servicios importantes dentro de la red
DNS: (Domain Name Server, Servicio de Dominio de Nombres). El protocolo de direccionamiento IP sólo usa direcciones de 4 bytes para referenciar al emisor y al receptor en una comunicación. Sin embargo, estas direcciones son difíciles de usar por un usuario normal, por lo que, además de la dirección IP, se asigna un nombre único a cada máquina (directamente relacionado con dicha dirección). La estructura general del nombre suele ser: <nombre de ordenador>.<nombre de subdominio>.<nombre de dominio> Dado que los protocolos no entienden de nombres sino de direcciones, es necesario que algún elemento de la red realice esa traducción, y a esos elementos se les conoce como servidores DNS. El espacio de nombres de la red (el conjunto de todos los nombres de ordenador) se divide en dominios que pueden, a su vez, dividirse en zonas y subdominios (y estos últimos pueden dividirse en nuevas zonas y subdominios, y así sucesivamente). La estructura del espacio de nombres permite que se delegue la autoridad de un dominio en sus administradores. Estos pueden crear subdominios dentro de este dominio y delegar la gestión de cada subdominio en una serie de administradores. Cada uno de estos ámbitos es controlado por uno o varios servidores de nombres, que pueden ser:

servidor autorizado: servidor que gestiona un dominio y está capacitado para la creación de subdominios y zonas, y para delegar la gestión de estos y aquellas en sendos servidores de nombres, y servidor delegado: servidor en el que se delega la gestión de nombres de un subdominio o zona.

Se llama dominio a la cima de la jerarquía de nombres. El servidor de un dominio suele ser un servidor autorizado. Un dominio puede dividirse en subdominios y zonas. Un subdominio es un dominio que posee un servidor delegado (es decir, es parte de un dominio más amplio con su propio servidor autorizado). Una zona es un conjunto de nombres de ordenador gestionados por un servidor de zona. La diferencia entre un servidor de zona y uno de dominio (o subdominio) estriba en que un servidor de zona es un servidor delegado pero nunca autorizado, por lo cual, sólo contiene las relaciones nombre-dirección de todas las máquinas de su ámbito. Sin embargo, un servidor de dominio (o subdominio) no sólo contiene las relaciones nombre-dirección de las máquinas de su ámbito, sino que delega en todos los servidores de dominio de los subdominios que contiene y en los servidores
Tema 5, página 5 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

de zona de las zonas que contenga, a su vez. Es decir, un servidor de zona sólo contiene direcciones de ordenadores y uno de dominio puede contener, además, direcciones de servidores delegados (de sus subdominios y zonas). Cuando un usuario intenta acceder a otro ordenador, utiliza el nombre del mismo. En ese momento, y antes de establecer la comunicación, el cliente de DNS realiza la petición de traducción al servidor de nombres correspondiente. El procedimiento de resolución de nombres es el siguiente: 1º el cliente pregunta al servidor de su zona o subdominio; si el mismo conoce la traducción, la proporciona al cliente, 2º si el servidor de zona o subdominio no la posee, el propio servidor preguntará al servidor del dominio raiz (el de la cima de la jerarquía), el cual desgranará la dirección de derecha a izquierda para averiguar a qué servidor de dominio debe preguntar; cuando lo localice, este hará lo mismo con el subdominio y así sucesivamente hasta llegar al servidor de zona o de dominio que contenga la traducción nombre-dirección. Hay que notar que, una vez que el cliente DNS inicia la petición con su servidor de zona o subdominio, es éste el que proporciona la traducción, aunque éste haya tenido que recurrir a otros servidores para satisfacer dicha resolución. Sin embargo, cuando un servidor realiza una petición a otro servidor y ésta es satisfecha, antes de devolver la traducción al cliente que la solicitó, se almacena en una caché de direcciones por si el mismo cliente u otro la vuelven a solicitar (se almacena la traducción y el servidor que la resolvió, por si se necesita acceder a un nodo de la misma zona o subdominio que controla). Esta información permanece en dicha caché durante un tiempo conocido como TTL. Existe un último tipo de servidores, conocidos como sólo-caché, que no almacenan información sobre ordenadores o servidores delegados, sino que únicamente sirven para recibir peticiones y tramitarlas con otros servidores almacenando temporalmente la respuestas en la caché de nombres. DHCP: (Dynamic Host Configuration Protocol, Protocolo de Configuración Dinámica de Nodo). Es un protocolo que provee de un medio para asignar dinámicamente un conjunto de direcciones a un conjunto de nodos autorizados dentro de una LAN. Este mecanismo permite optimizar el uso de un conjunto de direcciones IP adquiridas para un conjunto de máquinas que no tienen por qué tener la misma configuración de red en dos ejecuciones sucesivas del sistema operativo. El servidor posee un conjunto de direcciones (pool) que pueden ser asignadas a un conjunto de ordenadores con acceso al servidor. Dichos ordenadores configuran su tarjeta de red para el envío de un paquete DHCP por la red solicitando configuración a cualquier servidor DHCP que esté escuchando. Los paquetes enviados por los ordenadores se firman con la dirección ethernet de la interfaz de red (tarjeta de red) de modo que el servidor pueda reconocer la procedencia del paquete y autorizarlo. Una vez reconocido y autorizado el paquete, se responde al mismo con otro paquete DHCP, cuyo destinatario es aquella interfaz de red con la dirección ethernet correspondiente, que contendrá la configuración IP para la interfaz de red y para el sistema operativo del ordenador. Dicha configuración incluye: dirección IP, máscara de red, dirección IP del gateway, aunque puede incluir información adicional como lista de servidores de nombres, dominio de búsqueda, nombre de ordenador, etc.

Tema 5, página 6

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

e) Instalación de un servidor (servicio)
Los pasos necesarios para la instalación de un proceso servidor (o una aplicación servidor) en un ordenador determinado, que actuará como servidor a partir de ese momento, son los siguientes: 1º localización de la instalación: a) discos, b) distribución en INTERNET, o c) proveedor. 2º instalación del servidor, 3º asegurar que el servidor esté inactivo durante el proceso de configuración y que no se inicia de forma automática cuando se reinicia el sistema hasta que esté totalmente configurado, 4º configuración del servidor, 5º configuración del software de firewall, en caso de haberlo instalado, para permitir el paso de paquetes desde y hacia el puerto o los puertos del servidor en cuestión, 6º inicio del servidor, y 7º monitorización de uso del servidor y de accesos.

Tema 5, página 7

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 6 - Arranque y parada del Sistema Operativo
Después del encendido de la máquina, se llevan a cabo una serie de procesos, entre el momento de la activación y el momento en el que la máquina entra en funcionamiento normal. Del mismo modo, durante el proceso de apagado de la máquina, es necesario llevar a cabo una serie de tareas que protejan los datos y a la propia máquina de fallos en futuras sesiones de trabajo.

a) Arranque del Sistema Operativo
Durante la puesta en funcionamiento del ordenador, los pasos que se siguen son los siguientes: 1. En primer lugar, la BIOS que se encuentra en la memoria ROM del ordenador, toma el control de la máquina para realizar una serie de comprobaciones como son: memoria, unidades de disco, tarjeta gráfica, etc. Recuérdese que la BIOS de la tarjeta gráfica se antepone a la BIOS del ordenador de modo que las comprobaciones internas de dicha tarjeta se realicen antes de todo. 2. Después de esto, se procede a la carga en memoria RAM del cargador de sistema operativo situado en el sector 0 cilindro 0 de la unidad de disco establecida como de arranque, o al comienzo del dispositivo de almacenamiento fijado a tal efecto. Este cargador puede, a su vez, ceder el control a otros programas de carga de sistema operativo. 3. Carga en memoria RAM del núcleo del sistema operativo seleccionado e inicialización del mismo. Veamos ahora las posibles variantes en los distintos pasos del proceso.

(i) Dispositivos de almacenamiento de arranque
Originalmente, los dispositivos a los que la BIOS del sistema podía ceder el control para el arranque del sistema operativo eran disquettes y el primer disco duro. Actualmente, los dispositivos que permiten la inicialización del sistema operativo son:
• • • • • •

el disco duro maestro del bus IDE primario, el primer dispositivo de un bus SCSI, un lector de CD-ROM, una unidad ZIP, una unidad de cinta o un dispositivo de red (este último requiere el protocolo de red BOOTP, que permite la inicialización de un ordenador por descarga remota del sistema operativo).

La unidad desde la que se realizará el arranque del ordenador se establece en la configuración de BIOS. Sin embargo, lo que se proporciona durante dicha configuración es una lista de dispositivos iniciables, de modo que si no es posible encontrar el cargador en el primero de ellos, se procede a localizarlo en el segundo, y así sucesivamente.

(ii) El programa cargador del sistema operativo
Un programa cargador de sistema operativo es un programa que transfiere a memoria el núcleo del sistema operativo seleccionado para la sesión de trabajo.
Tema 6, página 1 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

NTLoader El programa NTLoader es el cargador de los sistemas operativos de Microsoft Windows®. Inicialmente, se diseñó para el sistema Microsoft Windows NT®, aunque se aplicó después a los sistemas operativos Microsoft Windows 2000® y XP®, y se le dotó con capacidades para iniciar otros sistemas operativos de la empresa Microsoft® como pueden ser Microsoft Windows 95®, 98® o Millenium®. El archivo de configuración del cargador se ubica en la primera partición del disco duro maestro del primer bus IDE, y se denomina boot.ini (c:\boot.ini). Un ejemplo de este archivo se muestra a continuación:
[boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Practicas Generales" /fastdetect multi(0)disk(0)rdisk(1)partition(1)\WINNT="Neurocomputacion" /fastdetect multi(0)disk(0)rdisk(1)partition(3)\WINNT="Administracion de S.O. (Grupo1)" / fastdetect multi(0)disk(0)rdisk(1)partition(5)\WINNT="Administracion de S.O. (Grupo2)" / fastdetect

Los parámetros que se muestran en el fichero son:

timeout: fija el tiempo que el cargador espera, en segundos, antes de ceder el control de manera automática al sistema operativo seleccionado por defecto. Se cancela la cuenta atrás de arranque automático pulsando cualquier tecla. default: establece el sistema operativo que se inicia por defecto si no se pulsa ninguna tecla y expira el tiempo fijado en timeout. La sintaxis para una ubicación de sistema operativo es una de las siguientes:
• •

type(x)disk(y)rdisk(z)partition(a)path multi(x)disk(y)rdisk(z)partition(a)path

donde cada uno de los parámetros identifica lo siguiente:

type(x) establece el tipo de dispositivo de almacenamiento cuando una máquina posee

únicamente dispositivos SCSI o dispositivos ESDI, IDE y SCSI. Si el sistema operativo se encuentra en un disposivo conectado a un bus SCSI, el parámetro se establece como scsi(x) donde x especifica el número del controlador del tipo especificado. En el caso de tratarse de un dispositivo IDE, se usa la sintaxis multi(x).

disk(y) donde y es siempre 0 en el caso de dispositivos multi; si se trata de otro tipo, y se

calcula multiplicando x (número de bus) por 32 y sumándole el número de orden del dispositivo que contiene el sistema operativo dentro del bus.

rdisk(z) donde z identifica si el dispositivo es el MASTER (0) o el SLAVE (1) dentro del

bus; en el caso de dispositivos SCSI, z vale siempre 0.

partition(a) donde a establece el número de la partición empezando desde 1; es necesario

recordar que la partición extendida no se cuenta como tal, de ese modo, todas las particiones lógicas se identifican por su posición menos 1.
• •

path establece el directorio que contiene el núcleo del sistema operativo que se desea cargar.

La sección operating systems establece los sistemas operativos arrancables desde el cargador de
Ignacio José Blanco Medina

Tema 6, página 2

Administración de Sistemas Operativos

Curso Académico 2003-2004

Windows NT®. Hay una línea por cada uno de dichos sistemas operativos que comienza con la misma sintaxis que la cláusula default, seguida de una cadena de =<cadena de caracteres entre comillas dobles> que identifica el sistema operativo seleccionado y, por último, una opción que permite el chequeo rápido del sistema operativo tras la carga. GRUB Programa cargador de sistemas operativos instalado por las nuevas versiones de las distribuciones de Linux. Permite la carga de sistemas operativos variados como Linux y sistemas operativos Windows®. El proceso de instalación del programa cargador GRUB tiene dos fases: a) configuración de /etc/grub.conf e b) instalación de grub en el dispositivo de arranque. Fichero gru !con" El fichero tiene una sintaxis genérica como se ve a continuación:
default=0 timeout=10 splashimage=(hd0,1)/boot/grub/splash.xpm.gz title Red Hat Linux (2.4.18-17.8.0) root (hd0,1) kernel /boot/vmlinuz-2.4.18-17.8.0 ro root=LABEL=/ initrd /boot/initrd-2.4.18-17.8.0.img title DOS rootnoverify (hd0,0) chainloader +1

Los parámetros del fichero son los siguientes:

default establece la entrada del fichero de configuración (contando desde 0) que se iniciará por defecto en caso de que expire el plazo de espera, timeout establece el tiempo de espera (en segundos), después del cual se iniciará la opción por defecto si no se ha pulsado ninguna tecla, fallback establece la entrada del fichero de configuración que se iniciará en caso de que falle la inicialización de la entrada por defecto, splashimage establece la imagen (en formato XPM y comprimida con GZIP) que se mostrará de fondo en la lista de selección del sistema operativo, con la sintaxis (hdx,y)/ruta donde x establece el número del bus al que está conectado el disco (empezando desde 0) e y es el número de partición (empezando desde 0), cada uno de los sistemas operativos iniciables se registra con la siguiente sintaxis:

la palabra reservada title seguida de una cadena de caracteres sin comillas que aparecerá en el menú de arranque, en caso de tratarse de un sistema operativo de tipo Linux, se añaden los siguentes parámetros:

la línea root (hdx,y) establece la ubicación de la partición raíz del sistema operativos, con las consideraciones antes expuestas para x e y, la línea kernel <ruta hasta la imagen del núcleo> <parámetros> root=<partición raíz> establece la ubicación del núcleo de sistema operativo que
Ignacio José Blanco Medina

Tema 6, página 3

Administración de Sistemas Operativos

Curso Académico 2003-2004

ha de iniciarse,

la línea initrd <ruta> establece la ubicación del fichero de imagen que se carga para que un núcleo preconfigurado (no compilado para la máquina concreta) pueda funcionar.
rootnoverify (hdx,y) establece la partición que contiene el sistema operativo

En caso de tratarse de un sistema operativo del tipo Windows®, los parámetros son:

(con los valores de x e y expuestos anteriormente); este comando no trata de montar la partición,

chainloader <file> carga el cargador de arranque del sistema operativo contenido en el fichero <file> o en el sector 0 de la partición si se especifica +1.

#nstalaci$n de %&'( Para instalar GRUB hay que ejecutar la orden:
grub-install <dispositivo de instalación>

Por ejemplo, se puede instalar el GRUB en discos duros o, incluso en un diskette.

(iii) )rear un disco de arranque
Un disco de arranque permite reiniciar el sistema en caso de un fallo del sector de arranque del disco duro. Para que un disco se haga de arranque, es necesario transferir el núcleo del sistema operativo dentro de dicho disco. El comando en Linux que crea un disco de arranque es el comando:
mkbootdisk <núcleo> <dispositivo>

Este comando transfiere el núcleo (vmlinux) y el cargador (initrd) al disco. Pero un disco hecho de sistema por este procedimiento, únicamente es capaz de iniciar el sistema operativo que le ha sido transferido. Es posible instalar el cargador en el sector de arranque del disquette mediante la propia orden de instalación:
grub-install /dev/fd0

lo cual permitiría crear un disquette que pregunte qué sistema operativo desea iniciarse incluso si el sector de arranque del disco duro ha resultado dañado.

(iv) Tareas posteriores a la carga del sistema operativo
Una vez que el sistema operativo reside en la memoria, se procede a:
• • • •

chequeo y montaje del sistema de ficheros raiz (que contiene al propio sistema operativo), inicio de los niveles de ejecución (en sistemas operativos de tipo UNIX), primer proceso del sistema o proceso INIT (en sistemas UNIX) y ficheros de inicialización.

Modos de funcionamiento Los sistemas operativos (tanto Windows® como Linux) pueden funcionar en varios modos, atendiendo a la tarea que se desee realizar con ellos:
Tema 6, página 4 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

modo monousuario: sólo un usuario puede conectarse al sistema operativo y además ha de hacerlo en la consola local; comunmente se usa para tareas de administración (en caso de UNIX) o de recuperación de fallos (en el caso de Windows 2000®), y modo multiusuario: o modo de funcionamiento normal, en el cual varios usuarios pueden conectarse a la misma máquina o requerir servicios de esta.

Niveles de ejecuci n Dentro de los sistemas UNIX, se definen una serie de niveles de ejecución en los que la máquina puede operar, y se orientan a distintos usos de la máquina. Es por ello, que en cada nivel, la máquina se comporte de manera diferente. Los niveles de ejecución vienen determinados en el fichero /etc/inittab, facilitan la configuración del sistema y es posible cambiar de un nivel de ejecución a otro sin reiniciar. Por convenio, se establece el uso de los niveles como sigue:
• • •

Nivel 0: estado de parada, Nivel 1: modo monousuario, Niveles 2, 3 y 5: modo multiusuario (en el caso de RedHat, el nivel 2 es para multiusuario sin NFS, el 3 para multiusuario normal y el 5 para X11) y Nivel 6: reinicio del sistema.

Los procesos y servicios que se inician según el nivel de ejecución asignado se pueden ver en el directorio /etc/rc.d/rc.<número de nivel>. Estos procesos son iniciados por el proceso init. !l proceso "N"T El proceso INIT es el primer proceso que se inicia tras la puesta en marcha del sistema, y suele tener como PID el número 1. La configuración para este proceso se encuentra en el fichero / etc/inittab que tiene el siguiente formato:
<identificador de proceso>:<nivel>:<acción>:<comando>

Por ejemplo, el nivel inicial de ejecución del sistema lo establece la línea:
id:5:initdefault:

la cual establece el nivel inicial en el número 5. La línea que sigue:
l5:5:wait:/etc/rc.d/rc 5

establece que debe ejecutar el proceso rc (/etc/rc.d/rc) con el parámetro 5 y esperar a que este termine (wait) antes de continuar. Los fic#eros de iniciali$aci n El proceso rc <número de nivel> ejecuta todos los ficheros de inicialización que se encuentren en ese nivel de ejecución. La subestructura del sistema de archivos en la que se almacenan los fichero de inicialización puede verse en la siguiente figura:

Tema 6, página 5

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

/etc/rc.d

rc.sysinit

rc

rc0.d

...

rc5.d

rc6.d

S55sshd

S90crond

Estos ficheros se organizan según el nivel de ejecución en el que se encuentren, se escriben en el lenguaje de la shell y tienen, como mínimo, la funcionalidad para arrancar y parar una tarea. El nombre de los ficheros de inicialización sigue el esquema:
S[0-9][0-9][a-z]*

y dentro de cada nivel, los ficheros se ejecutan según el orden alfabético de su nombre.

%) &arada del sistema operativo
La parada del sistema operativo se realiza por una de las siguientes razones:
• • •

sustitución de hardware, errores hardware o software o fallos en el entorno de operación que puedan producir disfunciones.

El proceso de parada es similar al de arranque, y sólo consiste en pasar al nivel 0 pero, al contrario que con otros niveles, no se inicia ningún proceso. Siempre que sea posible, la parada debe ser planificada y comunicada a los usuarios con antelación suficiente.

(i) Fichero de parada
Los fichero de parada siguen el mismo esquema que los de inicialización, pero su nombre se construye mediante la sintaxis:
K[0-9][0-9][a-z]*

Estos ficheros se ejecutan en cada nivel, antes de ejecutar los ficheros de inicialización para garantizar la entrada en un nuevo nivel de forma coherente. De este modo, el nivel 0 sólo tiene ficheros K pero no S.

Tema 6, página 6

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 7 - Gestión de la impresión
a) Fundamentos (i) Impresión en Windows®
Cuando un programa Windows® desea imprimir, crea un contexto gráfico (una página) asociada al driver de la impresora, sobre el cual el programa realiza llamadas al sistema para trazar líneas, escribir texto con atributos y seleccionar colores. Una vez que el programa ha completado la impresión de la página, el driver traduce la misma a un lenguaje que la impresora pueda comprender, y dicha traducción se almacena en c:\windows\spool\printer. Esta traducción es tomada por el módulo conocido como spool32, que se encarga de su envío a la impresora. Algunas de las impresoras más modernas incorporan spoolers propios que se comunican directamente con la impresora e incorporan una mayor amigabilidad y comunicación con el usuario.

(ii) Impresión en Linux
Cuando un programa quiere imprimir, es responsabilidad del mismo producir una salida que la impresora pueda comprender, aunque sistemas gráficos como el KDE incorporan infraestructura para impresión basada en llamadas a bibliotecas. El método más común empleado en sistemas UNIX consiste en imprimir el lenguaje Postscript, que la mayor parte de las impresoras entienden. Si, por el contrario, el programa genera una salida no Postscript, los paquetes de impresión incorporan conversores de formato que toman otros formatos de impresión y los traduce en ficheros Postscript. El programa que se encarga de la impresión es “ lpr”, el cual copia el archivo que se desea imprimir en /var/spool/lpd y llama al demonio de impresión (proceso que se encarga de la impresión) “ lpd” . El comportamiento de “l pr” y “ lpd” y otros programas relacionados es determinado por el fichero / etc/printcap, que almacena la configuración de las impresoras:
# Local ASCII printer lp1|printer :server :cm=Dumb printer :lp=/dev/lp1 :sd=/var/spool/lpd/lp1 :lf=log:af=acct :filter=/usr/local/libe ec/filters/if!p :m ="

donde:
• • • • •

server especifica que dicha entrada de printcap no es usada por ningún programa, salvo por el servidor lpd cm=comment for status filter=job filter lf=log file af=accounting file
Ignacio José Blanco Medina

Tema 7, página 1

Administración de Sistemas Operativos
• • •

Curso Académico 2003-2004

lp=output device m =maximum job size sd=spool directory file

Una diferencia importante entre el spooler de Windows® y el de UNIX, es que el spooler de UNIX espera a que el programa termine de generar la salida impresa, que después es copiada en el directorio de spooling que especifica la correspondiente entrada del archivo printcap y, una vez hecho todo, comienza la impresión. Esto enlentece el proceso de impresión pero desbloquea el programa aunque la impresión no haya finalizado. Algunos comandos importantes que permiten el control y configuración de la impresora en el sistema de impresión LPRng son:

lpc: shell de control de las impresoras para manipulación de las colas de impresión, estado de la impresora, etc. (comando importante dentro de la shell: “ help” o “?” ), lpr: cliente que imprime un fichero postscript en la impresora especificada, lpq: cliente que consulta el estado de la cola de impresión, lprm: cliente que elimina un trabajo de la cola de impresión, lpstatus: cliente que consulta el estado de una o varias impresoras.

• • • •

b) El sistema de impresión CUPS (Common UNIX Printing System) (i) Fundamentos de CUP
El sistema de impresión CUPS surgió como una extensión de IPP (Internet Printing Protocol, protocolo que extiende el HTTP para dotarlo de capacidad para servicios de impresión remota. En CUPS, todo gira alrededor de un proceso de planificación de impresión, llamado scheduler, que gestiona y procesa los trabajos impresos, comandos administrativos de impresión, peticiónes de información sobre impresoras e informe de estado para los usuarios. El diagrama organizativo de CUPS se ve en el siguiente gráfico:

donde:

scheduler: es un servidor de aplicación HTTP que admite peticiones HTTP de impresión, además de proveer de funcionalidad para documentación, información sobre estado y administración, los ficheros de configuración se dividen en:

/etc/cups/cupsd.conf: fichero de configuración para el scheduler que incorpora
Ignacio José Blanco Medina

Tema 7, página 2

Administración de Sistemas Operativos

Curso Académico 2003-2004

opciones para funcionalidad, operación y seguridad,

ficheros de definición de clases e impresoras: que permiten la definición de impresoras (/etc/cups/printers.conf) y conjuntos de impresoras iguales (/etc/cups/classes.conf) o con el mismo driver a las que mandar un trabajo, tipo MIME y ficheros de reglas de conversión y ficheros PPD (Postcript Printer Description).

• • •

CUPS API (Advanced Program Interface): conjunto de funciones para encolar trabajos de impresión, obtener información sobre las impresoras, acceder a recursos a través de HTTP e IPP y manipular ficheros PPD. Comandos Berkeley y System V: comandos en linea para invocar desde la shell en estos dos sistemas de procesos que permiten enviar trabajos y comprobar el estado de las impresoras, tales como “l pd.cups”, “l pq.cups” , “ lprm.cups” o “ lpstat.cups”. Filtro: programa que lee de un fichero de entrada o desde la entrada estándar y produce una salida. Tienen un conjunto de datos comunes (nombre de impresora, ID del trabajo, username, nombre del trabajo, número de copias y opciones del trabajo). Los filtros se proveen para muchos formatos de fichero e imágenes. Generalmente, los filtros se encadenan para conseguir el formato deseado. CUPS Imaging: biblioteca que proporciona funciones para gestionar imágenes de gran tamaño, relizar conversiones de color para la impresión, escarlar imágenes para la impresión y manejar flujos de página raster (salida generada por los filtros de Postscript Raster, que permiten imprimir en impresoras no postscript). Backend: filtro especial que envía datos de impresión a un dispositivo o conexión de red. CUPS incorpora backends para puerto paralelo, puerto serie, puerto USB, impresoras LPD, impresoras IPP e impresoras AppSocket (JetDirect).

CUPS permite buscar en la red impresoras que estén accesibles desde la máquina en concreto, de modo que se pueden enviar trabajos, e incluso gestionar impresoras remotas.

(ii) Con!i"ura#ión de CUP
La configuración del sistema de impresión CUPS se realiza mediante una conexión HTTP a la propia máquina que se quiere configurar. Como se ha dicho, el “s cheduler” es un servidor HTTP que recibe peticiones de impresión, configuración, etc. Generalmente, dicho servidor escucha en el puerto 631, aunque puede modificarse en el fichero / etc/cups/cupsd.conf. A partir de la configuración correcta del fichero de configuración, el control de CUPS se lleva a cabo a través de un navegador. La página principal de configuración recoge todas las opciones posibles para el servidor y se ve en la imagen que aparece a continuación:

Tema 7, página 3

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

El enlace Manage Printers permite el control y configuración de las impresoras:

Para añadir una nueva impresora, se pulsa sobre el botón Add Printer, y comienza el proceso guiado de alta de una nueva impresora: 1º Nombre, localización física y descripción de la nueva impresora:

Tema 7, página 4

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

2º Tipo de conexión con el dispositivo:

y datos para la conexión:

3º Selección de marca:

Tema 7, página 5

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

4º y modelo para establecer el driver correcto:

5º Configuración de parámetros de la impresora: para ello, una vez creada la impresora, en la página de gestión de impresoras se usa el botón Configure Printer para la impresora seleccionada:

y después se configuran los parámetros correspondientes a esa impresora, que dependerán del driver que se esté empleando:

Tema 7, página 6

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 8 - Copias de seguridad
(a) Generalidades (i) Razones para las copias de seguridad
Cuando un sistema totalmente funcional sufre un desperfecto debido a:
• • • •

fallos hardware, fallos software, intervención humana (errores, intrusiones, etc.) o desastres naturales.

es necesario recuperar los datos de usuario y los archivos de configuración del sistema, a fin de poder ponerlo en funcionamiento en el menor tiempo posible. Sin embargo, la propia copia de seguridad es susceptible de fallos, bien sea por:
• •

proceso erróneo de creación o fallo del soporte de la copia de seguridad,

por lo cual sería recomendable realizar copias de más de un nivel de antigüedad. De este modo, siempre podremos tener disponible la copia anterior a la fallida.

(ii) Selección del medio para la copia
Antes de proveer a un sistema de un subsistema de copia de seguridad, es necesario seleccionar y adquirir el soporte sobre el cual va a realizarse. Dicha selección se centra en los siguientes parámetros:
• •

coste, fiabilidad: el uso del soporte afecta a la fiabilidad, por ejemplo, un disco duro es comúnmente fiable, aunque no si se usa como soporte de una copia de seguridad de la propia máquina, velocidad: aunque no suele ser importante, ya que el backup es un proceso no interactivo que suele realizarse a horas de baja carga del sistema, disponibilidad y usabilidad: un soporte para backup debe ser de uso fácil.

• •

Las opciones más comunes para soporte de backup suelen ser los floppies y las unidades de cinta, aunque se han incorporado a estas los CD-ROMs (grabables y regrabables).

(b) Respaldo de ficheros del sistema
Los ficheros que debería verse afectados por el proceso de copia de seguridad, deberían ser los siguientes:
• •

ficheros de configuración del sistema, directorios HOME de usuario,

Tema 8, página 1

Ignacio José Blanco Medina

Administración de Sistemas Operativos
• •

Curso Académico 2003-2004

bandejas de correo electrónico de usuarios y bases de datos.

Por el contrario, no es necesario realizar una copia de seguridad integral del sistema, ya que disponemos de la instalación para restaurar el sistema operativo en modo preconfigurado. Una copia de seguridad integral requeriría demasiado espacio en un dispositivo de almacenamiento masivo que, generalmente, no tiene porque estar disponible.

(c) Comandos de respaldo
Los comandos tradicionales de UNIX para la copia de seguridad son:

tar y cpio: comandos creados para transferir archivos a cinta y recuperarlos de la misma; ambos pueden almacenar ficheros en cualquier tipo de dispositivos (de lo que se encargan los drivers incorporados al núcleo del sistema operativo), dump: esta herramienta está orientada a sistemas de ficheros completos y no a ficheros individuales.

(d) Backups simples
Los tipos de backups que podemos realizar son:

Backup completo: backup que se realiza por primera vez (o todas las veces que se realice un backup por designación del administrador). Backup incremental: en contraposición al backup completo, éste consiste en detectar los ficheros de la copia de seguridad anterior que hayan cambiado según algún criterio (fecha, tamaño, atributos, etc.), que hayan sido borrados, o que no aparezcan, y realizar una copia de seguridad sólo de esos ficheros.

Desde el punto de vista de la complejidad, realizar un backup completo requiere menos esfuerzo pero mucho más espacio y tiempo. Sin embargo, un backup incremental requiere menos tiempo y espacio (salvando el hecho de que la primera copia debe ser completa) pero más esfuerzo. Es necesario realizar una planificación de las copias de seguridad en función de los medios disponibles, la importancia de los datos, etc. pero siempre es recomendable guardar copias de más antigüedad. El comando tar se creó para realizar copias de seguridad en un archivo secuencial almacenado comúnmente en dispositivos secuenciales (unidades de cinta, principalmente) aunque hay que recordar que los dispositivos direccionables (discos duros, CD-ROMs, etc.) soportan el modo de acceso secuencial. Para realizar una copia de seguridad incrementar con el comando tar, se usaba la siguiente sentencia:
tar –create –file /dev/ftape /home

el cual crea un nuevo fichero que transfiere directamente al dispositivo ftape (cinta magnética), el cual contendrá la copia de seguridad del directorio /home. El modificador –multi-volume (o -M) habilita la copia de seguridad en varias cintas o discos (que se conectan al mismo dispositivo) en caso de que se complete uno de ellos. Este modo es
Tema 8, página 2 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

interactivo, de forma que el comando muestra un mensaje al administrador y espera a que éste suministre otro disco o cinta. Es recomendable, en cualquier caso, comprobar la corrección de la copia de seguridad realizada. Para ello, el comando tar provee del modificador –compare (o -d) que comparará los ficheros almacenados en la copia de seguridad con sus originales en el sistema de ficheros correspondiente. La copia de seguridad incremental con tar se realiza mediante el modificador –newer (o -N), de la siguiente manera:
tar –-create –-newer '20 Jan 2003' –-file /dev/ftape /home

de modo que se realicen copias de seguridad de aquellos archivos que tengan fecha de acceso posterior al 20 de enero de 2003. Por desgracia, el comando tar no es capaz de determinar cambios en los inodos de los ficheros, de modo que no se puede hacer copia de seguridad de aquellos ficheros cuyos inodos hayan variado desde la última vez. Sin embargo, es posible simular este comportamiento mediante el uso del comando find, que permite localizar aquellos ficheros que cumplan ciertas características (nombre que siga un determinado patrón, etc.) y diseñar una lista de aquellos ficheros que deben entrar en la copia de seguridad incremental. La recuperación de una copia de seguridad realizada con tar, se realiza mediante la siguiente sentencia:
tar –-extract –-same-permissions –file /dev/ftape

con el modificador –extract (o -x). A este modificador se puede añadir el modificador -p que permite la extracción de un archivo concreto o de un directorio y sus subdirectorios, de la siguiente manera:
tar xpfv -–file /dev/ftape /home/usuario/.mozilla/abook.nab

También es posible listar el contenido de una copia de seguridad mediante el modificador –list, de la siguiente manera:
tar –-list –-file /dev/ftape

Algunas de las acciones que pueden realizarse con el comando tar son:
• • • • • • • • •

c: crea un contenedor de copia, x: extrae archivos de un contenedor, t: prueba la integridad de un contenedor, r: añade archivos al final de un contenedor, v: modo interactivo, f: especifica el nombre del contenedor, Z: comprime/descomprime mediante el/los comando/s compress/uncompress, z: comprime/descomprime mediante el comando gzip, o p: conserva los permisos de los ficheros.

(e) Backups multinivel
El modo de copia de seguridad simple es un modo potente para mantener un volcado periódico de los archivos importantes pero sólo es útil en el caso de servidores pequeños o para uso personal. En
Tema 8, página 3 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

el caso de que la información sea más importante o sea necesario un sistema de copias de seguridad altamente fiable, se recomienda un sistema de copias de seguridad multinivel. La orden dump permite el volcado de sistemas de ficheros completos y está disponible en todos los sistemas operativos clones de UNIX. La orden de recuperación para el comando dump es restore. La sintaxis del comando es:
dump -0 -u -f /dev/cinta /dev/hda2

Las opciones más comunes para el comando son:

0-9: nivel de copia de seguridad; 0 para copia integral, nivel superior a 0 para copia de seguridad incremental, u: actualiza el fichero /etc/dumpdates en el que se almacena información sobre las copias de seguridad realizadas, f: fichero o dispositivo de volcado de la copia de seguridad, y A: dispositivo en el que almacenar el resultado de la copia de seguridad.

• •

Como se ha especificado en los parámetros anteriores, el comando dump permite dos niveles de copia de seguridad:
• •

completa (nivel 0): se hace copia de seguridad de todo el sistema de ficheros, e incremental (del 1 al 9): se hace copia de seguridad de todo lo que haya cambiado en el sistema de ficheros desde la última copia de seguridad del mismo nivel o inferior.

El objetivo del uso de varios niveles permite extender la profundidad del backup (la historia) de forma barata. Por ejemplo, supóngase un dispositivo de unidad de cinta para las copias de seguridad y diez soportes magnéticos para la unidad (cintas). Podemos usar las cintas 1 y 2 para las copias mensuales (el primer viernes de cada mes), las cintas de la 3 a la 6 para las copias semanales (los otros viernes del mes que no son el primero), y las cintas de la 7 a la 10 para el resto de los días de la semana (de lunes a jueves). Esto nos permite recuperar los cambios de:
• • • • • •

el día anterior, del anterior a este, o así sucesivamente hasta el viernes anterior, o del viernes anterior, o así sucesivamente, hasta el primer viernes del mes, o del primer viernes del mes anterior.

Nótese que, comprando cuatro cintas más sería posible mantener la copia de seguridad de dos semanas completas. El sistema no es perfecto, pero mejor recuperar una versión no actualizada de un fichero borrado que ningún fichero. Este sistema de copias de seguridad minimiza, no sólo el tamaño de las copias incrementales, sino el tiempo de recuperación de un estado anterior a una situación de corrupción del sistema. Si se utiliza una planificación con números de nivel que se incrementan de forma monótona, se necesitará recuperar todas las copias de seguridad si se necesitara reconstruir todo el sistema de ficheros. Para evitarlo, se usan números de nivel que no crecen de forma monótona y se mantiene bajo el número de backups para recuperar.
Tema 8, página 4 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Si, por el contrario, se desea minimizar el número de cintas necesarias, se puede usar un nivel menor para cada copia incremental. No obstante, en este caso, el tiempo para hacer las copias se incrementa (ya que cada copia incluye todos los cambios ocurridos desde la última copia integral). Los niveles de copia de seguridad pueden combinarse para reducir los tiempos de copia y restauración. Para las copias de seguridad diarias, las páginas de manual de dump recomiendan una secuencia 3 2 5 4 7 6 9 8 9 9 ... En la referencia http://www.tld.org/LDP/sag/html/x2645.html, puede encontrarse una tabla que sugiere otra secuencia para más cintas y días.

Algunas referencias
• • • •

http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/copiasseguridad.htm http://es.tldp.org/Manuales-LuCAS/SEGUNIX/unixsec-2.1-html/node100.html http://www.tld.org/LDP/sag/html/x2645.html Página de manual de dump (man dump)

Tema 8, página 5

Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

Tema 9 - Monitorización del sistema
a) Introducción
La monitorización de un sistema es recomendable por muchas razones, entre las cuales se incluyen motivos legales o el seguimiento de irrupciones en el sistema.

b) Herramientas para la monitorización en Windows® 2000 Server
En el sistema operativo Windows® 2000 Server, el propio núcleo del sistema operativo provee de la capacidad de realizar logs tanto del propio núcleo como de las aplicaciones. Esto se logra mediante una serie de bibliotecas de función incorporadas al sistema operativo de modo que ofrecen una visión unificada para la gestión de dichos eventos del sistema. La herramienta que permite la supervisión de los logs del sistema se llama Visor de Sucesos (Event Viewer) y se accede a ella a través del Panel de control y en la categoría Herramientas Avanzadas. En Windows® 2000 Server existen tres tipos de sucesos:

Sistema: recoge sucesos registrados por el propio sistema operativo o sus subsistemas (gestión de disco, gestión de dispositivos, gestor de red, etc.) Aplicación: recoge los sucesos registrados por las aplicaciones en ejecución sobre el núcleo del sistema operativo; constituyen un elemento útil a la hora de depurar el comportamiento de determinadas aplicaciones. Seguridad: recoge los sucesos registrados por el subsistema de seguridad del sistema operativo, así como de los subsistemas de seguridad que incorporan algunas de las aplicaciones.

La herramienta Event Viewer permite el filtrado de sucesos, dado que la extensión de los logs del sistema puede ser enorme. Cuando el log se satura, se informa mediante un mensaje emergente al usuario que ocupa consola local de la máquina para que el administrador efectúe una limpieza en los logs del sistema.

c) El sistema de log en UNIX
Casi todas las actividades en el sistema operativo UNIX son susceptibles de supervisión y pueden ser monitorizadas, desde los intentos de acceso (fallidos o exitosos) hasta el tiempo de CPU que consume un usuario. Esta característica plantea un beneficio claro: la capacidad de proteger la máquina de accesos o usos indebidos, incluso de forma automática. Una de las principales ventajas del sistema de log de UNIX radica en que los ficheros de log no son más que ficheros de texto que el administrador puede consultar con herramientas tan simples como un comando cat o un less, aunque existen herramientas más complejas para esta supervisión. Sin embargo, no se debe depositar una confianza excesiva en el sistema de log, ya que este puede ser falsificado, para lo cual se proponen algunas alternativas. Una de los principales inconvenientes de los sistemas operativos UNIX radica en la complejidad a la hora de configurar el sistema de logs, unido a las diferencias entre los sistemas de log de las diversas versiones de este sistema operativo. En UNIX existen dos grandes familias de sistemas (System V y BSD) que difieren considerablemente entre sí. Es, por tanto, recomendable recurrir a las páginas de ayuda antes de
Tema 9, página 1 Ignacio José Blanco Medina

Administración de Sistemas Operativos

Curso Académico 2003-2004

proceder a la configuración del sistema de log. Una de las principales diferencias entre ellos consiste en el process accounting, o simplemente account, que es la forma de almacenar información sobre los procesos ejecutados por un usuario. Evidentemente, esta información sólo es relevante en casos muy concretos y es muy grande, por lo que no debe activarse su uso si no es necesario.

(i) El demonio de log (syslogd)
Este demonio se activa automáticamente cuando se inicia el sistema UNIX y es el encargado de mantener los informes acerca del funcionamiento de la máquina. Recibe diferentes mensajes de las partes software que se ejecutan en la máquina (núcleo, programas, controladores de dispositivo, etc.) y los almacena en diferentes localizaciones, que pueden ser locales o remotas, fijadas en el fichero de configuración /etc/syslog.conf (véase). Este fichero contiene una serie de líneas denominadas reglas, que determinan a qué afecta la regla (selección) y qué hay que hacer con lo afectado (acción). Ambos campos se separan por comas. A su vez, la selección se divide en dos partes separadas por un punto:

servicio que genera el informe: que puede ser auth, auth-priv, cron, daemon, kern, lpr, mail, mark, news, security (equivalente a auth), syslog, user, uucp y local0 hasta local7, prioridad del evento generado (importancia): que puede ser debug, info, notice, warning, warn (equivalente a warning), err, error (equivalente a err), crit, alert, emerg, y panic (equivalente a emerg).

Es posible definir reglas que afecten a todos los eventos de un determinado servicio (mail.*), afectar a mensajes sin prioridad (mail. ), afectar a una prioridad y las superiores en todos los servicios (*.info), afectar sólo a una prioridad en un servicio pero no a las superiores (mail.=info), invertir el comportamiento de un selector de prioridad (mail.!=info, selecciona todas las prioridades del servicio mail menos la prioridad info). Con respecto a las acciones que pueden realizarse, podemos enviar los mensajes a los siguientes destinos:
• • • • •

un fichero de texto: /var/log/messages, un dispositivo físico: /dev/tty12, al demonio syslogd en otra máquina: @lab1gw.lablyc.ual.es, uno o varios usuarios del sistema, en caso de estar conectados: root,aso1, y todos los usuarios conectados al sistema: *.

(ii)Archivos de log
Algunos de los ficheros estándar de log se describen a continuación:
• • •

/var/log/syslog: información relevante sobre la seguridad de la máquina y el acceso a servicios, /var/log/messages: eventos informativos del núcleo y las aplicaciones de prioridad baja, /var/log/wtmp: fichero binario que contiene información sobre las conexiones al sistema, informa sobre el nombre de usuario de cada conexión, vía de acceso, lugar de origen de la conexión y
Ignacio José Blanco Medina

Tema 9, página 2

Administración de Sistemas Operativos

Curso Académico 2003-2004

tiempo,

/var/log/utmp: fichero binario que contiene información sobre los usuarios conectados en un momento dado (se consulta con los comandos last o who), /var/log/lastlog: fichero que contiene información sobre la última conexión de un usuario, /var/log/btmp: conexiones fallidas, /var/log/sulog: ejecuciones del comando su, y /var/log/debug: eventos de depuración de todos los servicios.

• • • •

Algunas referencias
• •

http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/herramientasmonitorizacion.htm http://es.tldp.org/Manuales-LuCAS/SEGUNIX/unixsec-2.1-html/node86.html

Tema 9, página 3

Ignacio José Blanco Medina

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->