Phiên bản mới của trình giả lập Box86 và Box64, cho phép bạn chạy game x86 trên hệ thống ARM

Các bản phát hành của trình giả lập Box86 0.2.6 và Box64 0.1.8 đã được xuất bản, được thiết kế để chạy các chương trình Linux được biên dịch cho kiến ​​trúc x86 và x86_64 trên thiết bị có bộ xử lý ARM, ARM64, PPC64LE và RISC-V. Các dự án được phát triển đồng bộ bởi một nhóm nhà phát triển - Box86 bị ​​giới hạn ở khả năng chạy các ứng dụng x32 86 bit và Box64 cung cấp khả năng chạy các tệp thực thi 64 bit. Dự án rất chú trọng đến việc tổ chức ra mắt các ứng dụng chơi game, bao gồm việc cung cấp khả năng khởi chạy các bản dựng Windows thông qua wine và Proton. Mã nguồn của dự án được viết bằng C và được phân phối (Box86, Box64) theo giấy phép MIT.

Một tính năng của dự án là sử dụng mô hình thực thi kết hợp, trong đó mô phỏng chỉ được áp dụng cho mã máy của chính ứng dụng và các thư viện cụ thể. Các thư viện hệ thống điển hình, bao gồm libc, libm, GTK, SDL, Vulkan và OpenGL, được thay thế bằng các tùy chọn dành riêng cho nền tảng đích. Bằng cách này, các lệnh gọi thư viện được thực thi mà không cần mô phỏng, mang lại hiệu suất tăng đáng kể.

Việc mô phỏng mã không có mã thay thế gốc cho nền tảng đích được thực hiện bằng cách sử dụng kỹ thuật biên dịch lại động (DynaRec) từ bộ hướng dẫn máy này sang bộ hướng dẫn máy khác. So với việc diễn giải các hướng dẫn của máy, việc biên dịch lại động cho thấy hiệu suất cao hơn 5-10 lần.

Trong các thử nghiệm hiệu năng, trình giả lập Box86 và Box64, khi được thực thi trên nền tảng Armhf và Aarch64, đã vượt trội đáng kể so với các dự án QEMU và FEX-emu, đồng thời trong các thử nghiệm riêng lẻ (glmark2, openarena), chúng đã đạt được hiệu suất giống như chạy một tổ hợp gốc cho mục tiêu nền tảng. Trong các thử nghiệm 7-zip và dav1d chuyên sâu về điện toán, hiệu suất của Box64 dao động từ 27% đến 53% hiệu suất của ứng dụng gốc (để so sánh, QEMU cho kết quả là 5-16% và FEX-emu - 13-26%). Ngoài ra, một so sánh đã được thực hiện với trình giả lập Rosetta 2, được Apple sử dụng để chạy mã x86 trên các hệ thống có chip M1 ARM. Rosetta 2 đã cung cấp thử nghiệm dựa trên 7zip với hiệu suất đạt 71% so với bản dựng gốc và Box64 - 57%.

Phiên bản mới của trình giả lập Box86 và Box64, cho phép bạn chạy game x86 trên hệ thống ARM

Về khả năng tương thích với các ứng dụng, trong số 165 trò chơi được thử nghiệm, có khoảng 70% hoạt động thành công. Khoảng 10% khác hoạt động được, nhưng có một số hạn chế và hạn chế nhất định. Các trò chơi được hỗ trợ bao gồm WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious và hầu hết các trò chơi GameMaker. Trong số các trò chơi có vấn đề đã được ghi nhận, có đề cập đến các trò chơi dựa trên công cụ Unity3D, được gắn với gói Mono, mô phỏng của trò chơi này không phải lúc nào cũng hoạt động do trình biên dịch JIT được sử dụng trong Mono và cũng có khá nhiều lỗi. yêu cầu đồ họa cao mà không phải lúc nào cũng có thể đạt được trên bo mạch ARM. Việc thay thế thư viện ứng dụng GTK hiện bị giới hạn ở GTK2 (việc thay thế GTK3/4 chưa được triển khai đầy đủ).

Những thay đổi chính trong phiên bản mới:

  • Đã thêm ràng buộc cho thư viện Vulkan. Đã thêm hỗ trợ cho API đồ họa Vulkan và DXVK (triển khai DXGI, Direct3D 9, 10 và 11 trên Vulkan).
  • Cải thiện các ràng buộc cho thư viện GTK. Đã thêm các liên kết cho trình truyền phát và thư viện thường được sử dụng trong các ứng dụng GTK.
  • Đã thêm hỗ trợ ban đầu (hiện chỉ có chế độ thông dịch) cho kiến ​​trúc RISC-V và PPC64LE.
  • Các bản sửa lỗi đã được thực hiện để cải thiện khả năng hỗ trợ cho SteamPlay và lớp Proton. Cung cấp khả năng chạy nhiều trò chơi Linux và Windows từ Steam trên bo mạch AArch64 như Raspberry Pi 3 và 4.
  • Cải thiện quản lý bộ nhớ, hiệu suất mmap và theo dõi vi phạm bảo vệ bộ nhớ.
  • Cải thiện hỗ trợ cho lệnh gọi hệ thống nhân bản trong libc. Đã thêm hỗ trợ cho các cuộc gọi hệ thống mới.
  • Công cụ biên dịch lại động đã cải thiện công việc với các thanh ghi SSE/x87, hỗ trợ thêm cho mã máy mới, chuyển đổi tối ưu hóa số float và số kép, cải tiến xử lý chuyển đổi nội bộ và đơn giản hóa việc bổ sung hỗ trợ cho kiến ​​trúc mới.
  • Trình tải tệp ELF được cải tiến.

Nguồn: opennet.ru

Thêm một lời nhận xét