Выпуск эмулятора FEX 2508, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ x86-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° систСмах ARM64

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° FEX 2508, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ эмулятор для выполнСния ΠΈΠ³Ρ€ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, собранных для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ x86 ΠΈ x86-64, Π² Linux-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π½Π° систСмах с процСссорами ARM64 (AArch64). Эмулятор FEX примСняСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Asahi для запуска Π½Π° систСмах с ARM-Ρ‡ΠΈΠΏΠ°ΠΌΠΈ Apple Silicon ΠΈΠ³Ρ€ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Steam, собранных для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86_64. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘++ с ассСмблСрными вставками ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для запуска x86-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ARM64-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ΅ overlay-прослойки с ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π€Π‘ (rootfs), поставляСмой Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SquashFS. Подобная прослойка Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· создания ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ chroot-окруТСния. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΡƒΠΆΠ΅ сформированных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² rootfs производится ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ FEXRootFSFetcher.

Для доступа ΠΊ возмоТностям хост-окруТСния, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π·Π²ΡƒΠΊΠΎΠΌ ΠΈ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, Π² rootfs ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ thunk-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ обращСния ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ ΠΈ ΠΊΠΎΠ΄Ρƒ Π½Π° сторонС хост-систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ обращСния ΠΊ OpenGL ΠΈ Vulkan). ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π½Π° сторонС хоста для обращСния ΠΊ ΠΊΠΎΠ΄Ρƒ Π² гостСвом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. Π‘Ρ€Π΅Π΄ΠΈ доступных для проброса Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ: libEGL, libGL, libSDL2, libX11, libVDSO, libasound, libdrm, libfex_malloc, libvulkan, libwayland-client ΠΈ libxshmfence.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ оптимизация JIT-компилятора, позволившая Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ FPS Π² ΠΈΠ³Ρ€Π΅ Cyberpunk 2077 Π½Π° 38.9%, Doom 2016 β€” Π½Π° 30.9%, Stray β€” Π½Π° 25.2%, Grim Fandango Remastered β€” Π½Π° 24.7%, Teardown β€” 12.6%, Π½Π° Gold of War 2018 β€” Π½Π° 4.6%. НаибольшСС влияниС ΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠ² (call-return), Π° Ρ‚Π°ΠΊΠΆΠ΅ задСйствованиС Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… wow64/arm64ec ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти TSO (Total Store Ordering), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² CPU Apple Silicon.
     Выпуск эмулятора FEX 2508, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ x86-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° систСмах ARM64
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° NX-Π±ΠΈΡ‚Π° (No Execute) для Π·Π°ΠΏΡ€Π΅Ρ‚Π° исполнСния инструкций Π² областях памяти, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ допустимыС для исполнСния.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для прСдотвращСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ измСнСния Ρ…ΠΎΠ΄Π° выполнСния Π² ΠΈΠ³Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Peggle Deluxe ΠΈ Crysis 2: Maximum Edition.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ