Notxor tiene un blog

Defenestrando la vida

qemu, guix, haiku y otras yerbas I

Notxor
2022-03-06

Aprovechando que tengo máquina de sobra para virtualización y que también hay ganas de probar algunas cosas sin poner en riesgo la instalación, pues me he puesto a experimentar un poco con máquinas virtuales. ¿Qué quiero probar? Sencillo: Guix, Haiku-os y veré si en el futuro, también exwm... ¿Con algún objetivo en mente o porque sí? Bueno, Guix llevo con ganas de probar la distro desde el momento que supe de ella y había probado en sus inicios, también virtualmente, pero iba tan lenta que lo deseché. También he probado antes Haiku, pero fue cuando estaba en versión alfa y no se podía instalar en disco duro. Por último, exwm, porque me gustan los entornos de ventana teselantes y mi lado friki no puede evitar pensar en tener el entorno de ventanas gestionado por Emacs. Quizás sea mucho contenido para un solo artículo, así que lo partiré en varios para no cansinar al pobre lector. En este veremos los procesos de instalación de ambos sistemas operativos. En el siguiente compararé el rendimiento de ambos y compararemos las características y sensaciones.

Instalación de Guix

  1. Descargar la imagen y hace la comprobación

    wget https://ftp.gnu.org/gnu/guix/guix-system-install-1.3.0.x86_64-linux.iso
    wget https://ftp.gnu.org/gnu/guix/guix-system-install-1.3.0.x86_64-linux.iso.sig
    gpg --verify guix-system-install-1.3.0.x86_64-linux.iso.sig
    
  2. Crear un dispositivo con qemu:

    qemu-img create -f qcow2 guix-system.img 50G
    
    ~/qemu-vm $ ls -lah
    total 612M
    drwxr-xr-x   1 notxor         notxor    240 2022-03-02 10:25 .
    drwx------   1 notxor         notxor   1.2k 2022-03-02 10:18 ..
    -rw-r--r--   1 notxor         notxor   612M 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso
    -rw-r--r--   1 notxor         notxor    833 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso.sig
    ~/qemu-vm $ qemu-img create -f qcow2 guix-system.img 50G
    Formatting 'guix-system.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=53687091200 lazy_refcounts=off refcount_bits=16
    ~/qemu-vm $ ls -lah
    total 612M
    drwxr-xr-x   1 notxor         notxor    270 2022-03-02 10:27 .
    drwx------   1 notxor         notxor   1.2k 2022-03-02 10:18 ..
    -rw-r--r--   1 notxor         notxor   612M 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso
    -rw-r--r--   1 notxor         notxor    833 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso.sig
    -rw-r--r--   1 notxor         notxor   193k 2022-03-02 10:27 guix-system.img
    ~/qemu-vm $ 
    

    Ha creado el guix-system.img, aunque hemos dicho que el tamaño fuera 50Gb, el archivo creado es de 193Kb, luego irá creciendo según lo necesite hasta el máximo de 50Gb. Iniciamos la instalación, siguiendo la documentación de Guix:

    qemu-system-x86_64 -m 2048 -smp 1 -enable-kvm \
                       -nic user,model=virtio-net-pci -boot menu=on,order=d \
                       -drive file=guix-system.img \
                       -drive media=cdrom,file=guix-system-install-1.3.0.x86_64-linux.iso
    

Proceso de instalación

Por lo que tengo entendido, todo el proceso de instalación de Guix lo que hace es generar un /script/de Guile scheme que realizará tanto la descarga como la configuración del sistema. Me llamó la atención la simplicidad del mismo. Vamos a repasarlo, partiendo del comando anterior:

  • -m 2048: se reservan 2Gb de RAM para la máquina.
  • -enable-kvm: acelera la máquina virtual.
  • -nic user,model=virtio-net-pci: virtualizamos la red de la máquina como si fuera una conexión cableada, dándole a la máquina virtual la posibilidad de acceder a la Internet.
  • -boot menu=on,order=d: establece que se arranque con el menú de grub activado y que en el orden de preferencia de dispositivos para el arranque se tome primero el cdrom.
  • -drive file=guix-system.img: es el fichero de imagen que creamos en el apartado anterior y el que queremos usar como disco duro virtual.
  • ~-drive

media=cdrom,file=guix-system-install-1.3.0.x86_64-linux.iso~: es la imagen de instalación que montamos como si fuera un cdrom en qemu para realizar la instalación desde ella.

Captura_instalacion-guix-0.png

Tras el menú de arranque nos pregunta qué idioma queremos utilizar durante el proceso de instalación.

Captura_Guix-lenguaje.png

Una vez que hemos seleccionado el idioma vemos que ya el país nos lo pregunta en español.

Captura_Guix-pais.png

A continuación podemos seleccionar si queremos utilizar la instalación interactiva gráfica (aunque sea dialog de terminal) o queremos la instalación de shell. En mi caso seleccioné la interfaz gráfica.

Captura_Guix-tipo-instalacion.png

A continuación nos pide la zona horaria. En mi caso «Europa/Madrid».

Captura_Guix-zona-horaria.png

Después seleccionamos la distribución del teclado. En mi caso «Español de España».

Captura_Guix-teclado-1.png
Captura_Guix-teclado-2.png

A continuación nos pide un nombre para la máquina.

Captura_Guix-nombre-maquina.png

A continuación nos hace una pregunta un poco enrevesada, además en perfecto inglés. Por lo que he leído en la documentación, --puedo estar equivocado--, nos pregunta si permitir que Guix añada otros servidores que encuentre por la misma red para obtener paquetes de instalación. Esto acelera la instalación de Guix en varias máquinas de la misma red, pues la obtención de los paquetes se puede distribuir entre ellas.

Captura_Guix-subtitute-servers.png

A continuación nos pide una contraseña para el usuario root. Por supuesto, lo hará dos veces para evitar errores de tecleo.

Captura_Guix-password-root.png

Nos propondrá que creemos usuarios. Al menos se debe crear uno.

Captura_Guix-crear-usuario.png
Captura_Guix-formulario-usuario.png

Una vez creado un usuario, nos pedirá la confirmación de su contraseña, de nuevo para evitar errores de tecleo.

Captura_Guix-confirmar-password-usuario.png

A continuación nos permite seleccionar el escritorio que usará el usuario, por defecto.

Captura_Guix-seleccionar-escritorio.png

También podemos activar algunos servicios de red básicos. En mi caso activé los tres propuestos.

Captura_Guix-servicio-de-red.png

Llega el momento de particionar el disco duro.

Captura_Guix-particionado-disco.png

Seleccioné la opción «guiada» y lo primero que pide es seleccionar el disco duro donde instalarse. Hay que recordar que a qemu le dimos dos unidades: el CD-ROM de instalación y un disco duro virtual de 50Gb, que es el primero que nos aparece en la lista.

Captura_Guix-seleccionar-disco.png

A continuación tenemos que elegir el tipo de particiones que vamos a utilizar. En nuestro caso gpt.

Captura_Guix-tabla-particiones.png

Lo siguiente es decirle qué esquema de particiones queremos. Para no complicarme mucho seleccioné el «Todo en una partición».

Captura_Guix-esquema-particionado.png

El sistema de instalación propone un particionado que acepté sin modificar nada.

Captura_Guix-particionado-guiado.png

Una vez realizada esa parte, llega la delicada, que es dar formato al disco. En este caso tampoco es muy delicada porque estoy utilizando un disco duro virtual. Hasta ahora todo lo que se ha venido haciendo es guardar opciones en un script que hará la instalación. Pero este paso realiza una escritura en disco. Por lo que es posible que se pierdan datos, si estamos utilizando un disco físico y lo advierte.

Captura_Guix-dar-formato-disco.png

Como he dicho, lo que hace el instalador es generar un script que realizará la instalación de manera automática con las opciones que le hayamos dado. En el siguiente paso, nos muestra el código fuente del mismo y nos da la oportunidad de modificarlo si queremos. Mi recomendación es que no lo toquéis, pero cada uno es muy libre de experimentar lo que quiera.

Captura_Guix-archivo-configuracion.png

A continuación el instalador se pone a descargar los paquetes que necesita para configurar nuestro sistema operativo con los parámetros que le hemos dado.

Captura_Guix-instalando.png

Cuando termina de hacerlo nos muestra en el instalador la opción de reiniciar el equipo con nuestro nuevo sistema operativo.

Captura_Guix-fin-instalacion.png

Iniciando Guix

Es el momento de sacar el CD-ROM de la unidad y reiniciar el sistema. Si reiniciamos tal y como estamos, volverá a arrancar con la unidad de instalación. Tenemos que cancelar el proceso y arrancar con otra línea de comandos, eliminando la parte del CD-ROM.

qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \
                   -nic user,model=virtio-net-pci -boot menu=on \
                   -drive file=guix-system.img

Cambia, por ser más detallado, que he eliminada order=d del arranque y también ha desaparecido ese drive de la línea de comandos. Primero nos arrancará el menú grub, porque se lo he pedido (también se puede eliminar).

Captura_Guix-arranque-ya-instalado.png

La ventana de entrada al sistema pidiendo qué usuario utilizar:

Captura_Guix-pantalla-entrada.png

Nuestro XFCE4 funcionando a la perfección.

Captura_Guix-xfce.png

Después de la instalación, podemos comprobar cómo ha crecido el espacio del dispositivo.

~/qemu-vm $ ls -lah
total 9.2G
drwxr-xr-x   1 notxor         notxor    206 2022-03-03 09:45 .
drwxr-xr-x   1 notxor         notxor    282 2022-03-03 09:43 ..
-rw-r--r--   1 notxor         notxor   612M 2022-03-03 09:43 guix-system-install-1.3.0.x86_64-linux.iso
-rw-r--r--   1 notxor         notxor    833 2022-03-03 09:44 guix-system-install-1.3.0.x86_64-linux.iso.sig
-rw-r--r--   1 notxor         notxor   8.6G 2022-03-03 09:45 guix-system.img
~/qemu-vm $

Como podemos observar es un proceso sencillo y basta ir leyendo las preguntas que nos va haciendo preguntas claras y tampoco demasiado técnicas. Si lo estamos instalando en una máquina física, no deberíamos tener mayor problema si nuestro hardware es completamente compatible con GNU/Linux.

Creando una máquina virtual de Haiku-os

Otra de las cosas que quería probar, puesto que estamos de instalaciones virtuales, es Haiku. Ya lo probé hace años, también en una máquina virtual. Entonces estaba en una versión alfa y no había otra opción. La última versión, sin embargo, ya se puede instalar en una partición física si se quiere.

Para el que no lo conozca, aunque creo que a estas alturas ya lo conocerá todo el mundo, Haiku, además de un tipo de poesía de origen japonés, es un sistema operativo que intenta resucitar BeOS. Resucitar no sería la palabra, pues BeOS no murió a pesar del fracaso comercial de Be, sigue teniendo un pequeño, aunque muy fiel, grupo de seguidores.

El proceso de instalación es muy similar al que se ha hecho para instalar Guix, pero lo voy a repetir para compararlo. En este caso, cuando habla de instalación gráfica, se refiere a gráfica de verdad.

Antes de nada, lo primero será descargar la imagen del disco de instalación.

  1. Vamos a la web de haiku-os y vemos un botón enorme de «descarga» en el centro de la página.

    Captura_haiku-descarga.png
  2. Pinchamos en ese botón gordo de downloads y descargamos la iso que nos vaya bien:

    Captura_haiku-download-iso.png
  3. Copiamos la iso donde queramos crear la máquina virtual. En mi caso la he puesto junto con la de Guix en el mismo directorio:

    ~/qemu-vm $ ls -lah
    total 9.9G
    drwxr-xr-x   1 notxor         notxor    270 2022-03-03 09:46 .
    drwx------   1 notxor         notxor   1.3k 2022-03-03 10:02 ..
    -rw-r--r--   1 notxor         notxor   612M 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso
    -rw-r--r--   1 notxor         notxor    833 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso.sig
    -rw-r--r--   1 notxor         notxor   8.6G 2022-03-03 09:51 guix-system.img
    -rw-r--r--   1 notxor         notxor   719M 2022-03-01 22:13 haiku-r1beta3-x86_64-anyboot.iso
    ~/qemu-vm $
    

Si queréis probarlo antes de instalarlo, el disco de Haiku también funciona, si la copiamos en un USB o la quemamos en un disco, como sistema de prueba. Arrancando desde esa unidad nos deja probarlo sin instalar nada.

Proceso de instalación de Haiku-os

En este caso, como lo voy a hacer en una máquina virtual, no me preocupa tanto probarlo, lo haré desde qemu, lo podré trastear, configurar a mi gusto y comprobar su estabilidad con una instalación más permanente.

Pero vamos ya con la instalación. Lo primero es crear el disco virtual para instalar Haiku-OS en él.

qemu-img create -f qcow2 haiku-os.img 50G

El resultado es un archivo haiku-os.img de 193kb en el que haremos la instalación.

~/qemu-vm $ ls -lah
total 9.9G
drwxr-xr-x   1 notxor         notxor    294 2022-03-05 08:54 .
drwx------   1 notxor         notxor   1.3k 2022-03-05 08:49 ..
-rw-r--r--   1 notxor         notxor   612M 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso
-rw-r--r--   1 notxor         notxor    833 2021-05-12  2021 guix-system-install-1.3.0.x86_64-linux.iso.sig
-rw-r--r--   1 notxor         notxor   8.6G 2022-03-03 09:51 guix-system.img
-rw-r--r--   1 notxor         notxor   193k 2022-03-05 08:54 haiku-os.img
-rw-r--r--   1 notxor         notxor   719M 2022-03-01 22:13 haiku-r1beta3-x86_64-anyboot.iso
~/qemu-vm $ 

De manera similar a como se hizo la instalación de Guix, tenemos que arrancar qemu con el dispositivo montando la iso al arrancar y el img preparado como disco duro donde meteremos la instalación. Por tanto el comando es muy similar al utilizado anteriormente:

qemu-system-x86_64 -m 2048 -smp 1 -enable-kvm \
                   -nic user,model=virtio-net-pci -boot menu=on,order=d \
                   -drive file=haiku-os.img \
                   -drive media=cdrom,file=haiku-r1beta3-x86_64-anyboot.iso

Como ya expliqué cada parte de este comando al instalar Guix no volveré a repetiré el significado de cada uno, os remito a la explicación más arriba.

Arrancamos el sistema desde línea de comandos:

Captura_inicio-instalacion.png

Tras arrancar nos pregunta el idioma en el que queremos trabajar y nos permite seleccionar también la distribución del teclado. A continuación, podemos seleccionar si queremos instalarlo o simplemente probarlo, como dije antes.

Captura_haiku-idioma.png

En mi caso, quiero instalar Haiku, por ello seleccioné el botón correspondiente. Tras pulsarlo, nos aparece una ventana de información importante, especialmente si quieres instalar Haiku en un dispositivo físico en lugar de en uno virtual. Dándonos la oportunidad de seguir adelante o salir de la instalación.

Captura_haiku-info.png

Como he decidido continuar, me pregunta en qué dispositivo quiero instalarlo.

Captura_haiku-seleccion-dispositivo.png

Aunque tenemos preparada un dispositivo virtual para instalarlo, Haiku no lo detecta. Tenemos que formatearlo con el sistema de particiones de BeOS.

Captura_haiku-ir-configurar-particiones.png

Para ello, particionamos el disco duro que nos aparece el primero en la lista, de tamaño 50Gb que tenemos preparado.

Captura_haiku-particionador-disco.png

Debemos seleccionarlo en la lista y darle a la partición el formato Be File System.

Captura_haiku-dar-formato-disco.png

Después de haberlo hecho, ya nos aparece en la lista de dispositivos destino nuestro disco duro.

Captura_haiku-seleccionar-destino.png

El proceso de instalación es rapidísimo... tanto que no dio tiempo a tomar un pantallazo durante el tiempo de espera. En unos segundos pidió ya el reiniciar con el sistema operativo ya instalado.

Captura_haiku-instalacion-reinicio.png

Igual que antes, para reiniciar, hay que extraer la unidad de instalación. Cuando es física, simplemente la sacamos de su localización y reiniciamos. Pero al ser virtual, lo tenemos que hacer desde la línea de comandos, eliminando las partes no deseadas, como antes.

Por último, el software que provee el disco de instalación puede tener ya algo de tiempo y es conveniente actualizarlo. Para ello, entre las aplicaciones que vienen instaladas está el «actualizador de software»

Captura_haiku-actualizar-software.png

También puedes instalar muchas más aplicaciones para Haiku, con la aplicación HaikuDepot:

Captura_haiku-depot.png

Adivinad, cuál ha sido la primera que he instalado, no lo digo, os lo enseño:

Captura_haiku-emacs.png

Conclusiones

La virtualización me va a permitir probar cosas sin ensuciar el sistema operativo instalado en mi máquina. Aún poniendo atención, cuando probamos cosas, no siempre nos deshacemos de la «basura» que va quedando, esas librerías y dependencias que instala el sistema y que cuando lo desinstalamos, se quedan huérfanas en el disco.

De momento, y por comprobar, ambos sistemas operativos que quería probar están funcionando correctamente. Incluso me han permitido utilizar toda la pantalla del portátil y trabajar en modo pantalla completa es posible.

Me ha sorprendido la ligereza y rapidez de Haiku-os, no lo recordaba tan fluido, quizá también porque cuando lo probé, hace unos años había bastante menos máquina.

Captura_haiku-prueba-resolucion.png

La demo de la tetera me funciona a 1.102 fps, ocupa poco espacio con lo básico instalado:

~/qemu-vm $ ls -lh
total 9.4G
-rw-r--r--   1 notxor         notxor   8.6G 2022-03-03 09:51 guix-system.img
-rw-r--r--   1 notxor         notxor   822M 2022-03-05 10:17 haiku-os.img
~/qemu-vm $

No llega al giga y trae todo el sistema gráfico integrado, herramientas de programación, las habituales de todo sistema operativo:

  • Gestor de ficheros
  • Lanzador de aplicaciones
  • Editor de textos básico (trae también un UI para programación con debugger incluido)
  • Visor de procesos y recursos del sistema
  • Terminal
  • Navegador web gráfico
  • ...

Haiku promete ser frugal con los recursos y puede ser una buena alternativa para máquinas antiguas. Habría que comprobar cómo llevan el tema de los drivers, las compatibilidades con el hardware y el tema de la seguridad. De momento es un sistema operativo que aún no es multiusuario, no hay usuario root o similar. Aunque ya mantiene separados dos apartados /system y /home. Hay que recordar, que Haiku como BeOS, no es Unix. Aunque sí cumple el estándar posix. No hay que dejarse engañar porque en su terminal utilice bash o porque su lista de aplicaciones sea muy similar a cualquier lista de paquetes de una distro GNU/Linux... no. No es el objetivo de Haiku convertirse en un núcleo para GNU, sino el hacer un sistema operativo usable, agradable, rápido y multitarea. Mi primera impresión es que lo están consiguiendo.

De Guix hablo menos, porque es una distro GNU/Linux y por tanto es todo muy parecido lo que ya conocemos. Me ha llamado la atención la sencillez del instalador.

Por último, para trabajar con los sistemas virtualizados, me he creado dos comandos para lanzarlos que he situado en mi ~/opt/bin para llamarlos como un comando o aplicación más:

  • Para Guix con nombre guix-os:

    #! /usr/bin/bash
    
    cd ~/qemu-vm
    qemu-system-x86_64 -m 2048 -smp 1 -enable-kvm \
                       -nic user,model=virtio-net-pci -boot menu=on \
                       -drive file=guix-system.img 
    
  • Para Haiku con nombre haiku-os:

    #! /usr/bin/bash
    
    cd ~/qemu-vm
    qemu-system-x86_64 -m 2048 -smp 1 -enable-kvm \
                       -nic user,model=virtio-net-pci \
                       -drive file=haiku-os.img
    

En el siguiente capítulo, quiero comparar el gasto de recursos y rendimiento entre ambos sistemas e improvisar un pequeño banco de pruebas para ello. Aunque es complicado, pues la mayor diferencia es la sensación que transmiten al usarse y lo perdido que vas con el SO al que menos acostumbrado estás.

Categoría: qemu guix virtualización emacs exwm

Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en esta cuenta de Mastodon, también en esta otra cuenta de Mastodon y en Diaspora con el nick de Notxor.

Si usas habitualmente XMPP (si no, te recomiendo que lo hagas), puedes encontrar también un pequeño grupo en el siguiente enlace: notxor-tiene-un-blog@salas.suchat.org

Disculpen las molestias.