ARM ์‹œ์Šคํ…œ์—์„œ x86 ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ Box64 ๋ฐ Box86 ์—๋ฎฌ๋ ˆ์ดํ„ฐ

ARM, ARM86, PPC0.2.6LE ๋ฐ RISC-V ํ”„๋กœ์„ธ์„œ๊ฐ€ ์žฅ์ฐฉ๋œ ์žฅ๋น„์—์„œ x64 ๋ฐ x0.1.8_86 ์•„ํ‚คํ…์ฒ˜์šฉ์œผ๋กœ ์ปดํŒŒ์ผ๋œ Linux ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋œ Box86 64 ๋ฐ Box64 64 ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” ํ•œ ๊ฐœ๋ฐœ์ž ํŒ€์— ์˜ํ•ด ๋™์‹œ์— ๊ฐœ๋ฐœ๋ฉ๋‹ˆ๋‹ค. Box86์€ 32๋น„ํŠธ x86 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ธฐ๋Šฅ์œผ๋กœ ์ œํ•œ๋˜๊ณ  Box64๋Š” 64๋น„ํŠธ ์‹คํ–‰ ํŒŒ์ผ ์‹คํ–‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์™€์ธ๊ณผ Proton์„ ํ†ตํ•ด Windows ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ๊ฒŒ์ž„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ํฐ ๊ด€์‹ฌ์„ ๊ธฐ์šธ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค์ฝ”๋“œ๋Š” C๋กœ ์ž‘์„ฑ๋˜์–ด MIT ๋ผ์ด์„ ์Šค๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค(Box86, Box64).

ํ”„๋กœ์ ํŠธ์˜ ํŠน์ง•์€ ์—๋ฎฌ๋ ˆ์ด์…˜์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด์˜ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ์™€ ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋งŒ ์ ์šฉ๋˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‹คํ–‰ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. libc, libm, GTK, SDL, Vulkan ๋ฐ OpenGL์„ ํฌํ•จํ•œ ์ผ๋ฐ˜์ ์ธ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋Œ€์ƒ ํ”Œ๋žซํผ์— ๊ณ ์œ ํ•œ ์˜ต์…˜์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์€ ์—๋ฎฌ๋ ˆ์ด์…˜ ์—†์ด ์‹คํ–‰๋˜์–ด ์ƒ๋‹นํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋Œ€์ƒ ํ”Œ๋žซํผ์— ๊ณ ์œ ํ•œ ๋Œ€์ฒด ํ•ญ๋ชฉ์ด ์—†๋Š” ์ฝ”๋“œ ์—๋ฎฌ๋ ˆ์ด์…˜์€ ํ•œ ๊ธฐ๊ณ„ ๋ช…๋ น์–ด ์„ธํŠธ์—์„œ ๋‹ค๋ฅธ ์„ธํŠธ๋กœ์˜ ๋™์  ์žฌ์ปดํŒŒ์ผ(DynaRec) ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ณ„ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•˜์—ฌ ๋™์  ์žฌ์ปดํŒŒ์ผ์€ 5~10๋ฐฐ ๋” ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ์—์„œ Box86 ๋ฐ Box64 ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” Armhf ๋ฐ Aarch64 ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ QEMU ๋ฐ FEX-emu ํ”„๋กœ์ ํŠธ๋ณด๋‹ค ํ›จ์”ฌ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์˜€์œผ๋ฉฐ ๊ฐœ๋ณ„ ํ…Œ์ŠคํŠธ(glmark2, openarena)์—์„œ๋Š” ๋Œ€์ƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ. ์ปดํ“จํŒ… ์ง‘์•ฝ์ ์ธ 7-zip ๋ฐ dav1d ํ…Œ์ŠคํŠธ์—์„œ Box64์˜ ์„ฑ๋Šฅ์€ ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์˜ 27%~53% ๋ฒ”์œ„์˜€์Šต๋‹ˆ๋‹ค(๋น„๊ต๋ฅผ ์œ„ํ•ด QEMU๋Š” 5~16%, FEX-emu๋Š” 13~26%์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒˆ์Šต๋‹ˆ๋‹ค). ). ๋˜ํ•œ Apple์ด M2 ARM ์นฉ์ด ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ x86 ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” Rosetta 1 ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค. Rosetta 2๋Š” ๊ธฐ๋ณธ ๋นŒ๋“œ์˜ 7%, Box71 - 64%์˜ ์„ฑ๋Šฅ์œผ๋กœ 57zip ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

ARM ์‹œ์Šคํ…œ์—์„œ x86 ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ Box64 ๋ฐ Box86 ์—๋ฎฌ๋ ˆ์ดํ„ฐ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ํ˜ธํ™˜์„ฑ์— ๊ด€ํ•ด์„œ๋Š” ํ…Œ์ŠคํŠธํ•œ 165๊ฐœ ๊ฒŒ์ž„ ์ค‘ ์•ฝ 70%๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ 10% ์ •๋„๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ํŠน์ • ์˜ˆ์•ฝ ๋ฐ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ๊ฒŒ์ž„์—๋Š” WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious ๋ฐ ๋Œ€๋ถ€๋ถ„์˜ GameMaker ๊ฒŒ์ž„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ง€์ ๋œ ๊ฒŒ์ž„ ์ค‘์—๋Š” Mono ํŒจํ‚ค์ง€์— ์—ฐ๊ฒฐ๋œ Unity3D ์—”์ง„ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—”์ง„์€ Mono์—์„œ ์‚ฌ์šฉ๋˜๋Š” JIT ์ปดํŒŒ์ผ๋กœ ์ธํ•ด ์—๋ฎฌ๋ ˆ์ด์…˜์ด ํ•ญ์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ์ƒ๋‹นํžˆ ARM ๋ณด๋“œ์—์„œ๋Š” ํ•ญ์ƒ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๋†’์€ ๊ทธ๋ž˜ํ”ฝ ์š”๊ตฌ ์‚ฌํ•ญ. GTK ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์ฒด๋Š” ํ˜„์žฌ GTK2๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค(GTK3/4 ๋Œ€์ฒด๋Š” ์™„์ „ํžˆ ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ).

์ƒˆ ๋ฆด๋ฆฌ์Šค์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • Vulkan ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Vulkan ๋ฐ DXVK ๊ทธ๋ž˜ํ”ฝ API์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Vulkan ์œ„์— DXGI, Direct3D 9, 10 ๋ฐ 11 ๊ตฌํ˜„).
  • GTK ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GTK ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” gstreamer ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • RISC-V ๋ฐ PPC64LE ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›(ํ˜„์žฌ ํ•ด์„ ๋ชจ๋“œ๋งŒ)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • SteamPlay ๋ฐ Proton ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. Raspberry Pi 64 ๋ฐ 3์™€ ๊ฐ™์€ AArch4 ๋ณด๋“œ์—์„œ Steam์˜ ๋‹ค์–‘ํ•œ Linux ๋ฐ Windows ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, mmap ์„ฑ๋Šฅ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ์œ„๋ฐ˜ ์ถ”์ .
  • libc์˜ ๋ณต์ œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋™์  ์žฌ์ปดํŒŒ์ผ ์—”์ง„์€ SSE/x87 ๋ ˆ์ง€์Šคํ„ฐ ์ž‘์—…์„ ๊ฐœ์„ ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๊ณ„ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐ ์ด์ค‘ ์ˆซ์ž์˜ ๋ณ€ํ™˜์„ ์ตœ์ ํ™”ํ•˜๊ณ , ๋‚ด๋ถ€ ์ „ํ™˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ์ƒˆ๋กœ์šด ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€๋ฅผ ๋‹จ์ˆœํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ELF ํŒŒ์ผ ๋กœ๋”๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€