LinuxParty

Ratio: 2 / 5

Inicio activadoInicio activadoInicio desactivadoInicio desactivadoInicio desactivado
 

Resumen: Uno de los puntos fuertes de Linux es su carácter multiplataforma: se puede ejecutar en x86, x86-64, SPARC, PowerPC, y muchas otras unidades de procesamiento central (CPU). Esta riqueza de opciones de hardware representa un desafío para los desarrolladores de software, sin embargo. Asegurar que el software compila y se ejecuta correctamente, en todas las plataformas puede ser difícil. El uso del paquete QEMU puede ayudar a aliviar esta carga.

QEMU es un emulador de máquina que soporta una amplia gama de CPUs, para que pueda ejecutar el software de un PowerPC en un equipo x86, x86-64 o éste,  en un equipo SPARC, o lo que sea. Este servicio es especialmente útil para los programadores que necesitan para probar la compatibilidad y verificar el software en CPUs con características específicas. QEMU también le permite ejecutar diferentes sistemas operativos, de modo que usted puede probar la capacidad de un programa para compilar y ejecutar en FreeBSD, Solaris, o Microsoft ® Windows ® sin necesidad de salir de Linux. ;-)

Una de las ventajas de la virtualización es la de extender la utilidad del hardware, permitiendo a un solo ordenador (el anfitrión)  cumplir varias funciones mediante la ejecución de múltiples sistemas operativos invitados. Muchas de las herramientas de virtualización de hoy, sin embargo, todavía están limitadas a la arquitectura que le permite ejecutar múltiples sistemas operativos en la misma arquitectura, como x86-64 con múltiples sistemas operativos x86 en un único equipo-64.

Con QEMU puede también puede ejecutar los sistemas operativos multiplatafoma. Esta capacidad puede ayudar a probar la plataforma con sus características específicas de su programa sin necesidad añadir más equipos.

Utilizar QEMU para el desarrollo multiplataforma, es una gran idea pero primero debe configurarlo e instalar los sistemas operativos invitados en él. Es posible que tenga que tenga que hacer un esfuerzo extra para probar el desarrollo multiplataforma. Con el emulador en funcionamiento, podrá investigar algunas de las características QEMU que pueden ayudarle a manejar interesantes características, tales como permitir la transferencia de archivos o intercambio de archivos entre el emulador y su huésped.

Instalación de QEMU

Usted puede instalar QEMU fácilmente a través de un gestor de paquetes, pero puede que tenga que profundizar un poco más si va a utilizar el programa para el desarrollo de software multiplataforma. Por ejemplo, usted debe entender sus opciones para la instalación QEMU, así como la instalación de los archivos de apoyo, como el firmware. Usted también debe comprender la diferencia entre la emulación del sistema y el espacio de emulación del usuario, porque cada uno requiere su propia instalación de software adicional.

Para ver los paquetes, empieza probando (desde consola) poniendo:

  • yum search qemu (Para Fedora, CentOS, RedHat, etc...)
  • apt-cache search qemu (Para Debian, Ubuntu, etc...)


La obtención de paquetes de QEMU y de soporte de software

La mayoría de las distribuciones de Linux, pueden instalar QEMU de cualquiera de las siguientes maneras: usando el gestor de paquetes de su distribución o compilar el software de código fuente. Comandos como apt-get install qemu (en Debian o Ubuntu), yum install qemu (en Red Hat o Fedora), o que emerge qemu (en Gentoo) instalará el paquete de QEMU (Consulte la documentación de su distribución para más detalles.)

Los paquetes de la distribución de QEMU siempre funcionan bien, pero tienden a la zaga de las últimas novedades y puede que falten archivos importantes, como el firmware para sistemas no-x86. Por lo tanto, puede que tenga que instalar el software de código fuente, que puede obtener del sitio web de QEMU (vea "Recursos"). Escribiendo. /configure --help en el directorio de origen produce una lista de opciones de configuración así que usted puede personalizar QEMU a sus necesidades. Después de esto, la habitual es escribir make y make install, comandos de compilar e instalar el software.

Mientras escribo esto, la última versión estable de QEMU es 0.11.1, pero una versión release candidate 0,12 también está disponible. usaremos la 0.11.1  como referencia para este artículo.

Si estás usando QEMU en un equipo x86 o x86-64 para emularse a el mismo, usted puede estar interesado en usar kqemu. Este es un módulo del kernel de Linux que proporciona aceleración de la virtualización de la CPU, similar a la proporcionada por Xen o basada en el Kernel Virtual Machine (KVM). Kqemu no es parte del núcleo de Linux estándar, sin embargo, usted debe descargar desde el sitio web de QEMU o instalarlo en un paquete separado. Asegúrese de hacer coincidir las versiones de QEMU y kqemu, el uso kqemu 1,3 con QEMU 0.9.1 y anteriores, y kqemu 1.4 con versiones más recientes de QEMU.

La web incluye varias imágenes de discos QEMU ya hechas. Estos incluyen las instalaciones de varias plataformas Linux, FreeBSD, y FreeDOS. Usted puede descargar estos archivos para probar la instalación básica. Cuando el sistema está trabajando, puede ampliar los sistemas previstos o instalar uno nuevo desde cero.

Los paquetes 0.11.1 de QEMU con el firmware para x86, x86-64, PowerPC, SPARC de 32, y 64 plataformas SPARC, junto con distintos archivos de firmware para la tarjeta de vídeo emulada, el arranque PXE (PXE) , y otras opciones. Ver el subdirectorio PC-BIOS, o /usr/share/qemu en un sistema instalado, para los archivos específicos.

A veces el firmware proporcionado en QEMU es insuficiente. Por ejemplo, el firmware para x86 y x86-64 es un insumo básico tradicional  (BIOS). Si desea desarrollar o probar el software que se basa en la interfaz más reciente firmware extensible (EFI) o firmware más exótico, puede que tenga que encontrarlo en otro lugar. Una imagen de EFI se proporciona en el sitio QEMU. Puede que tenga que hacer una búsqueda web en los principales términos pertinentes, sin sus condiciones crees que son más exigentes o si es necesario ejecutar un tipo específico de firmware.

Sistema vs Espacio de emulación del usuario.

QEMU proporciona dos modos de emulación. La primera, la emulación del sistema, crea una máquina virtual completa. El Software que se ejecuta en este sistema puede ser un equipo muy diferente al del sistema host, por ejemplo, puede ejecutar un sistema Debian PowerPC sobre su OpenSUSE en una x86 de 64bits. El modo de emulación del usario es menos completo. En este enfoque, se aplicarán las bibliotecas de emulación QEMU para binarios individuales, que luego verá sobre el equipo host como su realidad, para un binario PowerPC ejecutandose en OpenSUSE con su sistema x86 de 64 bits. El usuario puede simplificar el modo de emulación de acceso a los recursos locales, redes, y así sucesivamente.

Cada uno tiene su enfoque de emulación y requisitos de configuración propia. Para la emulación del sistema, debe instalar un sistema operativo cliente como si fuera la creación de un equipo físico independiente. (Descargar y utilizar una imagen del disco preconfigurado es un enfoque alternativo.) Para la emulación del espacio de usuario, no es necesario establecer un sistema completo, pero puede que tenga que configurar todas las bibliotecas de soporte requeridas por el software en cuestión. También puede que necesite configurar un cross-compilador (mismo compilador que genera binarios para distintos sistemas) para generar los binarios que desee probar.

Debido a que el punto de este artículo es utilizar QEMU para desarrollar y probar software multiplataforma, que puede entrañar interacciones sutiles del hardware, hago hincapié en la emulación del sistema. Si usted decide que la emulación del espacio de usuario es el adecuado para sus necesidades, tendrá que investigar más a fondo.


Instalación de sistemas operativos invitados.

Antes de poder utilizar QEMU en modo de emulación del sistema, debe instalar un sistema operativo invitado. Como se mencionó antes, usted puede utilizar una imagen pre-instalada o preparar una imagen de disco para una instalación nueva. En este último caso, primero debe preparar una imagen de disco para la instalación, pero el proceso de instalación en sí es similar a la de la instalación en un ordenador normal. En cualquier caso, usted debe ser consciente de que las opciones QEMU que afectan a la instalación y utilización del sistema.

Preparación de imágenes de disco

Normalmente, se emplean los archivos del disco como sustitutos para los discos duros cuando se utiliza QEMU. Si lo prefiere, puede utilizar particiones, la red o utilizar soportes para algunos o todos los sistemas de almacenamiento, sin embargo, los archivos del disco son convenientes y flexibles, por lo que hago hincapié en su uso. QEMU es compatible con varios formatos de archivo diferentes para emular sus discos, el más útil para las imágenes de disco en bruto, el formato VMware 3/4 y los formatos nativos Copy-On-Write versions 1 (QCOW) y 2 (QCOW2).

Con el comando qemu-img creará las imágenes de disco. Este comando tiene muchas opciones, pero su uso básico es bastante simple: pasarle el parámetro create, el parámetro -f fmt para establecer el formato, el nombre de archivo y el tamaño de la imagen. Las imágenes RAW (-f raw) son útiles para intercambiar datos con otros emuladores, sin embargo, QCOW2 (-f qcow2) soporta la compresión,lo cual le permitirá crear discos aparentemente grandes en espacios relativamente pequeños.

Como ejemplo, el comando siguiente crea un archivo de imagen de disco de 200 GB. Inicialmente, este archivo se consume poco espacio en disco en el host (sólo 256KB), sin embargo, crece en tamaño a medida que se usa:

qemu-img create -f qcow2 linuxppc.qcow2 200G



Además de crear la imagen de disco duro, es posible que deba crear un archivo de imagen que contiene su medio de instalación. Usted puede apuntar QEMU a la unidad óptica real o especificar un archivo que contiene una imagen de disco óptico, como el que se ha descargado de Internet o creados a partir de un disco físico.


Opciones de lanzamiento QEMU

Para comenzar la instalación o el uso de QEMU, debe lanzar el programa con las opciones adecuadas para permitir el uso del emulador. La documentación QEMU proporciona información sobre muchas opciones claras, pero es posible que pueda pasar con sólo unas pocas. En particular, se debe especificar la imagen de su disco duro (nombre y dirección) o imágenes y su medio de instalación o de la imagen. También existen opciones para seleccionar los diferentes archivos de firmware, configurar las funciones del hardware, y así sucesivamente. Es posible que desee comenzar simplemente y luego trabajar hasta lograr configuraciones más complejas.

Una instalación completa de QEMU incluye varios binarios, cada uno de los cuales emula una arquitectura de CPU diferentes. Los nombres de archivo binario de tomar la forma de qemu-system-arch, donde arch es un código de arquitectura, Así PPC para PowerPC o x86_64 para x86-64. Una excepción son los sistemas x86, que son emuladas por el binario de qemu. Los binarios con los nombres de qemu-arch forma proporcionarán el modo de emulación de sus respectivas arquitecturas.

Para especificar los discos duros, utilice  -hda, -hdb, -hdc, and -hdd para referirse a discos duros Parallel ATA (PATA), y -cdrom   para identificar a un CD o un archivo de imagen de DVD o dispositivo. Todas estas opciones tendrán un nombre de archivo como un parámetro. La unidad óptica toma -hdc, por lo que no se puede utilizar ambas opciones al mismo tiempo.

Otra opción QEMU importante durante el arranque, es especificar el dispositivo de arranque.  Utilizando -boot c para arranque desde el disco duro, y las -boot d arranque desde el CD-ROM.

De forma predeterminada, QEMU proporciona al sistema operativo invitado sólo 128 MB de RAM. Lo más probable es que usted desee aumentar la memoria disponible con la opción -m, aumentará sus megabytes.

Poner estas opciones juntas, durante la instalación de un sistema Debian PowerPC utilizando QEMU podría tener este aspecto:

qemu-system-ppc -hda linuxppc.qcow2 -cdrom debian-ppc.iso -boot d -m 512


Este ejemplo asume que el archivo debian-ppc.iso contiene una copia del disco de instalación de Debian en PowerPC, y que está usando el firmware de forma predeterminada. Estas opciones de trabajo son para mi QEMU 0.11.1 y Debian 5.02a, sin embargo, algunas versiones de QEMU pueden ser más exigentes, por lo que puede necesitar leer el manual y encontrar una solución a un problema. Cuando tenga instalado el sistema, puede utilizar el comando casi de forma idéntica para ponerlo en marcha, sólo cambiando "boot -d" por -c


Advertencias, errores, y soluciones

Un obstáculo común, particularmente si usted está tratando de arrancar una arquitectura desconocida, es que el disco de instalación no sea de arranque. Una forma de evitar este problema es especificar un archivo de firmware diferente con la opción -bios, que tiene un nombre de archivo firmware como una opción. Trate de leer los archivos de firmware en /usr/local/share/qemu (o un directorio similar en /usr/share si se instala mediante un paquete de distribución). También puede ser capaz de encontrar otras opciones de firmware a través de una búsqueda en Internet.

Una solución similar es usar la opción -M para especificar un tipo de sub-arquitectura. Tipo ¿qemu-system-ARCH-M? para aprender lo que los valores legales para su arquitectura.

Otra alternativa consiste en utilizar la opción -kernel; pasarle el nombre de un archivo del núcleo de Linux para la plataforma del invitado en el disco de host y QEMU carga y ejecuta, pasando por alto cualquier cargador de arranque de plataforma específica o características de firmware que podrían  darle problemas.

Debido QEMU emula la CPU de la plataforma de destino, puede ser bastante lento, por lo que deben estar preparados para consumir más tiempo de lo habitual durante instalación de su sistema operativo invitado. Si es posible, debería atenerse a los requisitos mínimos para la instalación y evitar el sistema X Window.

Con QEMU en funcionamiento, se ejecuta en modo texto o en el modo de gráficos en una ventana en el sistema local. La figura 1 muestra un ordenador de sobremesa con tres períodos de sesiones QEMU, ejecutando Windows XP en emulación x86, FreeBSD bajo x86-64 emulación y Debian Linux bajo emulación de PowerPC.

Figura 1. QEMU le permite ejecutar múltiples sistemas operativos en múltiples plataformas emuladas

Imge of a desktop                 with three QEMU sessions, running Windows XP under x86 emulation, FreeBSD                 under x86-64 emulation, and Debian Linux under PowerPC emulation

Uso eficaz QEMU

Después de instalar el sistema operativo invitado, puedes empezar a utilizarlo para el desarrollo de software o de pruebas. Tienes que ser capaz de transferir archivos entre el cliente y el host. Hay varias maneras de llevar a cabo esta tarea, pero utilizando una red  suele ser el enfoque más flexible. También debe considerar las capacidades y limitaciones de la emulación QEMU con respecto al desarrollo de software para aprovechar al máximo el emulador.

Gestión de las transferencias de archivos

QEMU dispone de varias opciones de red. El valor predeterminado es "el modo de creación de redes", que es similar a una traducción de direcciones de red (NAT) de configuración: El sistema operativo invitado puede utilizar los clientes de red para contactar con otros equipos, incluidos los de acogida tanto en el sistema operativo y otros servidores de red, pero otros sistemas pueden 'establecer contacto con el sistema operativo invitado sin necesidad de configuración especial. QEMU proporciona su propio Dynamic Host Configuration Protocol (DHCP) y Domain Name System (DNS) para el beneficio del sistema operativo invitado. Para el sistema operativo invitado, el anfitrión es un sistema de puerta de enlace.

Esta configuración predeterminada es adecuada si va a utilizar Network File System (NFS), Server Message Block (SMB) / Common Internet File System (CIFS), Secure Shell (SSH), u otros clientes de los resultados para transferir archivos desde y hacia el anfitrión. Sin embargo, debe ejecutar un servidor adecuado en el host. Si desea iniciar conexiones en la otra dirección, debe utilizar la opción -redir para redirigir un puerto en el sistema host para el sistema operativo invitado. Por ejemplo, el comando siguiente redirige el puerto del host al puerto 2222 del huésped 22:

qemu-system-ppc -hda linuxppc.qcow2 -boot c -m 512 -redir tcp:2222::22



El resultado de la expedición de este comando es que se puede utilizar SSH para registrarse en los resultados del host, escriba localhost ssh-p 2222. También puede acceder a los resultados de otros equipos de su red, lo que puede querer crear nuevas reglas del firewall. Por supuesto, usted necesita tener un servidor ssh corriendo en el sistema operativo invitado. Usted puede redirigir NFS, SMB / CIFS, u otros puertos de una manera similar.

====================

Consejos de desarrollo de software

Con QEMU establece y ejecuta un sistema operativo invitado, ahora puede empezar su desarrollo de software. Usted puede utilizar un compilador nativo con el emulador o un compilador cruzado (multiplataforma) en su host. Para los grandes proyectos de desarrollo en la que en repetidas ocasiones deba compilar y probar el software en el sistema operativo invitado, un compilador cruzado (multiplataforma) es más rápido, pero la creación de este tipo de configuración está fuera del alcance de este artículo. El  compilador se ejecuta en el emulador es apropiado para proyectos más pequeños o si no compila el software con frecuencia.

Para el software, el equipo parece ser un verdadero ordenador en la plataforma de destino, a efectos prácticos. Características tales como el orden de bits, la identificación de la CPU, y funciona a nivel de hardware como si estuviera en un equipo real. He utilizado tanto una verdadera iMac PowerPC de Apple y un sistema basado en QEMU PowerPC  para desarrollar y probar la versión PowerPC en mi identificador único global (GUID) de la tabla de particiones (GPT) con fdisk. Para mis propósitos, el sistema basado en QEMU es indistinguible de la del iMac real, aparte del hecho de que el sistema de QEMU es un poco más lento.

Dicho esto, hay diferencias si usted cava lo suficientemente profundo. Por ejemplo, los discos duros QEMU devuelven una  una cadena modelo de "QEMU DISCO DURO" en lugar de un verdadero fabricante de disco duro y  modelo. El Hardware virtual QEMU es también, en general, modernos, los discos parecen ser PATA o Small Computer System Interface (SCSI), dependiendo de la plataforma y el hardware de vídeo puede aparecer algo más antiguo. Puede encontrar detalles sobre el hardware virtual en la documentación de QEMU. Tenga en cuenta que estos datos varían de una plataforma de resultados a otra.

En Linux, las sesiones de QEMU consumen poco tiempo de la CPU, excepto cuando el sistema operativo invitado está haciendo el trabajo. Las sesiones de QEMU sin embargo consumen gran cantidad de RAM. Por lo tanto, como cuestión práctica, puede que necesite mucha memoria en su sistema de acogida, especialmente si va a ejecutar más de una o dos sesiones de QEMU simultáneamente.


Yendo más lejos

QEMU es un paquete grande con muchas opciones, muchas de las cuales pueden serle interesante, al menos para algunos desarrolladores. Por ejemplo, puede cambiar el modelo de la tarjeta de red emulada un protocolo independiente de Internet (IP) de la red real, redirigir los puertos de hardware diferentes para el sistema operativo invitado y ajustar una amplia variedad de opciones de hardware. Si estas características son importantes para usted, la documentación de QEMU le será de gran valor.

Vía IBM.

Pin It

Comentarios   

Guest
0 # Re: Uso de QEMU para el desarrollo multiplataforma (Windows, Linux, FreeBSD, Mac)Guest 11-03-2010 10:22
Hola!

un par de dudas, tengo migrado un disco de VDI a IMG para que KVM pueda utilizar-lo, era un disco dinámico pero ahora en la migración se ha vuelto rigido! se puede hacer que un IMG vuelva a ser dinámico???
Leo que el dormato que utilizais es el qcow2 y de la manera que lo creas desde 0 puedes hacer un HDD de 200GB pero que inicialmente solo ocupe 256kb, si creas un disco img también se podría hacer lo mismo!?!?

Responder | Responder con una citación | Citar
Guest
0 # Re: Uso de QEMU para el desarrollo multiplataforma (Windows, Linux, FreeBSD, Mac)Guest 12-03-2010 01:37
Es una buena pregunta...&nbs p; intentaré darte respuesta lo antes posible, supongo que utilizando ficheros se pueden hacer imágenes dinámicas en qemu.

No obstante, creo que qemu no soporta ficheros dinámicos... ten en cuenta que al contrario que VirtualBox, qemu se utiliza en sobre todo en sistemas de alto rendimiento, hosting, etc... y aun cuando si se podrá redimensionar la imagen, el fichero ocupa la extensión solicitada, para que los administradores tengan una idea real del disco utilizado en el hardware anfitrión. (x discos x GB < GB disco duro anfitrión)
Responder | Responder con una citación | Citar
Guest
0 # Re: Uso de QEMU para el desarrollo multiplataforma (Windows, Linux, FreeBSD, Mac)Guest 15-03-2010 01:31
Me auto-respondo jejeje!

Quando pasas de vdi lo tienes que hacer a formato RAW ya que es el compatible para cualquier transformación a otro formato, primero tienes que pasar por RAW que te lo deja como disco rígido, en este caso virtualbox tiene esa herramienta:

# VBoxManage clonehd –format RAW fedora.vdi fedora.img

Una vez la tienes convertida en formato RAW y con extensión img solo tienes que pasarlo al formato que te permite que sea dinámico y veras como solo ocupa lo que tienes ocupado de espació internamente en tu maquina virtual y pero no restas capacidad del disco

# qemu-img convert -f raw fedora.img -O qcow2 fedora-convert.img

Con esto te crea un segundo archivo que es el que tendras que utilizar si quieres un hdd dinamico.

Yo lo que ahora busco es, si tengo creado un HDD de 50GB y lo quiero pasar a 100GB como lo debo de hacer! he estado buscando poro no encuentro información!



Responder | Responder con una citación | Citar
Guest
0 # Re: Uso de QEMU para el desarrollo multiplataforma (Windows, Linux, FreeBSD, Mac)Guest 15-03-2010 05:52

Digo yo...

Y si la imagen te la importas a VirtualBox, la redimensionas y la vuelves a exportar... ¿podrías ? (no se si se puede hacer)

Puedes intentar clonar el sistema...

Aquí te dejos estas URLs...

Copiar y Clonar Sistemas Linux con CloneZilla Server Edition (CloneZilla SE)

Clonar/hac er copias de seguridad /restaurar máquinas virtuales OpenVZ con vzdum
Responder | Responder con una citación | Citar
Guest
0 # Re: Uso de QEMU para el desarrollo multiplataforma (Windows, Linux, FreeBSD, Mac)Guest 16-03-2010 01:33
HOmbre eso es el camino facil pero tiene que haber una forma de ampliar la capacidad del disco, algo tiene que haber pero no encuentro nada!
Responder | Responder con una citación | Citar

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política