เวอร์ชันใหม่ของ Box86 และ Box64 ได้รับการเผยแพร่แล้ว

เมื่อเร็ว ๆ นี้ การเปิดตัวของ เวอร์ชันใหม่ของ Box86 0.2.6 และ Box64 0.1.8 อีมูเลเตอร์. โครงการได้รับการพัฒนาโดยทีมพัฒนาเดียวกัน

Box86 ถูกจำกัดให้รันแอปพลิเคชัน x86 แบบ 32 บิตเท่านั้น (เช่นเกม) บนระบบ Linux ที่ไม่ใช่ x86 เช่น ARM (ระบบโฮสต์ต้องเป็น little-endian 32 บิต) ดังนั้น ระบบย่อย 32 บิตจึงจำเป็นต้องรันและคอมไพล์ Box86 Box86 ไม่มีประโยชน์ในระบบ 64 บิตเท่านั้น นอกจากนี้ คุณต้องมี toolchain 32 บิตเพื่อคอมไพล์ Box86

เนื่องจาก Box86 ใช้ไลบรารี "ระบบ" เวอร์ชันดั้งเดิม เช่น libc, libm, SDL และ OpenGL จึงง่ายต่อการผสานรวมและใช้กับแอปพลิเคชันส่วนใหญ่ และประสิทธิภาพอาจสูงอย่างน่าประหลาดใจในหลายกรณี

เช่นเดียวกับ Box64 เท่านั้นและอนุญาตให้ รันโปรแกรมเรียกทำงาน 64 บิต. โปรเจ็กต์นี้ให้ความสำคัญอย่างมากกับการจัดวางแอพพลิเคชั่นเกม รวมถึงความสามารถในการปล่อยบิลด์ Windows ผ่าน Wine และ Proton

คุณลักษณะของโครงการคือการใช้แบบจำลองการดำเนินการแบบไฮบริดซึ่งการจำลองนี้ใช้กับรหัสเครื่องของแอปพลิเคชันเองและไลบรารีเฉพาะเท่านั้น ไลบรารีระบบทั่วไป รวมถึง libc, libm, GTK, SDL, Vulkan และ OpenGL จะถูกแทนที่ด้วยตัวแปรดั้งเดิมบนแพลตฟอร์มเป้าหมาย ดังนั้น การเรียกไลบรารีจึงถูกดำเนินการโดยไม่มีการจำลอง ซึ่งทำให้ประสิทธิภาพเพิ่มขึ้นอย่างมาก

การจำลองโค้ดที่ไม่มีการแทนที่แบบเนทีฟสำหรับแพลตฟอร์มเป้าหมายทำได้โดยใช้เทคนิคการคอมไพล์ซ้ำแบบไดนามิก (DynaRec) จากคำสั่งเครื่องชุดหนึ่งไปยังอีกชุดหนึ่ง เมื่อเทียบกับการแปลคำสั่งเครื่อง การคอมไพล์ใหม่แบบไดนามิกแสดงประสิทธิภาพที่ดีขึ้น 5-10 เท่า

ในการทดสอบประสิทธิภาพเมื่อทำงานบนแพลตฟอร์ม Armhf และ Aarch64 ตัวจำลอง Box86 และ Box64 มีประสิทธิภาพเหนือกว่าโปรเจ็กต์ QEMU และ FEX-emu อย่างมาก และในการทดสอบบางอย่าง (glmark2, openarena) พวกเขาได้รับประสิทธิภาพที่เหมือนกับการรันแอสเซมบลีเนทีฟกับแพลตฟอร์มเป้าหมาย

ในแง่ของความเข้ากันได้ ของแอปพลิเคชัน dจากการทดสอบ 165 เกม ประมาณ 70% ประสบความสำเร็จ ทำงานเพิ่มขึ้นประมาณ 10% แต่มีการจองและข้อจำกัดบางอย่าง

จากเกมที่พบปัญหามีการกล่าวถึงเกมที่ใช้เอนจิ้น Unity3D ซึ่งเชื่อมโยงกับแพ็คเกจ Mono ซึ่งการจำลองยังคงไม่ทำงานเสมอไปเนื่องจากการคอมไพล์ JIT ที่ใช้ใน Mono และยังมีข้อกำหนดกราฟิกที่ค่อนข้างสูง ที่ไม่สามารถทำได้บนบอร์ด ARM การแทนที่ไลบรารีแอปพลิเคชัน GTK ในปัจจุบันจำกัดไว้ที่ GTK2 (การแทนที่ GTK3/4 ยังไม่ได้รับการใช้งานอย่างสมบูรณ์)

ส่วน การเปลี่ยนแปลงหลักในการเปิดตัวใหม่จะมีการเน้นสิ่งต่อไปนี้:

  • เพิ่มลิงค์สำหรับห้องสมุด Vulkan เพิ่มการรองรับ API กราฟิก Vulkan และ DXVK (การใช้งาน DXGI, Direct3D 9, 10 และ 11 บน Vulkan)
  • ปรับปรุงการเชื่อมโยงสำหรับไลบรารี GTK เพิ่มการผูกสำหรับ gstreamer และไลบรารีที่ใช้ทั่วไปในแอปพลิเคชัน GTK
  • เพิ่มการสนับสนุนเริ่มต้น (จนถึงตอนนี้เฉพาะโหมดตีความ) สำหรับสถาปัตยกรรม RISC-V และ PPC64LE
  • แก้ไขข้อผิดพลาดเพื่อปรับปรุงความเข้ากันได้กับ SteamPlay และ Proton Layer เป็นไปได้ที่จะเรียกใช้เกม Linux และ Windows จำนวนมากจาก Steam บนบอร์ด AArch64 เช่น Raspberry Pi 3 และ 4
  • ปรับปรุงการจัดการหน่วยความจำ ลักษณะการทำงานของ mmap และการตรวจสอบการละเมิดการป้องกันหน่วยความจำ
  • ปรับปรุงการรองรับการเรียกระบบโคลนใน libc เพิ่มการรองรับการเรียกระบบใหม่
  • ในเอ็นจินการคอมไพล์ใหม่แบบไดนามิก การทำงานกับรีจิสตรี SSE/x87 ได้รับการปรับปรุง เพิ่มการรองรับรหัสเครื่องใหม่ เพิ่มโฟลตและการแปลงแบบคู่ การประมวลผลสาขาภายในได้รับการปรับปรุง การสนับสนุนที่ง่ายขึ้นสำหรับสถาปัตยกรรมใหม่
  • ปรับปรุงตัวโหลดไฟล์ ELF

สุดท้ายนี้ หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม สามารถปรึกษารายละเอียด ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา