• Autor de la entrada:
  • Categoría de la entrada:Noticia
  • Tiempo de lectura:5 minutos de lectura
Anuncios


Linux es un núcleo de sistema operativo libre y de código abierto creado por Linus Torvalds en 1991. A diferencia de Windows o macOS, Linux no pertenece a ninguna empresa, sino que se desarrolla gracias a las contribuciones de programadores de todo el planeta.

Esta naturaleza colaborativa permite que cualquier persona pueda examinar su código, modificarlo y mejorarlo según sus necesidades.

Aunque muchos usuarios no lo sepan, Linux funciona como base de innumerables aparatos que usamos a diario. Desde los servidores que alojan nuestras páginas web favoritas hasta los teléfonos Android, pasando por televisores inteligentes, routers y hasta electrodomésticos conectados. Su versatilidad y robustez lo han posicionado como la opción preferida para entornos que requieren estabilidad y seguridad.

Para quienes desean probar Linux en sus ordenadores personales, existen cientos de distribuciones (versiones adaptadas) con diferentes características y enfoques. Ubuntu, Linux Mint o Fedora son algunas de las más populares para principiantes, ofreciendo interfaces gráficas intuitivas y amplia compatibilidad con el hardware actual. El salto desde otros sistemas operativos puede suponer cierta curva de aprendizaje, pero la comunidad de usuarios activa y dispuesta a ayudar facilita enormemente esta transición.

Ahora, un desarrollador ha llevado Linux a un lugar inesperado: dentro de un archivo PDF. Este proyecto llamado LinuxPDF muestra las capacidades ocultas de los archivos PDF y la flexibilidad del sistema operativo Linux.

El desarrollador ading2210 ha creado LinuxPDF, un proyecto que permite ejecutar Linux dentro de un archivo PDF mediante un emulador RISC-V basado en TinyEMU. Puedes probarlo accediendo a linux.pdf, como indica el repositorio de GitHub del proyecto.

Este logro técnico funciona de manera similar al proyecto anterior del mismo desarrollador, DoomPDF. Al contrario de lo que muchos creen, los archivos PDF no están limitados a documentos estáticos, sino que el formato admite JavaScript con su propia biblioteca estándar. Los navegadores modernos como Chrome y Firefox incluyen esta función como parte de sus motores PDF.

La clave está en que el código C puede compilarse para funcionar dentro de un PDF usando una versión antigua de Emscripten que usa asm.js en lugar de WebAssembly. Con esto, el desarrollador ha compilado una versión modificada del emulador RISC-V TinyEMU a asm.js, que puede ejecutarse dentro del PDF.

Desafíos y limitaciones

El mayor problema al usar LinuxPDF es la velocidad del emulador. El kernel de Linux tarda entre 30 y 60 segundos en iniciarse dentro del PDF, lo que es más de 100 veces más lento que lo normal. No hay manera de arreglar esto, ya que la versión de V8 que usa el motor PDF de Chrome tiene desactivado su compilador JIT, lo que reduce mucho el rendimiento.

Anuncios

Para mostrar la imagen en pantalla, el proyecto usa un campo de texto separado para cada fila de píxeles, con caracteres ASCII que forman la imagen. Para las entradas, hay un teclado virtual con botones y un cuadro de texto donde puedes escribir para enviar pulsaciones de teclas a la máquina virtual.

El sistema tiene versiones de 32 y 64 bits disponibles. La versión estándar es un sistema buildroot de 32 bits (tomado de los ejemplos originales de TinyEMU), y también hay un sistema Alpine Linux de 64 bits, aunque este último es aproximadamente dos veces más lento.

¿Quieres saber más? Únete a los canales oficiales de Facialix:


Cómo construir LinuxPDF

Si quieres crear tu propia versión de LinuxPDF, puedes clonar el repositorio y ejecutar estos comandos:

python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
./build.sh

El script build.sh descargará automáticamente Emscripten 1.39.20. Necesitas usar Linux para compilar este proyecto. Los archivos generados estarán en la carpeta out/. Luego puedes ejecutar (cd out; python3 -m http.server) para servir los archivos en un servidor web.

Este proyecto, con licencia GNU GPL v3, es obra de ading2210, mientras que el emulador RISC-V está basado en TinyEMU, creado por Fabrice Bellard.

¿Te animas a probar Linux dentro de un PDF? ¿Conoces otros usos inusuales de formatos de archivos comunes? Comparte tu experiencia.


Julio

Mi objetivo es ayudar en el aprendizaje de los demás, y jugar Halo en mi tiempo libre.