Capitulo 222

61
Capitulo 22: Windows XP

Transcript of Capitulo 222

Capitulo 22:

Windows XP

Objetivo del capitulo Explorar los principios en los que se basa el

diseño de Windows XP y los componentes específicos que forman el sistema

Comprender como Windows XP puede ejecutar programas diseñados para otros sistemas operativos.

Proporcionar unas explicaciones detalladas del sistema de archivos de Windows XP

Ilustrar los protocolos de red soportados en Windows XP

Analizar la interfaz disponible para los programadores de sistemas y aplicaciones.

Windows XP El sistema operativo Windows XP es un

sistema operativo multitarea apropiativo de 32/64-bits para los microprocesadores.

Los objetivos clave del sistema operativo son la:

Seguridad Fiabilidad Facilidad de uso Compatibilidad de aplicaciones Altas prestaciones Aplicabilidad

En 1988 Microsoft decidió comenzar de nuevo y desarrollar un SO portable basado en una nueva tecnología que soporta la interfaz de programación de aplicaciones tanto de OS/2 como de POSIX

Originalmente, el equipo de desarrollo pretendía usar para NT la API OS/2 como entorno nativo, pero durante el desarrollo NT fue modificado para utilizar la API Windows de 32 bits como resultado de la popularidad de Windows 3.0

Historia

Principios de diseño

Seguridad: Los objetivos de seguridad de Windows XP requerían algo mas que una simple adherencia a los estándares que permitieron que Windows NT 4.0 recibiera una clasificación de seguridad C-2

Portabilidad: Un SO es portable si se le puede desplazar de una arquitectura hardware a otra con un numero de cambios relativamente pequeño

Fiabilidad: XP utiliza la protección de hardware para la memoria virtual, y los mecanismos de protección de software para el funcionamiento de los recursos del sistema.

Compatibilidad: las aplicaciones que siguen el estándar IEEE 1003.1 (POSIX) estándar puede ser cumplido para funcionar en XP sin cambiar el código fuente.

Rendimiento: Los Subsistemas de XP pueden comunicarse entre sí a través de mensajes de alto rendimiento 

Arquitectura XP

Capas del sistema de módulos Modo protegido: Los niveles

principales son el nivel HAL, el KERNEL y el subsistema ejecutivo

Modo usuario: se clasifican en dos categorías:

-Los subsistemas de entorno

-Subsistemas de protección

Arquitectura de XP

“Componentes del sistema”Kernel

El Kernel de XP proporciona la base para el ejecutivo y para los distintos subsistemas.

El kernel permanece cargado en memoria y su ejecución nunca puede ser desalojada.

Responsabilidades principales:

-Planificación de hebras

-Tratamiento de interrupciones

-Excepciones

-Sincronización del procesador a bajo nivel

-Recuperación después de un fallo de alimentación.

El kernel esta orientado a objetos, utiliza dos conjuntos de objetos:

-Despachador de Kernel: sus principales responsabilidades son la planificación de hebras, la implementación de primitivas de sincronización, la gestión de temporizadores, las interrupciones de software.

-Hebras y planificación: XP utiliza procesos y hebras para estructurar el código ejecutable.

Kernel-proceso y subprocesos

El proceso tiene un espacio de direcciones de memoria virtual (como una prioridad de base)

 Cada hebra tiene su propio estado, incluyendo una prioridad, la afinidad del procesador, y la información contable.

 Cada hebra tiene su propio estado, incluyendo una prioridad, la afinidad del procesador, y la información contable.

Los seis posibles estados de las hebras son: preparada, lista, en ejecución, en espera. En transición y terminada

Kernel-Programación

El despachador utiliza un esquema de prioridades de 32 niveles para determinar el orden de ejecución de las hebras.

Las prioridades se dividen en dos clases:

La clase variable contiene hebras cuyas prioridades van de 0 a 15

mientras que la clase de tiempo real contiene hebras cuyas prioridades están comprendidas entre 16 y 31

Kernel-Programación (Cont.)

Las decisiones de planificación se toman cuando una hebra entra en el estado de preparada o de espera, cuando una hebra termina o cuando una aplicación modifica la prioridad o la afinidad del procesador de una cierta hebra.

XP no es un sistema operativo de tiempo real estricto, porque no garantiza que una hebra de tiempo real pueda comenzar a ejecutarse dentro de un limite de tiempo concreto.

Niveles de solicitud de interrupción de Windows XP

Tabla de despacho de interrupciones

XP mantiene una tabla de despacho de interrupciones separada para cada procesador

Todas las interrupciones con un nivel igual o inferior estarán bloqueadas hasta que el IRQL sea reducido por una hebra de nivel del Kernel.

XP aprovecha esta propiedad y utiliza las interrupciones software para realizar llamadas APC y DPC, para realizar funciones del sistema tales como la sincronización de hebras con la terminación de las operaciones E/S

Sistema ejecutivo XP proporciona un conjunto de servicios

utilizado por todos los subsistemas de entorno. Los servicios se agrupan:

-Gestor de objetos

-Gestor de memoria virtual

-Gestor de procesos

-Monitor de referencia de seguridad. Los objetos son manipulados por un

conjunto estándar de métodos:

namely create, open, close, delete, query name, parseand security.

Gestor de objetos

El gestor de objetos mantiene el entorno de nombres de XP. A diferencia de UIX que asocia el espacio de nombres del sistema con el sistema de archivos

XP utiliza un espacio de nombres abstracto y conecta los sistemas de archivos como dispositivos

Cada objeto está protegido por una lista de control de acceso.

Gestor de memoria virtual

El componente ejecutivo que gestiona el espacio virtual de direcciones, la asignación de memoria física y la paginación es el gestor de memoria virtual (VM virtual memory)

El gestor VM en XP utiliza un esquema de gestión basado en pagina con un tamaño de pagina de 4KB

El gestor VM de XP utiliza un proceso en dos pasos para asignar la memoria al usuario

1.- reserva una parte del espacio virtual de direcciones del proceso

2.-confirma la asignación, asignando espacio de memoria virtual

Disposición de las tablas de paginas

Gestor de memoria virtual

El diseño del gestor VM asume que el hardware subyacente da soporte a la traducción de direcciones virtuales a físicas.

-Utiliza un esquema de gestion basado en pagina con un tamaño de pagina de 4KB e

-Un número entero de 10 bits puede representar todos los valores de 0 a 1023, por lo tanto, puede seleccionar cualquier entrada en el directorio de la página, o en una tabla de páginas.

Esta propiedad se utiliza cuando se traduce un indicador de la dirección virtual a una dirección libre en la memoria física.

Traducción de direcciones virtuales a físicas en la arquitectura IA32

Entrada de la tabla de paginas del archivo de paginas

El bit valido/invalido es cero

Gestor de procesos

Provee servicios para crear, eliminar, y el uso de las discusiones yprocesos

Funcionalidad de llamadas a procedimientos locales

El SO utiliza la funcionalidad de llamada a procedimiento local (LPC, local procedure call) para intercambiar solicitudes y resultados entre los procesos cliente y servidor dentro de una misma maquina.

Cuando se crea un canal LPC, debe especificarse una de tres posibles técnicas de paso de mensajes

-1.-la primer técnica es adecuada para mensajes de pequeño tamaño (hasta un par de cientos de bytes)

-2.-la segunda técnica se emplea para mensajes de mayor tamaño

-3.-La tercera técnica utiliza las API que leen y escriben directamente en el espacio de direcciones de un proceso

Gestor de E/S

El gestor de E/S es responsable de los sistemas de archivos, controladores de dispositivos y controladores de red.

Se encarga de controlar que controladores de dispositivo, controladores de filtrado y sistemas de archivos se han cargado

Gestiona los búferes para las solicitudes de E/S

E/S de archivo

Monitor de referencia de seguridad

La centralización de la gestión de las entidades del sistema en el gestor de objetos permite a Windows XP utilizar un mecanismo uniforme para llevar a cabo las validaciones de acceso en tiempo de ejecución

Cada vez que un proceso abre un descriptor de un objeto, el monitor de referencia de seguridad comprueba el testigo de seguridad del proceso y la lista de control de acceso del objeto para ver si el proceso tiene los derechos necesarios

Gestores plug-and-play y de administración de energía

El SO utiliza el gestor plug-and-play para reconocer los cambios en la configuración hardware y adaptarse a los mismos.

El gestor PnP gestiona la configuración dinámica de la forma siguiente: en primer lugar, obtiene una lista de dispositivos de cada controlador de bus (ej: PCI, USB)

Subsistemas de entorno

Los subsistemas de entorno son procesos en modo usuario apilados sobre los servicios ejecutivos nativos de Windows XP y que permiten a XP desarrollar programas desarrollados para otros SO.

Windows XP utiliza el subsistema API Win32 como el principal entorno de operación.

El entorno MS-DOS no tiene la complejidad de los otros subsistemas de entorno de XP

Entornos de subsistemas

El entorno de ejecución Win16 se proporciona mediante una VDM que incorpora un software adicional denominado Windows on Windows (WOW32 para las aplicaciones de 16 bits)

El subsistema POSIX está diseñado para ejecutar aplicaciones siguiendo el estándar POSIX POSIX.1 que se basa en el modelo de UNIX.

Sistema de archivos

La estructura fundamental del sistema de archivos XP (NTFS) es un volumen

- Creado por la utilidad de administrador de disco de XP

- Sobre la base de una partición de disco lógica.

Sistema de archivos-Diseño interior

NTFS utiliza números lógicos de cluster como direcciones de disco.

Un archivo en NTFS no es un simple flujo de bytes como en MS-DOS o UNIX en lugar de ello, es un objeto estructurado compuesto de atributos con tipo.

Todos los archivos NTFS se describen mediante uno o mas registros dentro de una matriz almacenada en un archivo especial denominado tabla maestra de archivos.

Recuperación En muchos sistemas de archivos simples, un fallo de

alimentación en el instante incorrecto puede dañar las estructuras de datos del sistema de archivos tan gravemente que el volumen completo resulta corrompido.

Antes de una estructura de datos se modifica, la operación escribe una Log Record que contiene rehacer y deshacer la información.

Después de la estructura de datos se ha modificado, una confirmación de registro se escribe en el registro para indicar que la operación tuvo éxito.

Después de un accidente, las estructuras del sistema de archivos de datos se puede restaurar a un estado coherente de la transformación de los registros.

Recuperación de archivos

Este esquema no garantiza que todos los datos del archivo de usuario puedan ser recuperados después de un accidente, al igual que los datos del sistema de archivos las estructuras  están en buen estado y reflejan un estado coherenteantes del accidente.

El registro se almacena en el archivo de metadatos 

Seguridad La seguridad de un volumen NTFS se

deriva del modelo de objetos de Windows XP.

Cada archivo NTFS hace referencia a un descriptor de seguridad, que contiene el testigo de acceso del propietario del archivo y una lista de control de acceso, que indica los privilegios de acceso concedidos a cada usuario que tenga acceso al archivo.

Gestión de volúmenes y tolerancia a fallos

FtDisk es el controlador de disco tolerante a fallos de Windows XP

Cuando se instala, proporciona diversas maneras de combinar múltiples unidades de disco en un único volumen lógico, para mejorar las prestaciones, la capacidad o la fiabilidad.

Conjunto de volúmenes con dos unidades

Conjunto de distribución en bandas con dos discos

Conjunto de distribución en bandas con paridad, utilizando tres discos

Conjunto espejo con dos unidades de disco

Compresión y cifrado NTFS puede comprimir los datos de archivos

individuales o todos los archivos de datos de un directorio.

Para comprimir un archivo, NTFS divide los datos del archivo en unidades de compresión, que son bloques de 16 clusters contiguos.

Cuando se escribe cada unidad de compresión, se aplica un algoritmo de compresión de datos.

Si el resultado cabe en menos de 16 clusters, se almacena la versión comprimida.

Puntos de montaje

Los puntos de montaje son un tipo de enlace simbólico específicos de los directorios de NTFS proporcionan un mecanismo para que los administradores organicen los volúmenes de disco de una forma mas flexible que utilizando nombres globales.

Conexión de red Windows XP permite utilizar tanto redes

entre iguales (peer-to-peer) como redes cliente-servidor.

También dispone de funcionalidades para la gestión de red-

Los componentes de red de Windows XP proporcionan mecanismos de transporte de datos, comunicación interprocesos, compartición de archivos atreves de la red y envió de trabajos a impresoras remotas.

Interfaces de red

El protocolo SMB fue introducido por primera vez en MS-DOS el sistema emplea el protocolo para enviar solicitudes 770

XP implementa los protocolos de transporte como controladores.

El protocolo NetBIOS es una interfaz de abstracción hardware para redes, análoga a la interfaz de abstracción hardware BIOS desarrollada para las maquinas de tipo PC que ejecutan MS-DOS

Interfaces de red XP utiliza NetBEUI cuando quiere compartir

recursos en estas redes. XP emplea TCP/IP para conectarse con una

amplia variedad de sistemas operativos y plataformas hardware.

El protocolo PPTP es un protocolo proporcionado por Windows XP para poder comunicar módulos de servidor de acceso remoto que se ejecuten en maquinas de servidor XP con otros sistemas cliente que este conectado a través de internet.

Mecanismos de procesamiento distributivo

Aunque XP no es un sistema operativo distribuido, si que permite utilizar aplicaciones distribuidas. Entre los mecanismos que dan soporte al procesamiento distribuido en XP podemos citar NetBIOS, las popes con nombre y los buzones de correo, los sockets de Windows, el mecanismo RPC, el lenguaje de definición de interfaces de Microsoft y finalmente COM

Redirectores y servidores

En XP una aplicación puede utilizar la API de E/S de Windows XP para acceder a archivos de una computadora remota como si fueran locales.

Un redirector es el objeto del lado cliente que re-envía las solicitudes de E/S relativas a archivos remotos, solicitudes que serán satisfechas por un servidor

Para mejorar las prestaciones y la seguridad, los redirectores y servidores se ejecutan en modo kernel.

Acceso a un archivo remoto

La aplicación invoca al gestor de E/S para solicitar que se abra un archivo con un nombre de archivo en formato UNC estándar.

El gestor de E/S construye un paquete de solicitudes de E/S

El gestor de E/S detecta que el acceso se refiere a un archivo remoto e invoca un controlador denominado proveedor múltiple UNC

El MUP envía el paquete de solicitud de E/S asíncronamente a todos los redirectores registrados.

Un redirector que pueda satisfacer la solicitud responderá al MUP.

El redirector envía la solicitud de red al sistema remoto.

Acceso a un archivo remoto

Los controladores de red del sistema remoto reciben la solicitud y la pasan al controlador de servidor

El controlador del servidor entrega la solicitud al controlador apropiado del sistema de archivos local

Se invoca el controlador de dispositivo apropiado para acceder a los datos

Los resultados se devuelven al controlador del servidor, el cual los envía al redirector solicitante

Dominios

XP es un grupo de estaciones de trabajo y servidores XP que comparte una política de seguridad y una base de datos de usuarios comunes.

La versiones anteriores de NT utilizaban la idea de controladores de dominio principales y de reserva, ahora todos los servidores de un dominio son controladores de dominio.

Resolución de nombre de redes TCP/IP

En una red IP, la resolución de nombres es el proceso de convertir un nombre de computadora en una dirección IP como por ejemplo traduciendo www.bell-labs.com a 135.104.1.14

Windows XP proporciona varios métodos de resolución de nombres, incluyendo WINS, resolución de nombre de difusión, DNS un archivo de HOSTS y un archivo LMHOSTS

Resolución de nombre

En WINS, dos o mas servidores WINS mantienen una base de datos dinámica de correspondencias entre nombres y direcciones IP

WINS utiliza el protocolo DHCP actualiza automáticamente las configuraciones de direcciones en la base de datos WINS, sin que el usuario o el administrador intervengan.

Acceso a los objetos de Kernel

El kernel de XP proporciona muchos servicios que los programas de aplicación puedan utilizar.

Un proceso obtiene acceso a un objeto de Kernel denominado XXX llamando a la función Create XXX para abrir un descriptor de XXX

XP proporciona 3 formas para compartir objetos entre los procesos

Un proceso hijo herede un descriptor del objeto

Cuando el padre invoca a la función CreateXXX suministra una estructura SECURITIES_ATTRIBUTES con el campo bInherit-Handle

Este campo crea un descriptor heredable

Se crea el proceso hijo pasando un valor TRUE al argumento bInheritHandle de la función CreatePorcedure

Gestión de procesos La API Win32 utiliza cuatro clases de prioridad 1. IDLE_PRIORITY_CLASS (nivel de prioridad 4) 2. NORMAL_PRIORITY_CLASS (nivel de prioridad 8) 3. HIGH_PRIORITY_CLASS (nivel de prioridad 13) 4. REALTIME_PRIORITY_CLASS (nivel de prioridad

24) XP tiene una regla especial de planificación para los

procesos de la clase NORMAL_PRIORITY_CLASS XP distingue entre el proceso de primer plano que

esta actualmente seleccionado en la pantalla y los procesos de segundo plano que no están actualmente seleccionados.

Gestión de procesos El Kernel ajusta la prioridad de una hebra

dinámicamente, dependiendo de si la hebra eta limitada por E/S o por CPU

Para sincronizar el acceso concurrente a los objetos compartido por parte de las hebras, el kernel proporciona objetos de sincronización como semáforos y objetos mutex

Además, puede conseguirse la sincronización de hebras utilizando las funciones WaitForSingleObject() y WaitForMultiplesObjects ()

Gestión de procesos Una fibra es un codigo en modo usuario

que se planifica de acuerdo con un algoritmo de planificación definido por el usuario.

Solo esta permitido que se ejecute una fibra cada vez

Este mecanismo se incluye en XP para facilitar la tarea de portar las aplicaciones UNIX heredadas que hubieran sido escritas para un modelo de ejecución basado en fibras

Comunicación interprocesos

Las aplicaciones API Win32 gestionan la comunicación interprocesos de varias formas distintas. Una forma es compartiendo objetos de Kernel

Otra posible forma consiste en pasar mensajes, una técnica que resulta especialmente popular en las aplicaciones GUI Windows

Una hebra puede enviar un mensaje a otra hebra o a una ventana

Una hebra puede enviar datos dentro del mensaje

Gestión de memoria Memoria virtual:

Una aplicación invoca VirtualAlloc() para reservar o confirmar memoria virtual y VirtualFree() para anular la reserva o liberar la memoria.

Una aplicación puede utilizar la memoria mediante la asignación de memoria de un archivo en su espacio de direcciones- proceso de varias etapas- dos procesos comparten la memoria mediante la asignación de la misma en su archivo de memoria virtual

Cúmulos de memoria Los cúmulos de memoria proporcionan

una tercera forma de utilización de memoria por parte de las aplicaciones.

Cuando un proceso API Win32 se inicializa, se crea con un cumulo de memoria predeterminado de un 1 MB.

Las funciones que utilizan datos globales o estáticos no suelen funciona adecuadamente en entornos multihebra

Fin del capitulo 22