martes, 31 de marzo de 2009

¿Qué es una Máquina Virtual?La TARTA(I)

Tras el Manual de Lino en el que paso a paso se nos explica como instalar una máquina virtual(Virtual Box) para ejecutar,sin salir de Windows,otro Sistema Operativo,creo que es necesario explicar qué es una máquina virtual,qué usos tiene una máquina virtual, que ventajas tiene una máquina virtual, y sobre todo¿es seguro ejecutar un Sistema Operativo dentro de otro mediante una máquina virtual?

Vamos por partes,antes de saber que es una Máquina Virtual tenemos que entender porqué un Sistema Operativo(SO) funciona en nuestro ordenador, y la razón no es que un tío muy inteligente lo haya programado(que también) sino en parte gracias a su estructura. Porque un SO tiene una estructura muy bien definida(tiene techo y tiene suelo y capas intermedias) aunque nosotros no podamos verlo. Y en parte la colocación de las capas y las relaciones entre ellas es lo que diferencia a Linux de Windows por ejemplo.



Windows usa una estructura (arquitectura es el término más profesional) NT mientras que Linux no. Pero ambos tienen características comunes:la capa mas baja se denomina HAL y sirve para abstraer el hardware del propio Sistema Operativo.Y la capa más alta es en la que se ejecutan los programas del usuario, por ejemplo el Buscaminas o el Solitario.

HAL que?abstra...cuantos?


Fácil:¿Alguna vez os habeis preguntado porque Linux (por ejemplo) funciona bien sobre un PC, y en la Nintendo DS?Seguro que tampoco la pregunta os habrá quitado el sueño pero bueno...

Si cada microprocesador habla un dialecto,y si cada cosa habla en la lengua que les da la gana.¿Que se puede hacer?Inventar la HAL o Capa de Abstracción de Hardware, en Lenguaje Común:  "El Traductor" . Traduce, o entiende, todos los lenguajes de las posibles combinaciones de Hardware para que XP funcione en todos los hardware compatibles.¿Y quien dicta la compatibilidad?La HAL: si lo entiende es compatible,si la HAL no lo entiende no es compatible.

¿Existen SO sin HAL?SI, y por lo tanto son fuertemente dependientes de la arquitectura de hardware y nada portables.

Disponer de una HAL favorece al resto de la Arquitectura del SO.¿Por qué?Si por ejemplo quiero que XP funcione sobre un nuevo microprocesador llamado PITIFLAUTAS, simplemente tengo que añadir un nuevo "diccionario" a la HAL llamado PITIFLAUTAS->XP para que XP funcione sobre él.(Algo que dicho sea de paso no es tan facil,ni tan gráfico y a veces no afecta solo a la HAL,pero para primera aproximación puede valernos). Y así,en parte, se crean los Ports. Un Port es conseguir que un SO que funciona sobre una arquitectura de hardware( el x86 en nuestro caso) funcione sobre otras arquitecturas como por ejemplo PowerPC ( que es la arquitectura de la Xbox 360,de la PS3 o de la Wii,entre otras),  ARM( teléfonos móviles, Ipods,PDAs) u otras... ¿Sería posible hacer funcionar Windows XP en la XBOX360?SI. De hecho ReactOS se puede instalar en una XBOX.

La Tarta del Sistema Operativo


Entonces un SO se puede ver como una Tarta: la capa mas baja es la HAL,la capa intermedia un churro de cosas en la que no voy a entrar,y arriba una capa superior que permite ejecutar las aplicaciones que tenemos instaladas.Lógicamente quien tenga mas interés y estudie la capa intermedia se dará cuenta que se divide en decenas de cosas,pero para explicar una Maquina Virtual no hace falta nada mas.

Volvamos a la Máquina Virtual:¿Que es una Maquina Virtual? pues una denominación,igual que existe la denominación "Juegos".Un "Juego" sirve para divertirse ¿Y una Máquina Virtual?Pues nos va a servir para ejecutar un SO dentro de otro SO.

Virtual Box es una "Maquina Virtual" como Crysis en un "Juego". Existen muchas otras "máquinas virtuales"(VMware,Qemu,Virtual PC,Bosch..)al igual que existen otros "Juegos"(solitario,buscaminas,Call of Duty...).

VirtualBox,como habreís podido comprobar los que la habeis instalado,se comporta como una aplicación más. Se instala con un Instalador(como un Juego),te ocupa espacio en memoria(como un Juego),y se ejecuta con un click en el .exe,o en el link (como un Juego).

Fijaos en este cutre-gráfico,en NUESTRO caso la Máquina Virtual y el Solitario se comportan (para el SO) identicamente igual,ambos se ejecutan en la PARTE SUPERIOR DE LA TARTA.

 maquina2

También existe la posibilidad que la Maquina Virtual se ejecute directamente sobre el hardware,pero no es nuestro caso.

Ahora ya podemos empezar a entender un poco más la máquina virtual. Próximamente la segunda parte. :)

1 comentario: