Hace unos días me topé con un artículo que me dejó literalmente con la boca abierta. No es que sea nuevo - en realidad es de enero de 2026, pero bueno, a veces llega tarde a mi radar - pero la combinación de tecnologías y la historia detrás me parecen fascinantes.
Se trata de TinyEMU-Go: un emulador de RISC-V escrito completamente en Go, portado desde C usando Claude. Y lo mejor: puedes ejecutar un Linux completo con un solo comando.
La línea de comando que me dio envidia
Si tienes Go instalado, puedes hacer esto:
go run github.com/jtolio/tinyemu-go/temubox/example@2c8151233c2d
Y boom, tienes un Linux completo corriendo. Sin permisos especiales, sin contenedores, sin dependencias raras. Funciona en macOS, Windows y Linux. Un binario estático, puro Go.
Si esto no te hace decir “wow”, creo que estamos en el negocio equivocado.
El contexto: TinyEMU y Fabrice Bellard
Para apreciar realmente esto, hay que entender de dónde viene. TinyEMU es un emulador de sistemas RISC-V y x86 creado por Fabrice Bellard.
Si el nombre no te suena, deberías investigarlo. Bellard es uno de esos ingenieros que parece capaz de hacer cualquier cosa. Es el creador de FFmpeg, QEMU (junto con otros), y el proyecto de computación cuántica de Google. TinyEMU en particular es notable por ser pequeño y simple pero completo - soporta incluso RISC-V de 128 bits, algo que no encontrarás en la mayoría de emuladores mainstream.
Lo que JT Olio (el autor del port a Go) hizo fue pedirle a Claude que portara TinyEMU desde C a Go. Y Claude lo hizo. Todo el emulador de CPU, todos los dispositivos VirtIO, incluyendo el soporte de sistema de archivos P9 entre host e invitado, e incluso gran parte del stack de networking SLIRP.
Por qué esto me parece tan interesante
1. La pura hazaña técnica
Portar un emulador de sistema completo no es trivial. Estamos hablando de:
- Emulación de CPU RISC-V (con todos sus instrucciones y modos)
- Gestión de memoria (MMU)
- Dispositivos VirtIO (para I/O virtualizado)
- Stack de red completo
- Sistema de archivos 9P
Y todo transliterado de C a Go. Sin usar CGo. Puro Go.
2. El proceso de desarrollo con IA
Lo que más me gusta de este proyecto no es el resultado, sino la historia del desarrollo. JT documenta su experiencia working con Claude en múltiples sesiones, y es brutalmente honesto sobre los problemas:
El 80% inicial fue espectacular - Claude portó la CPU, escribió tests, consiguió que Linux arrancara. JT dice que estaba “pegado a su pantalla” viendo cómo progresaba.
El 20% final fue una pesadilla - Linux arrancaba pero no montaba initrd. El stack de red estaba “incompleto” (Claude lo había dejado para después). El código parecía desarrollado por “mapaches en un abrigo”.
Lo que me resuena especialmente es la descripción de JT sobre la frustración del último 20%: cuando la IA se atasca, tú no has estado escribiendo código, así que no tienes el contexto mental para depurarlo. Estás mirando un códigobase extraño pensando “¿pero qué ha pasado aquí?”.
3. Las lecciones aprendidas
JT compartió algunas reflexiones que me parecen oro puro:
- Limpiar la sesión y empezar con contexto fresco a menudo - Esto ya es consejo estándar, pero es tu trabajo mantener la tarea concisa y relevante.
- Explicitar repetidamente que se creen tickets para problemas nuevos - Los humanos instintivamente sabemos cuándo informar de problemas desviados del plan. La IA no tanto.
- Ocasionalmente dar dos pasos atrás y replantear el enfoque - Varias sesiones atascadas en lo mismo necesitan una perspectiva holística nueva.
- Cualquier área con ambigüedad será explotada - Y la ambigüedad se creará de todas formas. Prepárate.
Y mi favorita: “No esperes que Claude haga APIs cohesivas across sesiones”.
JT terminó envolviendo el código generado por Claude en una API diseñada por humanos (github.com/jtolio/tinyemu-go/temubox) porque programar contra una API diseñada por Claude le resultaba “extremadamente uncanny-valley”.
RISC-V y por qué importa
Estamos en un momento interesante para RISC-V. La arquitectura abierta está ganando traction, y tener emuladores ligeros y portables es crucial para el desarrollo y testing.
Lo que TinyEMU-Go ofrece es:
- Portabilidad - Corre donde Go corre
- Simplicidad - Un solo binario, sin dependencias nativas
- Complejidad razonable - A diferencia de QEMU, que es un monstruo de complejidad
Mi curiosidad personal
Lo que más me atrae de este proyecto es cómo representa la intersección de varias tendencias:
- RISC-V como alternativa abierta a ARM y x86
- Go como lenguaje de sistemas - cada vez más presente en infraestructura
- IA como herramienta de desarrollo - no para reemplazar al desarrollador, sino para amplificar su capacidad
Pero también, la honestidad del artículo de JT sobre las limitaciones actuales. No es un post de “la IA lo arregla todo”. Es un relato honesto de qué funciona bien (portar código relativamente mecánico) y qué no (depuración de sistemas complejos, APIs cohesivas, los últimos detalles malditos).
Recursos para explorar
Si esto te ha picado la curiosidad como a mí:
- Artículo original de JT Olio - Una lectura obligada, muy honesta y detallada
- Repositorio tinyemu-go - El código completo
- TinyEMU original - La fuente en C de Fabrice Bellard
- Otros emuladores RISC-V en Go - Por si quieres comparar enfoques
Reflexiones finales
Lo que me lleva pensando sobre TinyEMU-Go no es solo la hazaña técnica - que lo es - sino qué nos dice sobre el estado actual del desarrollo asistido por IA.
El 80% rápido, el 20% brutal. La promesa y la realidad. La necesidad de intervención humana experta en momentos críticos. La importancia de tener un plan claro, tests exhaustivos, y expectations realistas.
Como dice JT al final: “este proyecto simultáneamente me ha hecho más y menos entusiasta sobre el coding con LLMs”.
Yo añadiría: más entusiasta sobre las posibilidades, menos entusiasta sobre el hype. Y mucho más curioso sobre qué vendrá después.
Un simple go run y tienes Linux en tu máquina. No está mal para 2026.
Este artículo ha surgido de mi curiosidad por este proyecto y el artículo original de JT Olio. Me ha parecido un caso de uso fascinante de IA en el desarrollo real, con todas sus luces y sombras.
Fuentes:











Comentarios