ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

QEMU, una alternativa libre para la emulación de arquitecturas de hardware


Enviado por   •  18 de Noviembre de 2020  •  Trabajo  •  2.335 Palabras (10 Páginas)  •  182 Visitas

Página 1 de 10

QEMU, una alternativa libre para la emulación de arquitecturas de hardware

Reinier Millo Sánchez1, Alexis Fajardo Moya2, Waldo Paz Rodríguez1

1Universidad Central “Marta Abreu” de Las Villas,

Cuba

2Empresa de Tecnologías de la Información para la Defensa,

Cuba

rmillo@uclv.cu

Resumen

El empleo de máquinas virtuales se ha hecho muy común en los procesos de desarrollo de software, para la prueba y depuración, durante todo el proceso de desarrollo. Entre las ventajas que nos brindan las máquinas virtuales está poder ejecutar varios sistemas operativos sin necesidad de tener que instalarlos de forma física. Con el empleo de las máquinas virtuales vienen asociados los conceptos de emulación y virtualización. Dos procesos que aunque tienen sus semejanzas son diferentes y en muchas ocasiones se hace una mala interpretación de cada uno. En este trabajo se definen los conceptos de emulación y virtualización de hardware; y se presenta QEMU como una alternativa libre que permite la emulación y virtualización de hardware para varias arquitecturas, lo cual hace que sea muy usada en el proceso de desarrollo de software.

Introducción

Hoy en día los emuladores de hardware son muy empleados tanto en el proceso de desarrollo como en el proceso de prueba de software. Una de las principales ventajas que nos ofrecen estas herramientas es la posibilidad de realizar pruebas sobre una máquina virtual que no existe de forma real, lo cual permite realizar las pruebas sobre diferentes ambientes para hacer un estudio del comportamiento del software. Muy cercano a la emulación se encuentra el concepto de virtualización, y en muchas ocasiones estos conceptos son manejados de forma errónea.

La diversidad de plataformas de hardware existentes hoy en día ha llevado a que en ocasiones el desarrollo de software para una arquitectura de hardware se realice sobre otra arquitectura de hardware, siendo necesario realizar las pruebas del software sobre un dispositivo de hardware físico. En muchas ocasiones no se dispone de ese dispositivo de hardware o para evitar el desgaste del mismo, entonces se recurre a emplear un emulador del dispositivo para el dispositivo que se está desarrollando el software.

Muchas han sido las herramientas que se han desarrollado con el propósito de emular plataformas de hardware. La mayoría de estas herramientas se han desarrollado para plataformas específicas, siendo en ocasiones muy compleja la incorporación de nuevas plataformas.

En este trabajo se exponen los conceptos de emulación y virtualización, así como las aplicaciones relacionadas a cada concepto. Se propone el empleo de QEMU como una herramienta libre para la emulación y la virtualización de hardware.

Máquinas virtuales, emulación o virtualización

A simple vista pudiésemos pensar que los conceptos de emulación y virtualización tienen el mismo significado, pero no. Ambos conceptos tienen una gran semejanza pero se diferencian funcionalmente (Silberschatz, Galvin, and Gagne 2013). La emulación de hardware como su nombre lo indica, emula el comportamiento de una arquitectura de hardware en específico, permitiendo la ejecución de aplicaciones compiladas para una arquitectura en otra arquitectura diferente, como por ejemplo: si queremos ejecutar una aplicación compilada para la arquitectura ARM en una arquitectura i386 de Intel, se debe emplear un emulador de la arquitectura ARM sobre la arquitectura i386. Un emulador en teoría tiene un funcionamiento semejante a un intérprete, lo cual hace que su ejecución sea computacionalmente más costosa.

La emulación es muy empleada en los procesos de desarrollo de software, permitiendo la prueba y depuración del software de forma rápida en diferentes plataformas de hardware, como ocurre en (Sampath and Rao). También permite el guardado del estado actual de la ejecución o snapshot, con lo cual permite regresar a determinado momento de la ejecución del software. Otras de las aplicaciones en las que ha ganado auge es en el desarrollo de software base o kernels de sistema operativo, brindando facilidades para la depuración del kernel del sistema, como en (Winter et al.; Yeh, Zin-Yuan, and Chiang 2011).

A diferencia de la emulación, la virtualización es una técnica que permite el uso de los recursos computacionales y dispositivos de hardware de forma independiente entre diferentes ambientes de ejecución o contenedores de software. Estos contenedores de software ejecutan de forma independiente sin interferir en la ejecución de otros contenedores (Silberschatz, Galvin, and Gagne 2013). Asociado directamente a la virtualización están los monitores de máquinas virtuales (VMM, Virtual Machine Monitor), conocidos también como hipervisores, los cuales no son más que la capa de software encargada de controlar la ejecución de varios contenedores de software de forma

simultánea (Heiser 2007; Kusnetzky 2011).

Una de la principales aplicaciones de la virtualización es el aislamiento de varios servidores virtuales en un mismo servidor físico, haciendo un uso más eficiente del hardware subyacente y disminuyendo los costos económicos producto de la compra de equipos de computo (Vaughan-Nichols 2006; Silberschatz, Galvin, and Gagne 2013) . Este proceso de virtualización de los servidores también trae consigo una mejora en la seguridad y estabilidad de los servidores. La virtualización también es muy empleada por los proveedores de hosting en Internet, para dar acceso completo de forma independiente a cada hosting, sin que un usuario pueda afectar o interferir en el hosting de otro usuario.

...

Descargar como (para miembros actualizados) txt (16 Kb) pdf (223 Kb) docx (54 Kb)
Leer 9 páginas más »
Disponible sólo en Clubensayos.com