Xen ํ•˜์ดํผ๋ฐ”์ด์ € 4.17 ๋ฆด๋ฆฌ์Šค

4.17๋…„๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ๋ฌด๋ฃŒ ํ•˜์ดํผ๋ฐ”์ด์ € Xen 4.17์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Amazon, Arm, Bitdefender, Citrix, EPAM Systems ๋ฐ Xilinx(AMD)์™€ ๊ฐ™์€ ํšŒ์‚ฌ๊ฐ€ ์ƒˆ ๋ฆด๋ฆฌ์Šค ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. Xen 12 ๋ถ„๊ธฐ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ ์ƒ์„ฑ์€ 2024๋…„ 12์›” 2025์ผ๊นŒ์ง€ ์ง€์†๋˜๋ฉฐ ์ทจ์•ฝ์  ์ˆ˜์ • ์‚ฌํ•ญ์€ XNUMX๋…„ XNUMX์›” XNUMX์ผ๊นŒ์ง€ ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

Xen 4.17์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ์‹œ์Šคํ…œ ์ƒ์„ฑ์— ์‚ฌ์šฉ๋˜๋Š” MISRA-C ์‚ฌ์–‘์— ๊ณต์‹ํ™”๋˜์–ด C ์–ธ์–ด๋กœ ์•ˆ์ „ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ถ€๋ถ„์ ์œผ๋กœ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. Xen์€ ๊ณต์‹์ ์œผ๋กœ 4๊ฐœ ์ง€์นจ๊ณผ 24๊ฐœ MISRA-C ๊ทœ์น™(143๊ฐœ ๊ทœ์น™ ๋ฐ 16๊ฐœ ์ง€์นจ ์ค‘)์„ ๊ตฌํ˜„ํ•˜๊ณ  MISRA-C ์ •์  ๋ถ„์„๊ธฐ๋ฅผ ์–ด์…ˆ๋ธ”๋ฆฌ ํ”„๋กœ์„ธ์Šค์— ํ†ตํ•ฉํ•˜์—ฌ ์‚ฌ์–‘ ์š”๊ตฌ ์‚ฌํ•ญ ์ค€์ˆ˜๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒŒ์ŠคํŠธ๋ฅผ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ํ•˜๋“œ ์ฝ”๋”ฉํ•˜๋Š” ARM ์‹œ์Šคํ…œ์šฉ ์ •์  Xen ๊ตฌ์„ฑ์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ, ์ด๋ฒคํŠธ ์•Œ๋ฆผ ์ฑ„๋„, ํ•˜์ดํผ๋ฐ”์ด์ € ํž™ ๊ณต๊ฐ„ ๋“ฑ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ  ํ•˜์ดํผ๋ฐ”์ด์ € ์‹œ์ž‘ ์‹œ ์‚ฌ์ „ ํ• ๋‹นํ•˜์—ฌ ์šด์˜ ์ค‘ ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ์œผ๋กœ ์ธํ•œ ์žฅ์•  ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • ARM ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ VirtIO ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” I/O ๊ฐ€์ƒํ™”์— ๋Œ€ํ•œ ์‹คํ—˜์ (๊ธฐ์ˆ  ๋ฏธ๋ฆฌ๋ณด๊ธฐ) ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. virtio-mmio ์ „์†ก์€ ๊ฐ€์ƒ I/O ์žฅ์น˜์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋Š” ๊ด‘๋ฒ”์œ„ํ•œ VirtIO ์žฅ์น˜์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. Linux ํ”„๋ŸฐํŠธ์—”๋“œ, ํˆดํ‚ท(libxl/xl), dom0less ๋ชจ๋“œ ๋ฐ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(virtio-disk, virtio-net, i2c ๋ฐ gpio ๋ฐฑ์—”๋“œ๊ฐ€ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค).
  • dom0less ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์–ด ์„œ๋ฒ„ ๋ถ€ํŒ… ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‹œ์ž‘ํ•  ๋•Œ dom0 ํ™˜๊ฒฝ ๋ฐฐํฌ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ๋‹จ๊ณ„์—์„œ(์žฅ์น˜ ํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด) CPU ํ’€(CPUPOOL)์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด dom0 ์—†์ด ๊ตฌ์„ฑ์—์„œ ํ’€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด big.LITTLE์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ARM ์‹œ์Šคํ…œ์—์„œ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ CPU ์ฝ”์–ด๋ฅผ ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ์—๋„ˆ์ง€๋ฅผ ์†Œ๋น„ํ•˜๋Š” ์ฝ”์–ด์™€ ์ƒ์‚ฐ์„ฑ์€ ๋‚ฎ์ง€๋งŒ ์—๋„ˆ์ง€ ํšจ์œจ์„ฑ์ด ๋†’์€ ์ฝ”์–ด๋ฅผ ๊ฒฐํ•ฉํ•œ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ dom0less๋Š” ๋ฐ˜๊ฐ€์ƒํ™” ํ”„๋ŸฐํŠธ์—”๋“œ/๋ฐฑ์—”๋“œ๋ฅผ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ํ•„์š”ํ•œ ๋ฐ˜๊ฐ€์ƒํ™” ์žฅ์น˜๋กœ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์„ ๋ถ€ํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ARM ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด์ œ ๋„๋ฉ”์ธ์ด ์ƒ์„ฑ๋  ๋•Œ ์ƒ์„ฑ๋œ ๋ฉ”๋ชจ๋ฆฌ ํ’€์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์ƒํ™” ๊ตฌ์กฐ(P2M, Physical to Machine)๊ฐ€ ํ• ๋‹น๋˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๊ฒŒ์ŠคํŠธ๋ฅผ ๋” ํšจ๊ณผ์ ์œผ๋กœ ๊ฒฉ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ARM ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์„œ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ์˜ Spectre-BHB ์ทจ์•ฝ์„ฑ์— ๋Œ€ํ•œ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ARM ์‹œ์Šคํ…œ์—์„œ๋Š” Dom0 ๋ฃจํŠธ ํ™˜๊ฒฝ์—์„œ Zephyr ์šด์˜ ์ฒด์ œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณ„๋„์˜(ํŠธ๋ฆฌ ์™ธ๋ถ€) ํ•˜์ดํผ๋ฐ”์ด์ € ์–ด์…ˆ๋ธ”๋ฆฌ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • x86 ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ชจ๋“  ์œ ํ˜•์˜ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋Œ€๊ทœ๋ชจ IOMMU ํŽ˜์ด์ง€(์ŠˆํผํŽ˜์ด์ง€)๊ฐ€ ์ง€์›๋˜๋ฏ€๋กœ PCI ์žฅ์น˜๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ 12TB RAM์ด ์žฅ์ฐฉ๋œ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ๋‹จ๊ณ„์—์„œ dom0์— ๋Œ€ํ•œ CPUID ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ CPU์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์— ๋Œ€ํ•ด ํ•˜์ดํผ๋ฐ”์ด์ € ์ˆ˜์ค€์—์„œ ๊ตฌํ˜„๋œ ๋ณดํ˜ธ ์กฐ์น˜๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด VIRT_SSBD ๋ฐ MSR_SPEC_CTRL ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.
  • VirtIO-Grant ์ „์†ก์€ ๋ณ„๋„๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, VirtIO-MMIO์™€๋Š” ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๋ณด์•ˆ๊ณผ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ๊ฒฉ๋ฆฌ๋œ ๋„๋ฉ”์ธ์—์„œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. VirtIO-Grant๋Š” ์ง์ ‘์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘ ๋Œ€์‹  ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ์Šน์ธ ๋งํฌ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ๊ณผ VirtIO ๋ฐฑ์—”๋“œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•ด ์‚ฌ์ „ ํ•ฉ์˜๋œ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์Šน์ธ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฑ์—”๋“œ ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. VirtIO-Grant ์ง€์›์€ ์ด๋ฏธ Linux ์ปค๋„์— ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€๋งŒ QEMU ๋ฐฑ์—”๋“œ, virtio-vhost ๋ฐ ํˆดํ‚ท(libxl/xl)์—๋Š” ์•„์ง ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Hyperlaunch ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ๋Š” ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์ค‘ ๊ฐ€์ƒ ๋จธ์‹  ์‹คํ–‰์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์œ ์—ฐํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ๊ณ„์† ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ PV ๋„๋ฉ”์ธ์„ ๊ฐ์ง€ํ•˜๊ณ  ๋กœ๋“œ ์‹œ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ํ•˜์ดํผ๋ฐ”์ด์ €๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ํŒจ์น˜ ์„ธํŠธ๊ฐ€ ์ด๋ฏธ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PV ๋“œ๋ผ์ด๋ฒ„์šฉ Xenstore ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฐ˜๊ฐ€์ƒํ™” ๋„๋ฉ”์ธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ๋„ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜๊ฐ€ ์Šน์ธ๋˜๋ฉด PVH ๋ฐ HVM ์žฅ์น˜์— ๋Œ€ํ•œ ์ง€์›์€ ๋ฌผ๋ก , ์ธก์ •๋œ ๋ถ€ํŒ…์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๋ณ„๋„์˜ domB ๋„๋ฉ”์ธ(๋นŒ๋” ๋„๋ฉ”์ธ) ๊ตฌํ˜„์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋กœ๋“œ๋œ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๋Š” ์ž‘์—…์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
  • RISC-V ์•„ํ‚คํ…์ฒ˜์šฉ Xen ํฌํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์ด ๊ณ„์†๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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