17 คะแนน โดย xguru 2025-02-05 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • โดยทั่วไปมักคิดว่าไฟล์ 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 ความคิดเห็น

 
xcutz 2025-02-06

บ้าพอๆ กับ Doom เลย ลินุกซ์ 555

 
tsboard 2025-02-05

นี่มันโรแมนติกหรือความบ้าคลั่งกันแน่ โอ้โห

 
kuthia 2025-02-05

ว้าว...

 
kaydash 2025-02-05

ว้าว......