
ARTDEPARTMENT

En el campo de la informática, a veces somos testigos de innovaciones sorprendentes como, qué sé yo, la posibilidad de ejecutar un sistema Linux completo adentro de un archivo PDF (este PDF, en concreto). Poco así carece, claro, aplicaciones prácticas inmediatas adecuado a sus limitaciones de rendimiento y entrada/salida, pero sienta un precedente en el mundo de la competición y la experimentación con formatos de archivo.
Y este logro se lo debemos al desarrollador (adolescente, según su perfil de GitHub) que hace sólo unos días creó todavía 'DoomPDF', el plan que permite, como su nombre indica, divertirse al histórico 'Doom' adentro de un documento PDF.
De hecho, nuestro protagonista ha reutilizado parte de ese trabajo para dar vida a este nuevo plan: basado en el competidor baladí TinyEMU, que permite aparentar arquitecturas de hardware (en este caso, un procesador RISC-V), este indagación demuestra la flexibilidad del formato PDF más allá de su uso tradicional.
Lo que se aplazamiento de los archivos PDF es que contengan meros documentos estáticos, pero este plan desafía esa idea preconcebida al demostrar que los PDF pueden ejecutar JavaScript. Los navegadores modernos, como Chromium y Firefox, han implementado una traducción limitada de las API de JavaScript en PDF, permitiendo cierto punto de interactividad.

Adobe Acrobat, por otro flanco, ofrecería una implementación aún más completa de JavaScript, con funcionalidades avanzadas (como renderización 3D y peticiones HTTP), aunque las mismas no están presentes en navegadores adecuado a potenciales problemas de seguridad.
De modo que, gracias a este soporte, es posible realizar cálculos y ejecutar código adentro de un PDF, aunque con restricciones en la entrada y salida de datos. Esto ha permitido portar un competidor de RISC-V al entorno PDF, convirtiéndolo en una máquina aparente eficaz adentro de un archivo.
El competidor TinyEMU, almohadilla de este plan, fue modificado para ejecutarse en el entorno restringido de un PDF. Esto se logró utilizando una traducción antigua de Emscripten, que permite inventariar código C a asm.js en oficio de WebAssembly. Como WebAssembly es incompatible con el entorno PDF circunscrito que proporcionan los navegadores, asm.js era la mejor alternativa apto.
Uno de los mayores obstáculos de este indagación ha sido el rendimiento. Correcto a que la implementación de V8 en el motor PDF de Chrome tiene el compilador JIT desactivado, la competición es extremadamente lenta. Iniciar el kernel de Linux adentro del PDF puede tomar entre 30 y 60 segundos, lo que es más de 100 veces más premioso que en condiciones normales.
El sistema de archivos raíz cuenta con versiones tanto de 32 como de 64 bits. Sin confiscación, la traducción de 64 bits basada en Alpine Linux es aproximadamente el doble de lenta que la de 32 bits, por lo que normalmente no se utiliza.
Encima, el sistema visual del competidor adentro del PDF se zócalo en el uso de campos de texto, donde cada fila de píxeles en la pantalla se representa con caracteres ASCII.
Y para la entrada de datos se ha implementado un teclado aparente con chico interactivos y un campo de texto donde el favorecido puede escribir, enviando así pulsaciones de teclas a la máquina aparente.

A pesar de los desafíos técnicos, el incremento de este plan fue sorprendentemente rápido. Gracias a la reutilización de partes del código de DoomPDF, incluyendo el script de procreación de PDF y partes de los scripts de compilación, el desarrollador logró completar el trabajo en tan solo 16 horas y 39 minutos...
...lo preciso del conteo se debe a que utilizó WakaTime, una extensión de VSCode, dedicada precisamente a registrar el tiempo dedicado a proyectos de programación.
Encima, la portabilidad de TinyEMU ya contemplaba compatibilidad con Emscripten, lo que facilitó su acondicionamiento al entorno PDF. La experiencia previa del desarrollador con Emscripten y otros proyectos complejos, como la portabilidad de SuperTuxKart, todavía contribuyó a la ligereza del incremento. Al enfocarse exclusivamente en Chromium, todavía se logró optimizar el proceso de pruebas y depuración.
Imagen | Marcos Merino mediante IA
En Genbeta | "A nuestros políticos les flipa el PDF". Es el mejor modo de ocultar cosas a plena apariencia, según denuncia este ciberactivista
Compartir este artículo
Consultoria Personalizada
¡Si aun no tienes presencia en internet o
necesitas ayuda con tus proyectos, por favor, escribenos!