Programación de Sistemas

Slides:



Advertisements
Presentaciones similares
Org. y Arquitectura del Computador
Advertisements

SISTEMAS OPERATIVOS.
ANDRES COHEN GUERRA Ing. HENRY FARFAN UPC- INFORMARICA
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
EQUIPO ·# 3 SISTEMAS OPERATIVOS
1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación.
Introducción a la Computación
TEMA 2: «CONFIGURACIÓN DE MÁQUINAS VIRTUALES»
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
MODOS DE DIRECCIONAMIENTO
Programación Visual de Sistemas
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Modelo de procesos de dos estados
Sistemas Operativos El sistema operativo es el encargado de coordinar todas las actividades del computador, todos los datos que entren o salgan desde el.
TASM: Ensamblador Se le llama ensamblador no sólo al lenguaje; sino también al programa que traduce el código fuente escrito en ensamblador, a código objeto,
Windows XP sp3.
INSTALACIÓN Y MANTENIMIENTO DE SISTEMAS OPERATIVOS
Teoría de lenguajes y compiladores
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
UTFSM - Sistemas Operativos
Componentes básicos del ordenador
Introducción al Software
Direcciones físicas y direcciones virtuales (lógicas)
Arquitectura del Computador
Sistema Operativo. ¿Qué es el Sistema Operativo? Un sistema operativo (SO) es el conjunto de programas y utilidades software que permiten al usuario interactuar.
Tema 10: Gestión de Memoria
REGISTRO DE WINDOWS.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Unidad 7 Entrada/Salida
Alfredo Ramos Barrera. Este se encuentra instalado en la tarjeta madre, el cual controla el funcionamiento de los componentes, es responsable de permitir.
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (LA DECANA DE AMERICA)
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
SEMANA 9_3.
Programación de Sistemas
Programación I MC José Andrés Vázquez Flores
Introducción a los Sistemas Operativos
1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación.
Gestión de procesos Sistemas Operativos Edwin Morales
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
COMPONENTES DEL SISTEMA OPERATIVO.
introducción al Lenguaje Ensamblador
Gestión de Memoria.
UNIVERSIDAD LATINA. I. TEORIA DE SISTEMAS OPERATIVOS.
Breve introducción a la arquitectura de 32 bits intel.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN Programación I MC Hilda Castillo Zacatelco.
Breve introducción a la arquitectura de 32 bits intel.
Redes de Transmisión de Datos
El Sistema Operativo y la Interfaz de Usuario
Estructura de los Sistemas Operativos
Universidad Metropolitana Introducción a la Computación
INTRODUCCION A SISTEMAS OPERATIVOS
Sistemas Operativos I Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas.
Docente: Martha Amparo León Torres
Mafer Alejandra Naranjo Daza Laura Castrillón Rojas Ciencias Químicas 10°
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Programación I MC Beatriz Beltrán Martínez.
Elementos y tipos de sistemas operativos
Driver o controlador para la pc.
TECNICO EN SISTEMAS NUMERO DE FICHA:
El Sistema Operativo es el software básico necesario para el funcionamiento de cualquier ordenador Los Sistemas Operativos están en continua evolución.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
Lenguaje ensamblador Resumen en diapositivas
El proceso ensamblador. José Luis Vergara Soberanis.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Estructura del sistema operativo
Transcripción de la presentación:

Programación de Sistemas Controlador de Dispositivo Virtual (VxD)

Antecedentes Windows 95 es un sistema operativo multitarea que corre en el anillo cero. Todas las demás aplicaciones lo hacen en el anillo tres. GDI32, Kernel32 y USER32 son tres componentes importantes del sistema que corren en el anillo 3. El sistema operativo está bajo el control de la VMM (Virtual Machine Manager) y los VxD (Virtual Device Drivers).

Problemática Los programas DOS y de Windows son dramáticamente diferentes. DOS Windows Pueden hacer uso de instrucciones privilegiadas del CPU, del puerto de E/S directamente. Tienen acceso directo a los recursos del sistema: CPU, memoria, teclado, disco, etc. Restringidos respecto a lo que pueden hacer en el sistema. Trabajan bajo el esquema del multitareas cooperativo. i.e. deben compartir el control con otros programas por medio del uso de mensajes (GetMessage o Peek Message).

Solución Programas de DOS Programas de Windows Corren en una máquina virtual 8086. Corren en una máquina virtual llamada SVM (System Virtual Machine).

¿Qué es una VMM? Es una máquina creada por medio de software. Reacciona como una máquina real. Los programas desconocen que corren en una máquina virtual. Como una VMM responde exactamente igual como una máquina real, puede ser tratada de la misma manera. La interface entre la máquina y su software es un tipo de API (interrupciones, llamadas al BIOS, y puertos de E/S).

¿Qué es una VMM en Windows? Es un programa dedicado a coordinar y supervisar las VM’s. Es un programa de 32 bits en modo protegido. Es responsable de crear, correr y terminar la ejecución de las VM’s. Es una de las muchas VxD’s que están guardadas en el archivo VMM32.VXD en la carpeta del sistema.

Secuencia de Arranque de Windows 95 io.sys es cargado en la memoria. config.sys y autoexec.bat son procesados. win.com es llamado. win.com corre VMM32.VXD que es actualmente un archivo DOS EXE. VMM32.VXD carga la VMM en la memoria extendida haciendo uso del controlador de XMS. VMM se inicializa a si misma junto con otros controladores de dispositivos por omisión. VMM cambia la máquina al modo protegido y crea la máquina virtual del sistema. Virtual Shell Device, el cual es cargado al final, inicia Windows en la máquina virtual del sistema corriendo el archivo krnl386.exe krnl386.exe carga el resto de los archivos, culminando con el shell de Windows 95.

Consideraciones La VMM es el primer VxD cargado en la memoria. Crea la máquina virtual del sistema e inicializa otros VxD’s. También provee varios servicios a esos VxD’s. La VMM y los VxD’s trabajan en un modo latente la mayoría del tiempo. Mientras los programas de aplicación corren, los VxD’s están inactivos. Son activados cuando interrupciones u otros eventos demandan su atención.

Controlador de Dispositivo Virtual (VxD) Donde x asume el nombre del dispositivo tal como el controlador de teclado virtual, del ratón, etc. Es la clave para la virtualización satisfactoria del hardware. Representa un soporte de entrada para los programas de DOS hacia los dispositivos reales.

Controlador de Dispositivo Virtual (VxD) Es específico de Windows 9x. No pueden corren en Windows NT. Es la entidad más poderosa del sistema porque pueden hacer todo en él. Hay dos tipos de VxD bajo Windows 95: VxD Estática VxD Dinámica

Controlador de Dispositivo Virtual (VxD) Estática Dinámica Cargada durante la inicialización del sistema. Se mantiene cargada en memoria hasta que el sistema de cierra. Proviene desde Windows 3.x Sólo está disponible para Windows 9.x Puede ser cargado o descargado cuando sea necesario. Muchos de ellos controlan dispositivos Plug and Play.

Controlador de Dispositivo Virtual (VxD) Comunicación entre VxD’s Las VxD’s, incluyendo la VMM, se comunican entre sí a través de tres mecanismos: Mensajes de control API’s de servicio Callbacks

Controlador de Dispositivo Virtual (VxD) Mensajes de Control La VMM envía mensajes de control de sistema a todos los VxDs cargados en el sistema cuando ocurre algo importante. Todo VxD tiene una función que recibe y trata con mensajes de control llamada procedimiento de control de dispositivo (device control procedure)

Controlador de Dispositivo Virtual (VxD) API’s de Servicio Un VxD, usualmente exporta un conjunto de funciones públicas que pueden ser llamadas por otros VxDs. Esas funciones se llaman servicios VxD. Todo VxD que exporta servicios VxD debe tener un número de ID único. El ID es un número de 16 bits que identifica únicamente un VxD. Ejemplo: UNDEFINED_DEVICE_ID EQU 00000H VMM_DEVICE_ID          EQU 00001H DEBUG_DEVICE_ID        EQU 00002H VPICD_DEVICE_ID        EQU 00003H VDMAD_DEVICE_ID       EQU 00004H VTD_DEVICE_ID          EQU 00005H

Controlador de Dispositivo Virtual (VxD) Callbacks Son funciones que existen en las VxD para ser llamadas por otros VxDs. No son lo mismo que los servicios VxD. Las callbacks no son públicas como los servicios. Son funciones privadas de las que un VxD da sus direcciones a otros VxDs en situaciones específicas.

Hardware Virtual Virtualización del Software.- Mecanismos que permiten a los componentes en modo protegido de Windows interactuar con los componentes en modo real de MS-DOS y el BIOS. Requiere que el sistema operativo intercepte llamadas entre los modos protegido y real. Cambia el modo de operación del procesador después de ajustar adecuadamente los registros de parámetro.

Hardware Virtual VxD Aplicación en Modo Protegido Rutina de Servicio de Interrupción en Modo Real INT xx Tabla Descriptora de Interrupciones Tabla del Vector de Interrupciones Bloque de Parámetros en Memoria Extendida Bloque de Parámetros en Memoria V86 Modo Protegido Modo V86 Virtualización de Software de MS-DOS y el BIOS [Oney 96]

El API de Servicio para VxD Los VxDs se comunican con la VMM usando el API de Servicio para VxD. Esta API provee una comunicación dinámica entre los VxDs usando la int 20h y el conjunto de ordenes de servicio del VxD. Las órdenes de servicio identifican de manera única un VxD en particular y una función de servicio en el VxD.

El API de Servicio para VxD Identificador VxD Índice de servicios Lista de VxDs Tabla de Servicio para un VxD Función de Servicio Un identificador de Servicio para VxD [Oney 96]

Esqueleto de un VxD en Lenguaje Ensamblador REQUISITOS Se necesita el Kit de Desarrollo de Controladores de Dispositivos para Windows 95/98 (Windows 95/98 DDK) Windows 98 DDK contiene el MASM versión 6.11d El Windows 9x DDK contiene varios archivos tipo include esenciales no incluidos en el paquete MASM32.

Construyendo un VxD en Lenguaje Ensamblador [Oney 96] MASM 6.11 LINK MIVXD.ASM VMM.INC MIVXD.OBJ (Archivo COFF 32-bit) MIVXD.DEF MAPSYM MIVXD.VXD (Archivo Ejecutable Formato LE) Archivo de mapeo MIVXD.SYM (Archivo de Símbolos para el depurador)

Esqueleto de un VxD en Lenguaje Ensamblador .386p include vmm.inc DECLARE_VIRTUAL_DEVICE PRIMERVXD,1,0, PRIMERVXD_Control, UNDEFINED_DEVICE_ID, UNDEFINED_INIT_ORDER Begin_control_dispatch PRIMERVXD End_control_dispatch PRIMERVXD end .386p Indica al ensamblador el uso del set de instrucciones 80386. También puede ser .486p ó .586p include vmm.inc Es indispensable incluir el vmm.inc. Contiene la definición de las macros que debe tener el código fuente. DECLARE_VIRTUAL_DEVICE PRIMERVXD,1,0, PRIMERVXD_Control, UNDEFINED_DEVICE_ID, UNDEFINED_INIT_ORDER Declaración de macro de uno de los 22 miembros de la DDB (Device Descriptor Block) Estructura que contiene información vital del VxD. Begin_control_dispatch PRIMERVXD End_control_dispatch PRIMERVXD Macro que define el procedimiento de control del dispositivo que es la función que la VMM llama cuando hay mensajes de control de nuestro VxD.

Ejemplo de un VxD en Lenguaje Ensamblador l .386p include vmm.inc include shell.inc DECLARE_VIRTUAL_DEVICE MENSAJE,1,0, MENSAJE_Control, UNDEFINED_DEVICE_ID, UNDEFINED_INIT_ORDER Begin_control_dispatch MENSAJE     Control_Dispatch Create_VM, OnVMCreate     Control_Dispatch VM_Terminate2, OnVMClose End_control_dispatch MENSAJE VxD_PAGEABLE_DATA_SEG     MsgTitle db “Cuadro de dialogo de un VxD",0     VMCreated db “Una VM es creada",0     VMDestroyed db “Una VM es destruida",0 VxD_PAGEABLE_DATA_ENDS VxD_PAGEABLE_CODE_SEG BeginProc OnVMCreate     mov ecx, OFFSET32 VMCreated CommonCode:     VMMCall Get_sys_vm_handle     mov eax,MB_OK+MB_ICONEXCLAMATION     mov edi, OFFSET32 MsgTitle     xor esi,esi     xor edx,edx     VxDCall SHELL_Message     ret EndProc OnVMCreate BeginProc OnVMClose     mov ecx,OFFSET32 VMDestroyed     jmp CommonCode EndProc OnVMClose VxD_PAGEABLE_CODE_ENDS End