maquinas virtuales en arquitecturas de...

28
aquinas Virtuales aquinas Virtuales en arquitecturas de microkernel Amilcar Meneses Viveros & Hugo Garc´ ıa Monroy Secci´ on Computaci´ on Departamento de Ingenier´ ıa El´ ectrica CINVESTAV-IPN M´ exico, D.F. Departamento de Aplicaci ´ on de Microcomputadoras Instituto de Ciencias Universidad Aut´ onoma de Puebla. Amilcar Meneses Viveros Julio 2003 1

Upload: duongkhanh

Post on 26-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Maquinas Virtuales'

&

$

%

Maquinas Virtuales en arquitecturas de microkernel

Amilcar Meneses Viveros& Hugo Garcıa Monroy

Seccion Computacion

Departamento de Ingenierıa Electrica

CINVESTAV-IPN Mexico, D.F.

Departamento de Aplicacion de Microcomputadoras

Instituto de Ciencias

Universidad Autonoma de Puebla.

Amilcar Meneses Viveros Julio 2003 1

Maquinas Virtuales'

&

$

%

Resumen

Antecedentes y motivacion.

Definicion de Maquina Virtual.

Sistemas Operativos con arquitectura microkernel

Ejemplo: Dos como MV sobre el microkernel Mach ejecutandose en

NeXTSTEP/OpenStep.

• Mach, NeXTSTEP/OpenStep y DOS.

• El modo virtual en la familia de procesadores 80x86

• Diseno e implantacion de DOS como maquina virtual sobre

Mach.

Amilcar Meneses Viveros Julio 2003 2

Maquinas Virtuales'

&

$

%

Antecedentes y Motivacion

Existen una gran variedad de sistemas operativos, cada uno tiene ventajasy desventajas (Linux, Windows, BSD, OS/2, Mac OSX, Solaris, AIX,NeXTSTEP...). .

Es deseable para los usuarios tener acceso a la tecnologıamultiplataformas: ejecutar varios sistemas operativos concurrentementeen la misma computadora y cambiar de uno a otro sin necesidad dereiniciar la maquina

Manejo de programas o recursos que no estan disponibles en unsistema operativo

Ejecutar concurrentemente un mismo sistema operativo (VM Servers)

Pruebas de software

Seguridad

Para presumir...

Amilcar Meneses Viveros Julio 2003 3

Maquinas Virtuales'

&

$

%

Antecedentes y Motivacion

Ejemplos de sistemas con plataformas cruzadas:

Coherent Virtual Machine, Maryland University (emulador).

Virtual PC, de Connectix (emulador, simulador).

Blue Box - Mac OS X, DP2, Apple Inc (emulador).

SimOS, Universidad de Standford (simulador)

VMApp, Departamento de Aplicacion de Microcomputadoras-ICUAP

(emulador).

VMware, de VMware (emulador).

Stella, Bradford W. Mott (simuladorde Atari 2600)

MAME, Nicola Salmoria, (simulador de maquinas arcade)

¿JVM, IVM, .NET? (simulador, interprete)

Amilcar Meneses Viveros Julio 2003 4

Maquinas Virtuales'

&

$

%

Maquina Virtual

Definicion 1: “Una maquina que es capaz de realizar una operacion,

aunque no la produzca”.

Definicion 2: “Un sistema de software que ofrece una copia exacta del

hardware sobre el cual, la MV, se esta ejecutando”.

Definicion 3: “Un duplicado de hardware y software del sistema de

computacion real en el cual un subconjunto de instrucciones del

procesador se ejecuta sobre el procesador anfitrion en modo nativo”.

Amilcar Meneses Viveros Julio 2003 5

Maquinas Virtuales'

&

$

%

Maquina Virtual

Podemos considerar la primera maquina virtual al sistema VM/370 de

IBM.

Hardware de IBM 370

Manejador de sesiones VM/370

VM/370

Programa

VM/370

Programa

VM/370

Programa

Amilcar Meneses Viveros Julio 2003 6

Maquinas Virtuales'

&

$

%

Maquina Virtual

Configuracion:

1. Un S.O. anfitrion, trabajando con varios S.O. huespedes

2. Un servidor de S.O. trabajando con varios huespedes

El S.O. anfitrion o el servidor de S.O., debe monitorear al S.O. huesped

(MV). Cuando la MV trate de ejecutar una instruccion privilegiada

(interrupciones, manejo de alguun dispositivo de entrada o salida, ...).

¡¡Recuerde!!: la MV ejecutara un conjunto de instrucciones de manera

nativa (las instrucciones que no generan conflictos con las demas

maquinas virtuales).

Amilcar Meneses Viveros Julio 2003 7

Maquinas Virtuales'

&

$

%

Maquina Virtual

Monitor de M aquina Virtual (MMV):La parte principal de una maquina virtual lo constituye el monitor de maquina

virtual, que es la capa que se encarga de manejar los recursos del sistema,

exportandolos a la MV.

Figura 1: Capa MMV

Amilcar Meneses Viveros Julio 2003 8

Maquinas Virtuales'

&

$

%

Maquina Virtual

Figura 2: Funcionamiento y modulos de un MMV

Amilcar Meneses Viveros Julio 2003 9

Maquinas Virtuales'

&

$

%

Maquina Virtual

Figura 3: Tipos de MV

Amilcar Meneses Viveros Julio 2003 10

Maquinas Virtuales'

&

$

%

Maquina Virtual

Ejecucion de instrucciones privilegiadas

Reemplazar el codigo por instrucciones no privilegiadas para emular los

efectos que la instruccion privilegiada ocasiona.

Detectar la ejecucion de la instruccion privilegiada y emular/simular la

instruccion en turno.

Las instrucciones de entrada y salida deben darse por los servicios del S.O.:

Amilcar Meneses Viveros Julio 2003 11

Maquinas Virtuales'

&

$

%

Sistemas Operativos con arquitectura de microkernel

Los sistemas operativos tradicionales (monolıticos) pueden dividirse en

uno o mas servidores de Sistema Operativo a nivel de usuario y un

microkernel.

Los servidores proporcionan la funcionalidad tradicional de los sistemas

operativos —el manejo de archivos, procesos y trabajo en redes—.

El microkernel proporciona un pequeno numero de servicios

fundamentales —el manejo de memoria virtual, comunicacion entre

procesos y manejo de tareas-hilos—.

Tipos de microkernel: Mach (darwin), Chorus, V Kernel y Spring.

S.O a partir de microkernel: Debian, NeXTSTEP/OpenStep, Mac OS X, y

OS/F2.

Amilcar Meneses Viveros Julio 2003 12

Maquinas Virtuales'

&

$

%

Sistemas Operativos con arquitectura de Microkernel

Amilcar Meneses Viveros Julio 2003 13

Maquinas Virtuales'

&

$

%

DOS como MV sobre el microkernel de Mach,ejecutandose concurrentemente con

NeXTSTEP/OpenStep

Se ejecutan en arquitecturas Intel i386.

NeXTSTEP/OpenStep esta implantado sobre Mach.

Los procedores de Intel, a partir del 386 incorporan el modo de

ejecucion virtual.

NeXTSTEP/OpenStep es el S.O anfitrion, DOS es el huesped.

Amilcar Meneses Viveros Julio 2003 14

Maquinas Virtuales'

&

$

%

DOS como MV...

Microkernel Mach

Desarrollado en CMU, por el grupo encabezado por Richard Rashid.

Versiones para Motorola 68040, SPARC, Intel i386, y PowerPC.

Se encarga de manejar procesos, comunicacion entre procesos y memoria

virtual.

Interprete de UNIX (BSD 4.2)

Abstracciones de Mach: tareas, hilos, puertos, mensajes y objetos de de

memoria.

Proceso UNIX= traea + hilo

La memoria virtual seta disenada para uniprocesadores o para manejo de

memoria compartida en arquitecturas paralelas. La memoria virtual asigna

4MB de memoria a cada tarea mach.

Amilcar Meneses Viveros Julio 2003 15

Maquinas Virtuales'

&

$

%

DOS como MV...

El kernel se encarga de manejar las excepciones. El manejo lo puede

hacer el propio kernel o delegar esta responsabilidad al un proceso

del usuario.

• Acceso ilegal (errores de bus, violaciones de proteccion y

segmentacion).

• Errores aritmeticos (sobreflujo, division por cero, etc.).

• Instrucciones del hardware destinadas para el soporte de

facilidades como emulacion, depuracion y deteccion de errores.

Proporciona un conjunto de llamados al sistema, para manejo de de

los hilos a traves de los registros propios de cada arquitectura.

Amilcar Meneses Viveros Julio 2003 16

Maquinas Virtuales'

&

$

%

DOS como MV...

NeXTSTEP/OpenStep NeXTSTEP/OpenStep es un ambiente de desarrollo

orientado a objetos que corre sobre el micronkernel de Mach.

Amilcar Meneses Viveros Julio 2003 17

Maquinas Virtuales'

&

$

%

DOS como MV...

DOS Se ejecuta en arquitecturas “clones” del IBM-PC, basado en el 8088.

Amilcar Meneses Viveros Julio 2003 18

Maquinas Virtuales'

&

$

%

DOS como MV...

DOS El sistema DOS es monolitico, y se almacena en el primer megabyte de

memoria.

Amilcar Meneses Viveros Julio 2003 19

Maquinas Virtuales'

&

$

%

DOS como MV...

La familia de procesadores de Intel80x86

Procesador de 32 bits.

Manejo de memoria virtual (64 terabytes)

Manejo de multiprocesos

Sistema de protecciones: jerarquia de cuatro niveles de preferencia: 0: kernel,

1: servicios del sistema, 2:extensiones al SO, 3: aplicaciones del usuario.

Tres modos de ejecucion: protegido, real, virtual.

Modo virtual: se ejecuta una tarea (del modo protegido y llamadatarea

virtual) como si fuera el 8086.

Deteccion de ejecucion de instrucciones especiales a nivel hardware cuando

se ejecuta un proceso en modo virtual.

Amilcar Meneses Viveros Julio 2003 20

Maquinas Virtuales'

&

$

%

DOS como MV...

Instrucciones que generan excepciones en modo virtualCuando un

microprocesador esta corriendo en modo virtual 8086, existen

instrucciones que son sensitivas al IOPL.

CLI, STI, PUSH, POPF, INTn, IRET, IN, OUT, INS, y OUTS

Estas instrucciones son sensitivas a el IOLP para dar oportunidad al

monitor virtual 8086 de emular su ejecucion.

Amilcar Meneses Viveros Julio 2003 21

Maquinas Virtuales'

&

$

%

DOS como MV...

Una tarea se ejecuta en modo virtual cuando se enciende la banderaV M

del registro de banderas.

Figura 4: Entrando y saliendo del modo virtual

Amilcar Meneses Viveros Julio 2003 22

Maquinas Virtuales'

&

$

%

DOS como MV...

La organizacion de DOS como aplicacion de NeXTSTEP

Generar una tarea que sirva como monitor de DOS.

Utilizar el modo virtual de ejecucion del procesador (Intel): crear un hilo

mach que se ejecute en modo virtual 8086.

Crear la maquina DOS en el primer megabyte de una tarea Mach.

Asignarle un MMV (encargado del manejo de excepciones).

Amilcar Meneses Viveros Julio 2003 23

Maquinas Virtuales'

&

$

%

DOS como MV...

Diseno de la implantacion de la MV DOS en Mach.

Amilcar Meneses Viveros Julio 2003 24

Maquinas Virtuales'

&

$

%

DOS como MV...

Diseno de la implantacion de la MV DOS en Mach-NeXTSTEP como

aplicacion multihilos.

Amilcar Meneses Viveros Julio 2003 25

Maquinas Virtuales'

&

$

%

DOS como MV...

Vista de la aplicacionVM.app.

Amilcar Meneses Viveros Julio 2003 26

Maquinas Virtuales'

&

$

%

Resultados, conclusiones y trabajo furturo

Dispositivo Simulador Emulador Emulador con

Mach-NeXTSTEP

CPU Proceso CPU CPU en MV8086

Arq. trap Senales Senales Manejo de

excepciones

Inst. privilegiadas Simulacion Sim. o ejec. Simulacion

directa

E/S Arch. especiales Arch. especiales Arch. especiales

Objetos

Amilcar Meneses Viveros Julio 2003 27

Maquinas Virtuales'

&

$

%

Trabajo a futuro

Ampliar la simulacion de dispositivos de E/S.

Ampliar el trabajo para la ejecucion de Windows... aunque

Exportar el trabajo a otras plataformas con tecnologia de microkernel

Mach: Rhapsody, GNUStep y Debian.

Generar un MMV general para ejecutar NeXTSTEP/OpenStep en

Debian.

Amilcar Meneses Viveros Julio 2003 28