viernes, 20 de mayo de 2011

ARQUITECTURA ANDORID, MAQUINAS VIRTUALES Y PARAVIRTUALIZACIÓN


Android es un sistema operativo basado en Linux y que está abierto a aplicaciones de terceras empresas, estén o no dentro de la Open Handset Alliance. Dentro de la plataforma, ya aparecen todas las aplicaciones básicas de Google: Google Maps, Google Docs, Gmail, etc.
 Y es que Android nace con una filosofía basada en el código abierto, ya que no sólo utiliza Linux como base, sino que muchas de sus aplicaciones base, como el navegador de Internet, están basadas en Open Source, con el anuncio de Google de un concurso público de aplicaciones, se espera que el sistema operativo se alimente de las contribuciones de programadores de todo el mundo. En lo que Google no parece querer transigir es en el desarrollo de las aplicaciones para su sistema operativo, forzando una homogeneización de sus máquinas virtuales Java que haga que cualquier aplicación desarrollada para Android sea ejecutable en cualquier terminal que incorpore el sistema operativo de Google.

               







1
Maquinas Virtuales
Concepto inventado por IBM como un método de tiempo compartido para los mainframes (vm/370)
Es una copia completamente protegida y aislada del hw de la maquina subyacente.
Aprovecha en forma lógica el enfoque de niveles. Considera el hw y el kernel como si fueran los dos el hw.
Proporciona una interface idéntica al hw desnudo subyacente.
El SO crea una ilusión a los  múltiples procesos de cada uno esta ejecutándose sobre su propio procesador con su propia memoria (virtual).
1.        El monitor de maquina virtual oculta el hw. 
2.       La segunda variante me permite montar sobre un SO nativo maquinas virtuales y encima aplicaciones.

Maquinas virtuales
1.       Hardware
2.       Virtual machine implementation
3.       Vm1,vm2,vm3
4.       Kernel1, kernel2, kernel3.
5.       Processes.
Ó
1.       Hardware
2.       SO
3.       Virtual machine
4.       Aplications.

Arquitectura VMware
Otros ejemplos BOCHS: exitosa para trabajar cloud computing. Un programa bajo licencia GPL, programado en c++ para simular un ordenador done instalar un sistema operativo y poder ejecutar aplicaciones con él.
QEMU: ejecuta maquinas virtuales dentro de un SO. Puede trabajar sobre cualquier arquitectura.
O microprocesador.
Virtual Pc: empezó a virtualizar los SOs Windows. Fue comprada por Microsoft.

Paravirtualización

Presenta al invitado un sistema similar, pero no idéntico al hardware.

El invitado debe modificarse para correr el hardware paravirtualizado.

El invitado puede ser un SO o en el caso de solaris 10 aplicaciones corriendo en contenedores.

Arquitectura del computador
1.       Applications program API
2.       Libraries ABI
3.       ISA    software
4.       Execution hardware                      
5.       System interconnect(bus)
6.       Dispositivos de E/S
7.       Memory traslation
8.       Main memory
Monitores de MV
Una componente clave de las VM son los monitores de MV que proporciona una capa entre los ambientes de software y el hardware, es programable, transparente al software que tiene encima y hace eficiente al hardware sobre el que está montado.
Proceso y las VM
a- en un proceso de VM, el software de virtualizacion traduce un conjunto de instrucciones del SO y de nivel de usuario convirtiendo una plataforma en otra.
b- en un sistema de VM el software de virtualizacion traduce la ISA utilizada por una plataforma de hardware en otra.

a-      Process virtual machine
b-      System virtual machine.

Taxonomía de VM
Process VM’s                                  
system VM’s
Pueden ser de proceso o de sistemas cpm la misma o diferente arquitectura de conjunto de instrucciones.
CDVM: transmeta (crusoe), os 400.

Ventajas y desventajas
 Proporciona completa protección de los recursos del sistema ya que cada MV esta aislad de otras MV. No permite compartir de forma directa los recursos.
Es un perfecto vehículo para la investigación y el desarrollo del SO. El desarrollo del sistema se hace sobre la MV, a cambio de realizarlo sobre la maquina física de tal forma que no afecta el sistema

Desventajas
Es difícil de implementar debido al esfuerzo requerido para proporcionar un duplicado exacto de la maquina subyacente.


No hay comentarios:

Publicar un comentario