- โดยทั่วไปมักคิดว่าไฟล์ PDF เป็นเอกสารแบบคงที่ แต่จริง ๆ แล้วมีความสามารถรองรับ Javascript อยู่ด้วย
- มาตรฐาน PDF มีไลบรารีมาตรฐาน Javascript ของตัวเอง
- เบราว์เซอร์สมัยใหม่อย่าง Chromium และ Firefox รองรับ API ได้เพียงอย่างจำกัดมากด้วยเหตุผลด้านความปลอดภัย
- มีเพียง Adobe Acrobat ที่รองรับสเปก Javascript ภายใน PDF ได้ครบถ้วน และยังมีความสามารถที่กว้างมาก เช่น 3D rendering, การส่งคำขอ HTTP, การตรวจจับมอนิเตอร์ทั้งหมดของผู้ใช้ เป็นต้น
- แม้อาศัย API ของเบราว์เซอร์ที่จำกัด ก็ยังสามารถทำตรรกะการคำนวณตามต้องการได้ แต่ส่วนของ IO จะถูกจำกัดอย่างมาก
- สามารถคอมไพล์โค้ด C เป็น asm.js แล้วนำไปรันภายใน PDF ได้
- ใช้ Emscripten เวอร์ชันเก่า (เช่น 1.39.20 ที่ยังรองรับเป้าหมาย asm.js)
- ปรับแต่ง TinyEMU RISC-V emulator ให้คอมไพล์เป็น asm.js และรันใน PDF ด้วยโครงสร้างนี้
- วิธีแสดงผลบนหน้าจอและการรับอินพุตเหมือนกับที่ใช้ใน DoomPDF (การรัน Doom ภายใน PDF)
- หน้าจอใช้หนึ่งบรรทัดต่อหนึ่ง text field และแสดงสถานะพิกเซลด้วยตัวอักษร ASCII
- อินพุตส่งการกดปุ่มเข้า VM ผ่านคีย์บอร์ดเสมือนและกล่องข้อความ
- เกิดปัญหาด้านประสิทธิภาพอย่างมาก
- ตัวอย่าง: การบูตเคอร์เนล Linux ใช้เวลาประมาณ 30~60 วินาที และช้ากว่าการรันปกติมากกว่า 100 เท่า
- V8 ในเอนจิน PDF ของ Chrome ปิดการทำงาน JIT ไว้ จึงทำให้ประสิทธิภาพลดลงมาก
- สามารถเลือกระบบไฟล์รูทสำหรับ 64 บิตหรือ 32 บิตได้
- ค่าเริ่มต้นใช้ระบบ Buildroot แบบ 32 บิต (นำมาจากตัวอย่างเดิมของ TinyEMU)
- มีเวอร์ชัน 64 บิตของ Alpine Linux ด้วย แต่ช้ากว่าประมาณ 2 เท่า จึงโดยทั่วไปไม่ค่อยใช้
4 ความคิดเห็น
บ้าพอๆ กับ Doom เลย ลินุกซ์ 555
นี่มันโรแมนติกหรือความบ้าคลั่งกันแน่ โอ้โห
ว้าว...
ว้าว......