وفي وقت سابق، قام أحد المطورين بتغليف لعبة Tetris في ملف PDF منفصل. في الواقع، من غير الدقيق جدًا القول بأنها مغلفة، لأن اللعبة تم تطويرها بالفعل وفقًا لقواعد Tetris من خلال ملف PDF، بدلاً من تغليف اللعبة الحالية في ملف PDF.

توجد الآن طريقة جديدة لتغليف نظام Linux في ملف PDF وتشغيله. نجح المطور vk6_ في تجميع محاكي RISC-V في JavaScript. يدعم تنسيق ملف PDF JavaScript وله مكتبة قياسية خاصة به، لذلك يتم استخدام هذا المحرك لتشغيل نظام Linux.

قال المطور vk6_ في منشور في منتدى Reddit:

قد تعتقد أن ملفات PDF تتكون فقط من ملفات ثابتة، ولكن من المدهش أن تنسيق ملف PDF يدعم JavaScript وله مكتبة قياسية مستقلة خاصة به، والتي تنفذها المتصفحات الحديثة مثل Chromium وFirefox كجزء من محرك PDF.

لكن واجهة برمجة التطبيقات المتوفرة في المتصفح محدودة للغاية، ولكن القدرة على إجراء أي نوع من العمليات الحسابية داخل ملف PDF لا تتطلب سوى بعض عمليات الإدخال والإخراج المحدودة للغاية.

باستخدام الإصدار القديم من Emscripten (الذي يستهدف asm.js بدلاً من WebAssembly) لتجميع كود C لتشغيله في PDF، يمكننا تجميع محاكي TinyEMURISC-V المعدل إلى asm.js ثم تشغيله في PDF.

ومن حيث الإدخال، أضاف المطور لوحة مفاتيح افتراضية يمكن النقر عليها بالماوس، كما أضاف أيضًا مربع نص. عند إدخال محتوى في مربع النص، سيتم تحويله إلى عمليات تظهر على الشاشة. على سبيل المثال، يمكنك تغيير كلمة المرور عند الضغط على passwd والضغط على Enter في مربع الإدخال.

يتكون محتوى الإخراج من حقل نصي يتكون من وحدات بكسل لكل سطر، والذي يحتوي على أحرف ASCII التي تشكل صورة كبيرة. يجب أن يقال أن المطورين قد لعبوا بالفعل بتنسيق PDF.

يمكن للمستخدمين المهتمين الاطلاع على هذا المشروع: https://github.com/ading2210/linuxpdf

نموذج المشروع: https://linux.doompdf.dev/linux.pdf