Programacin de Sistemas - PowerPoint PPT Presentation

About This Presentation
Title:

Programacin de Sistemas

Description:

Todas las dem s aplicaciones lo hacen en el anillo tres. ... MsgTitle db 'Cuadro de dialogo de un VxD',0. VMCreated db 'Una VM es creada',0 ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 24
Provided by: blancovel
Category:

less

Transcript and Presenter's Notes

Title: Programacin de Sistemas


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

2
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).

3
Problemática
  • Los programas DOS y de Windows son dramáticamente
    diferentes.

4
Solución
5
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).

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

7
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.

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

9
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.

10
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

11
Controlador de Dispositivo Virtual (VxD)
12
Controlador de Dispositivo Virtual (VxD)
13
Controlador de Dispositivo Virtual (VxD)
14
Controlador de Dispositivo Virtual (VxD)
15
Controlador de Dispositivo Virtual (VxD)
16
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.

17
Hardware Virtual
18
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.

19
El API de Servicio para VxD
20
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.

21
Construyendo un VxD en Lenguaje Ensamblador Oney
96
22
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.
23
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_OKMB_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
Write a Comment
User Comments (0)
About PowerShow.com