El proyecto de código abierto permite ejecutar aplicaciones tradicionales de PC en hardware RISC-V gracias a emulación en espacio de usuario y recompilación en tiempo real
La comunidad de RISC-V cuenta con una nueva herramienta prometedora. Se trata de felix86, un emulador en espacio de usuario para Linux que permite ejecutar programas y videojuegos diseñados para arquitecturas x86 y x86-64 en sistemas con procesadores RISC-V. Aunque aún se encuentra en una etapa temprana de desarrollo, ya puede ejecutar varias aplicaciones conocidas, e incluso algunos juegos, abriendo la puerta a una mayor compatibilidad y aprovechamiento de la arquitectura abierta RISC-V.
¿Qué es felix86 y cómo funciona?
felix86 es una utilidad diseñada para emular instrucciones x86/x86-64 sobre CPUs RISC-V usando técnicas modernas como la recompilación Just-in-Time (JIT). Esta técnica traduce dinámicamente el código x86 a instrucciones RISC-V durante la ejecución, permitiendo un rendimiento razonable sin necesidad de virtualización completa.
Entre sus principales características técnicas destacan:
- Uso de extensiones vectoriales RVV para ejecutar instrucciones SIMD como SSE.
- Compatibilidad con la extensión B para operaciones de bits (bit manipulation).
- Soporte para extensiones personalizadas como XThead, si están disponibles en el hardware.
- Posibilidad de utilizar bibliotecas nativas del sistema anfitrión para mejorar el rendimiento.
Este enfoque permite que los binarios x86 se comporten como si fuesen aplicaciones nativas en un sistema RISC-V.
Instalación rápida y sencilla
Instalar felix86 es tan simple como ejecutar un script en terminal. Funciona en Ubuntu, Debian y distribuciones derivadas:
curl -s https://raw.githubusercontent.com/OFFTKP/felix86/master/src/felix86/tools/install.sh -o /tmp/felix86_install.sh && bash /tmp/felix86_install.sh && rm /tmp/felix86_install.sh
El script descarga e instala el emulador y un sistema de archivos raíz (rootfs) con las bibliotecas necesarias para ejecutar programas x86. Una vez instalado, es posible iniciar una terminal emulada con:
FELIX86_QUIET=1 felix86 /bin/bash
Desde esa consola, se pueden ejecutar juegos, utilidades o incluso gestores de paquetes para instalar más software compatible con x86/x86-64.
Compatibilidad, requisitos y recomendaciones
felix86 está pensado para funcionar en procesadores RISC-V de 64 bits que soporten extensiones vectoriales (RVV 1.0) y tengan un VLEN de al menos 256 bits. Está optimizado para placas de desarrollo avanzadas, y ya tiene una lista de compatibilidad de juegos y aplicaciones.
Algunas recomendaciones importantes para su uso:
- El entorno no es un sandbox: ejecutar solo software confiable.
- Para Unity y ciertos juegos, puede ser necesario usar
FELIX86_ALWAYS_TSO=1
. - Si el sistema tiene GPU con drivers x86, se puede mejorar el rendimiento con
FELIX86_ENABLED_THUNKS=glx
. - Los logs se almacenan en
/tmp
.
El proyecto es bastante verboso por defecto, aunque se puede silenciar su salida con la variable FELIX86_QUIET=1
o editando el archivo ~/.config/felix86/config.toml
.
Un emulador con espíritu educativo
Su desarrollador, conocido como OFFTKP, inició felix86 como un proyecto personal para aprender más sobre emulación, compiladores optimizadores, señales de Linux, llamadas al sistema y arquitectura de procesadores. De paso, logró una hazaña técnica: acercar el extenso mundo del software x86 a una arquitectura emergente como RISC-V.
Además, felix86 se apoya en tecnologías y librerías como:
- FEX para pruebas de compatibilidad,
- Biscuit para generación de código RISC-V,
- Zydis para desensamblado,
- y librerías modernas como
fmt
,nlohmann/json
ytoml11
.
Comunidad y futuro
Aunque está en desarrollo activo, felix86 ya cuenta con una pequeña comunidad en Discord (enlace aquí) y su código fuente está disponible públicamente en GitHub:
🔗 https://github.com/OFFTKP/felix86
La meta a largo plazo es lograr ejecutar una mayor cantidad de aplicaciones de escritorio y juegos, incluido soporte preliminar para plataformas como Steam. No todos los títulos funcionan aún, pero los avances son prometedores.
RISC-V gana fuerza
Con iniciativas como esta, la arquitectura RISC-V refuerza su posición como alternativa viable al ecosistema cerrado de x86 y Arm. Si bien felix86 aún está en fase experimental, demuestra que es posible acercar el vasto legado de software de PC a una plataforma abierta, flexible y sin royalties.
En el futuro, proyectos como felix86 podrían ser clave para la adopción generalizada de RISC-V en ordenadores personales, entornos educativos e incluso gaming en Linux.
Más información: felix86 en messenger.es