17 poin oleh xguru 2025-02-05 | 4 komentar | Bagikan ke WhatsApp
  • Secara umum, file PDF mudah dianggap sebagai dokumen statis, tetapi sebenarnya memiliki fitur yang mendukung Javascript
    • Standar PDF memiliki pustaka standar Javascript tersendiri
    • Browser modern seperti Chromium dan Firefox hanya mengimplementasikan API yang sangat terbatas karena alasan keamanan
  • Hanya Adobe Acrobat yang mendukung spesifikasi penuh Javascript di dalam PDF, termasuk kemampuan yang sangat luas seperti 3D rendering, permintaan HTTP, dan pendeteksian semua monitor pengguna
  • Bahkan dengan API browser yang terbatas, logika komputasi yang diinginkan tetap bisa dijalankan, tetapi bagian IO sangat terbatas
  • Kode C dapat dikompilasi menjadi asm.js lalu dijalankan di dalam PDF
    • Menggunakan versi lama Emscripten yang mendukung target asm.js (seperti 1.39.20)
    • Emulator RISC-V TinyEMU dimodifikasi agar dapat dikompilasi ke asm.js, lalu dijalankan di PDF
  • Metode output layar dan input sama seperti yang digunakan di DoomPDF (menjalankan Doom di dalam PDF)
    • Layar menggunakan satu bidang teks untuk setiap baris, dan menampilkan status piksel dengan karakter ASCII
    • Input meneruskan penekanan tombol ke VM melalui keyboard virtual dan kotak teks
  • Masalah performa cukup besar
    • Contoh: boot kernel Linux memerlukan sekitar 30–60 detik, dan lebih dari 100 kali lebih lambat dibanding eksekusi normal
    • V8 pada mesin PDF Chrome menonaktifkan JIT, sehingga performa turun drastis
  • Root filesystem dapat dipilih untuk 64-bit atau 32-bit
    • Secara default menggunakan sistem Buildroot 32-bit (asalnya diambil dari contoh TinyEMU)
    • Ada juga versi Alpine Linux 64-bit, tetapi umumnya tidak digunakan karena performanya sekitar 2 kali lebih lambat

4 komentar

 
xcutz 2025-02-06

Tingkat kegilaannya setara Doom, Linux wkwk

 
tsboard 2025-02-05

Apakah ini romantisme atau kegilaan wkwkwk

 
kuthia 2025-02-05

wow...

 
kaydash 2025-02-05

Wah......