Esquema UNIX I y II: Historia, Conceptos, Arquitectura y Componentes
1. Esquema UNIX I y II
1.
Introducción: Historia de UNIX. Estandarización de UNIX: POSIX 1003.1. Aparición LINUX
2.
Conceptos generales de UNIX – Linux: La 'filosofía' de UNIX es la escribir programas que
hagan una sola cosa, y que la hagan bien: Es por tanto simple y modular. Escribe programas que
trabajen bien juntos.
Interactivo: Acepta órdenes las ejecutar y espera más órdenes
Multiusuario: Puede ser usado por más de una persona simultáneamente
Multitarea: Puede realizar a la vez varios trabajos (procesos)
Razonablemente seguro. Existe protección de acceso a los recursos
Multiplataforma: Se potencia la portabilidad de las aplicaciones a nivel de código fuente.
Soporta múltiples arquitecturas de procesadores de 16, 32 y 64 bits (Intel x86, Sparc, PowerPC,
Alpha, etc.)
Multiproceso
LINUX: ‘Free’. Clon de UNIX. Basado en paquetes de SW libre y agrupado en distribuciones:
SUSE, REDHAT, etc.
-
3.
Arquitectura de UNIX – Linux:
Inte rfa z d e
u su ario
In te rfa z de
b iblio te ca
In terfa z d e
lla m a da s a l
siste m a
U su ario s
P rog ram a s utilitario s e stán d ar
(S hell, editores, com pilado res , e tc)
B ibliotec a e stán dar
(op en, clos e, re ad, w rite, fork , etc .)
S istem a O per ativo U N IX
(A dm on. d e p roc esos ,A dm o n. d e m em oria,
sistem a de arc hivo s, E /S , etc.
M od o de
usu ario
M od o de K ern el
H ardw are
(C P U , m em o ria, disc os, term in ales, etc .)
4.
-
Elementos del sistema Unix – Linux: Kernel: El Kernel es el corazón de Unix. Se clasifica
como de tipo monolítico pero permite la incorporación dinámica de módulos. En él se pueden
encontrar dos partes principales: El núcleo dependiente y el núcleo independiente
Núcleo dependiente: Se encarga de las interrupciones.
Núcleo independiente: Es igual en todas las plataformas e incluye:
•
Manejo de llamadas del sistema
•
Controlar la ejecución de procesos, permitiendo su creación, terminación o suspensión y
comunicación
•
Planificar los procesos para su realización por la CPU. Los procesos la comparten mediante
un sistema de tiempo compartido
•
Asignar memoria principal a un proceso en ejecución. Permite que los procesos compartan
porciones de su espacio de direcciones bajo ciertas condiciones pero impide que un proceso
tenga un espacio específico de direcciones.
•
Asigna memoria secundaria para lograr un almacenamiento y recuperación eficiente de los
datos de usuario. Asigna almacenamiento secundario para los archivos de usuario, recupera
el almacenamiento no empleado, estructura el sistema de archivos de un modo compresible
y los protege del acceso de usuario no autorizados
•
Permite el acceso controlado de los procesos a los periféricos tales como: terminales,
unidades de disco, equipos de red.
2. -
5.
-
Componentes del núcleo independiente
•
Gestión de Procesos: Proceso es la instancia de un programa: Conjunto de bytes que la
CPU interpreta instrucciones HW, datos y pila – TEXTO. El estado; variables de usuario, y
valores de su registro – CONTEXTO. Cuando se ejecuta un proceso A y se pasa a B hay un
cambio de contexto y se salva el estado del proceso A
–
Estados de un proceso: 9
–
Identificadores de procesos: PID asociado: PPID (del padre); UID (Usuario);
GID (Grupo) – Permiso de acceso a los que tiene derecho. Swaper (PID 0); INIT
(PID 1); PAGE DAEMON (PID 2)
–
Tipos de Proceso: Real time; shared time; daemons (background).
–
Módulos de gestión de procesos:
Comunicación:
•
o Señalización: Síncrona
o Mensajes: Asíncrona – ‘Pipes’
Planificador – Scheduler: Asigna CPU a los procesos. Round Robin.
•
•
Gestión de Memoria: Memoria virtual con paginación bajo demanda. Cada
proceso tiene su propio espacio de direcciones:
o Text Segment: Código
o Data Segment: Datos y variables de un proceso
o Stack segment: Información referente a llamadas a otras
funciones
Gestión de entrada / salida: Se basa en que todos los dispositivos se tratan como ficheros
simples. Contiene: Buffer Cache; Código general de manejo de dispositivos; Driver. Dos tipos de
dispositivos:
Bloque: Usa bloque de 512 B y Buffer cache
Carácter: No buffer cache
Tres tipos de dispositivos I/O: stdin, stdout, stderr
El sistema de archivos: Estructura jerárquica: 255 de extensión máxima; Crear, modificar y
6.
borrar archivos y directorios; tres tipo de acceso – rwx; Protección de datos; Cifrado; no siguen las
nomenclatura ‘nombre.ext’ . Estructura:
-
-
-
7.
-
Bloque de arranque: Primer sector
Superbloque:
•
Tamaño del sistema de archivos
•
Tamaño de cada bloque
•
Lista de bloques libres
•
Índice al siguiente bloque libre
•
Tamaño lista de i-nodes
•
Número y lista de i-nodes libres
•
Índice al siguiente i-node libre en la lista de i-nodes libres
I-node: El i-nodo NO contiene el nombre del fichero. Un directorio mantiene una lista con los
nombres de los ficheros y asocia a cada nombre de fichero su i-nodo correspondiente. Distintos
nombres de fichero pueden estar asociados al mismo i-nodo. Hay uno por cada archivo y contiene
información sobre:
•
Propietario
•
Tipo de archivo
•
Tamaño
•
Punteros a los datos
Tipos de archivos:
•
Ordinarios
•
Dispositivos
•
Directorios
•
PIPES (mknod)
•
Vínculos (ln)
Versiones de sistemas de archivos: VFS (SVR4); FFS (Fast Files System – Berkerley); NFS
(SUN); RFS (ATT)
Interface user / SO: Shell: Proceso a nivel de usuario como cualquier otra orden. No tiene
relación especial con el kernel ni privilegios especiales. Puede ser modificado por el usuario. Una
vez invocada se pueden usar características que la hacen parecida a un lenguaje de programación.
Tres tipos:
Bourne: Pequeño, pero eficiente; propósito general. Permite:
3. •
-
8.
-
-
-
-
Uso de variables (HOME, PATH); Estructuras de control (if, while, etc.); Subprogramas;
Operadores (<; >; >>; |; &; ‘;’ (sec tareas)); Paso de parámetros.
•
Inconvenientes: No historia de órdenes ni edición de comandos. No alias
Korn: Superconjunto de Bourne. Ofrece
•
Historia de órdenes: Numeradas secuencialmente y con un número de orden y hasta 128.
FIFO
•
Edición de comandos.
•
Alias: Modificar otras órdenes antes de ser ejecutadas
•
Operadores aritméticos
•
Arrays
C-Shell: Su sintaxis es parecida a la del lenguaje C. Soporta historia de órdenes y edición
BASH: Linux
Interface user / SO: Gráfico: La característica más importante del entorno gráfico es su
completa independencia del núcleo del sistema operativo. Es un sistema de gráficos distribuidos
basado en el modelo cliente / servidor: Xserver, Xclient. Las aplicaciones gráficas se ejecutan el
servidor y los resultados se visualizan en el cliente. Por encima del servidor X está el gestor de
ventanas que define la apariencia final y recoge y procesa las entradas del usuario a través del
ratón, teclado, etc.
MIT dentro del proyecto ATHENA, crea un entorno gráfico distribuido: X Windows System
independiente del sistema operativo que se llamó X-Windows. Este entorno fue mantenido por el
X Consorcium hasta 1996. Desde entonces se encarga The Open Group ( www.X.org ). La versión
actual del estándar es X11, release 6.5.
Las especificaciones X-Windows definen el método por el cual se pueden comunicar las
aplicaciones con el hardware gráfico. También establece un conjunto de funciones de
programación bien definidas que podrán ser llamadas para realizar la manipulación básica de las
ventanas.
SW Servidor (Servidor X): Gestiona el acceso al HW. Control de dispositivos. Gestor de
recusos del sistema para aplicaciones gráficas. Procesa órdenes para dibujo de gráficos.
Notificación a las aplicaciones de eventos y errores. Comunicación entre clientes
SW cliente: Establece conexión X: X Term; X View; Mosaic
En realidad X-Windows en su estado natural no tiene apariencia real. El control de la apariencia se
pasó a un programa externo denominado gestor de ventanas. El gestor de ventana se
preocupa de dibujar los bordes, usar el color y hacer que el entorno sea agradable a la vista. El
gestor de ventana solo se requiere para usar las llamadas estándares al subsistema X-Windows
para dibujar sobre la pantalla. Sin embargo la dificultad de programar en este entorno propició la
aparición, a finales de los 90, de dos grupos independientes que aportaron soluciones a los
problemas de X-Windows: GNOME y KDE
-
-
Gestor de ventanas: cómo los programas windows son visualizados en la pantalla
Escritorio:
•
Ofrece una interfase de usuario para opciones elementales
•
Un manejo tan intuitivo como sea posible
•
Incorporan paquetes de utilidades para las operaciones más frecuentemente utilizadas:
editor de texto, calculadora, etc.
•
Todos los componentes del escritorio pueden ser fácilmente configurados.
•
Para todos los componentes o programas existe extensiva documentación ON-LINE en
formato HTML.
•
La transferencia y utilización de datos de diferentes programas de escritorio no es compleja
•
Las funciones de Internet son transparentemente soportadas por todos los componentes.
KDE ( K Desktop Environment ): KDE está basado en Qt, una librería comercial de la Trolltech
Company. Licencia QPL ( Q Public License ). Incluye escritorio y gestor de ventanas. KDE maneja
por defecto cuatro escritorios virtuales. El máximo número de escritorios permitidos es ocho
•
Centro de control KDE ( KDE control Center ): Este elemento, también llamado
Kcontrol, permite la configuración de componentes importantes del KDE como por ejemplo:
–
Lenguaje: Idioma en el que se visualizarán todos los menús y textos de diálogos
–
Tamaño de las fuentes
–
Posición de las ventanas
–
Salvapantallas
–
Animación de los títulos de la ventanas
•
Panel de configuración: Se puede modificar desde la posición del panel KDE y la barra de
herramientas hasta la forma de los iconos, pasando por el menú de inicio y las entradas
existentes
4. •
-
9.
Ejecución de los programas en un icono: Salida de un programa aparezca directamente
sobre un icono del panel.
•
Herramientas del panel: Visualizan la información de estatus.
GNOME (GNU Network Object Model Environment): Es un escritorio. Su gestor de
ventanas: Enlightenment
•
Gestor de escritorio: Tiene la responsabilidad de visualización y gestión de los iconos visibles
del escritorio. Permite las utilización de drivers que crean iconos para todos los dispositivos
•
Panel GNOME: Es la unidad central de control. Proporciona el menú de inicio y los applets
que muestran sus salida en pequeñas áreas del panel.
Administración de seguridad: root (UID=0) y usuario normal. Usarios pueden pertener
a varios grupos. Protección de los ficheros y datos privados de un usuario respecto al
resto de los usuarios. Protección de los ficheros claves del sistema operativo contra
daños intencionados o accidentales. Seguridad en sistemas remotos
•
Protección de datos frente a otros usuarios: 3 niveles de permisos: Los del usuario
individual. Los del grupo al que el usuario pertenece. Los de los demás usuarios de la
máquina
Propietario
Grupo
Resto (world)
Rwx
rwx
rwx
r: Lectura
w: Escritura
x: Ejecución
Se puede ceder la propiedad del fichero con la orden “chown” y la del grupo con la
orden “chgrp”.
Sólo el superusuario o root puede cambiar los permisos de cualquier fichero del sistema1
10. Administración de red.
• NFS (Network File System): NFS se basa en la idea de permitir que una colección
arbitraria de clientes y servidores, compartan un mismo sistema de archivos.: Dirección
Internet de la máquina; Dirección física; Nombre del host.
• RFS (Remote File Sharing): Dominio. Servidor de nombres primario. Un dominio sólo debe
tener un servidor de nombres primario.
• OAM: Operación, Administración y Mantenimiento. está basado en las herramientas FMLI:
Intérprete de Lenguajes de formularios y Menús ( Form and Menu Language Interpreter ).
5. ESQUEMA MSC
1. Características Generales
-
Multiusuario, multiproceso, multiplataforma, multitarea
Modo Kernel y modo Usuario
Directorio Activo
Seguridad Kerberos
Cifrado de archivos
Tarjetas inteligentes
Disponibilidad
Escalabilidad
Soporte de plataformas .Net y J2EE de integración de componentes WEB
IIS: Servicios integrados de Internet para construcción de plataformas WEB
Programa POSIX
Programa OS/2
Subs is tema POSIX
Subs is tema Win32
Subs is tema OS/2
Modo de usuario
Proc es o de
s erv ic io
Programa Win32
GDI W in32
Modo de kerne
2. Arquitectura
Interfaz del s is tem a (NTDLL.DLL)
S ervic ios del S is tem a
A dm. E/S
A dm.
A dm.
A dm.
A dm.
Objetos proc es os memoria s eguridad
A dm.
c ac hé
A dm.
PnP
A dm.
elec tr.
A dm.
c onf ig.
A dm.
LPC
Sis t. A rc h
K ernel
Control video
Capa de abs trac c ión de hardware (HA L)
Hardware
-
-
Ejecutivo (executive). Consta de 10 componentes, cada uno de los cuales es un
conjunto de procedimientos que colaboran para alcanzar una meta y se ejecuta
en modo Kernel
DLL: Bibliotecas compartidas, llamadas bibliotecas de vínculos
dinámicos(DLLs; Dinamic Link Libraries).
3. Registry
-
Base de datos con toda la información de del sistema operativo
Colección de directorios, llamados claves, cada uno de los cuales contiene
subdirectorios (también claves) y entradas, llamadas valores.
4. Gestión de procesos
-
Cada proceso contiene al menos un subproceso o hebra (thread), el cual contiene
al menos una fibra
6. -
-
-
Cada proceso se inicia con un subproceso, los subprocesos son la base de la
planificación de la CPU. El sistema operativo escoge el subproceso a ejecutar,
no el proceso.
El subproceso es un concepto de planificación, los recursos están a nivel de
proceso.
Cuando terminan todos los subprocesos de un proceso éste termina
Planificación apropiativa. Algoritmo de planificación Round Robin
Cada proceso recibe una prioridad base para todos sus subprocesos. Los valores
permitidos son:
o tiempo real, alta, mayor que la normal, normal, menor que la normal e
inactiva.
o Cada subproceso puede variar su prioridad relativa al resto de
subprocesos dentro del proceso en los siguientes valores: tiempo crítico,
más alta, mayor que la normal, normal, menor que la normal, más baja e
inactiva.
o 32 prioridades del 0 al 31. Las prioridades 16 a 31 están reservadas al
sistema operativo y a procesos colocados explícitamente por el
administrador o usuario autorizado.
o Subproceso cero que se ejecuta en segundo plano y tiene como misión
exclusiva rellenar de ceros las páginas que asignará el administrador de
memoria.
o Subproceso inactivo con prioridad -1 que se ejecuta cuando no se puede
ejecutar ningún otro proceso en el sistema.
Cuotas de procesador y la contabilidad de procesador
5. Gestión de Memoria
-
Workng set
Paginación
Demanda – código y Anticipada – datos
6. Gestión de archivo
NTFS: Permite direccional archivos de hasta 264 bytes y es jerárquico
MFT (Master File Table). En cada volumen. Sucesión lineal de registros de tamaño fijo
(1 KB). Cada registro de MFT describe un archivo o un directorio, contiene los
atributos del archivo, como su nombre y marcas de tiempo, y la lista de direcciones de
disco donde están sus bloques.
Sistema de Archivos Distribuido (DFS), Árbol de directorios que consiste en
particiones de distintos sistemas de la red. El DFS soporta tolerancia a fallos y balanceo
de carga, así como replicación para mantener sincronizados los datos.
(EFS Encrypting File System): Sistema de cifrado de archivos. Algoritmo simétrico
tipo TDES.
7. Seguridad.
7. Cada usuario y grupo de Windows 2000/03 se identifica con un SID (Security ID) único
a nivel mundial. Cada proceso lleva asociado una ficha de acceso que especifica su SID
y otras propiedades.
Cada objeto tiene asociado un descriptor de seguridad que indica quién puede realizar
qué operaciones con él. Un descriptor de seguridad está formado por un encabezado ,
seguido de una DACL (discretionary Access Control List) con uno o mas elementos de
control de acceso (ACE).
En un sistema autónomo la validación corre por cuenta del proceso winlogon y la
configuración de seguridad almacenada en la propia máquina en las claves del registro:
SECURITY y SAM. Donde la primera establece las politicas globales de seguridad y la
segunda la seguridad específica de cada usuario.
KERBEROS (RFC 1510), que es un estándar de Internet para autenticación, es el
método nativo que emplean los sistemas Windows 2000/03. Cualquier servidor del
Directorio Activo, automáticamente, tiene el servicio del Centro de distribución de
claves de Kerberos (KDC- Kerberos Key Distribution Center).
8. Administración
Directorio Activo: Guarda información sobre organizaciones, lugares, sistemas,
usuarios, particiones, recursos compartidos y cualquier otro objeto componente de la
red. Un directorio es una lista de objetos
- El directorio activo permite a los clientes localizar objetos en la red mediante el
LDAP Protocolo ligero de acceso a los directorios. Se soporta sobre una base de
datos distribuida y puede guardar una significativa cantidad de datos.
- Utiliza la tecnología DNS para localizar objetos.
- Proporciona un catálogo global GC como único lugar donde buscar cualquier
objeto de la red de una organización.
Atributos describen los objetos del Directorio activo. El conjunto de atributos de un
tipo de objeto dado se denomina esquema. La información de un esquema se guarda en
el Directorio Activo.
Contenedor es un tipo especial de objeto para organizar el Directorio activo. No
representa nada físico, se usa para agrupar objetos, un contenedor se puede anidar
dentro de otro contenedor. Todos los objetos del Directorio Activo tienen un nombre,
que es un nombre distinguido de LDAP
("/O=Internet/DC=COM/DC=Microsoft/CN=Users…").
Árbol se utiliza para describir un conjunto de objetos del Directorio Activo. Cuando se
combinan jerárquicamente objetos y contenedores, tienden a formar ramas, de aquí el
término. Un término relacionado es el subárbol contiguo, que se refiere a una rama
conectada del árbol.
Bosque describe los árboles que no forman parte de un mismo espacio de nombres pero
comparten un esquema, configuración o catálogo global común. Los árboles de un
bosque confían unos en otros, por lo que si la seguridad se lo permite todos los usuarios
8. pueden utilizar los objetos de estos árboles. Las organizaciones divididas en múltiples
dominios deberían agrupar los árboles en un único bosque.
Un sitio (Site) es una localización geográfica, definida en el Directorio Activo. Los
sitios se corresponden con subredes lógicas de IP y las aplicaciones pueden utilizarlas
para localizar al servidor más cercano en la red.