Linux 5.3 ์ปค๋„ ๋ฆด๋ฆฌ์Šค

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” ๋„์ž… ๋œ ์ปค๋„ ๋ฆด๋ฆฌ์Šค Linux 5.3. ๊ฐ€์žฅ ๋ˆˆ์— ๋„๋Š” ๋ณ€ํ™” ์ค‘์—๋Š” AMD Navi GPU, Zhaoxi ํ”„๋กœ์„ธ์„œ ๋ฐ Intel Speed โ€‹โ€‹โ€‹โ€‹Select ์ „์› ๊ด€๋ฆฌ ๊ธฐ์ˆ  ์ง€์›, ์‚ฌ์ดํด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋Œ€๊ธฐํ•˜๋Š” umwait ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ,
๋น„๋Œ€์นญ CPU์— ๋Œ€ํ•œ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” 'ํ™œ์šฉ๋„ ํด๋žจํ•‘' ๋ชจ๋“œ, pidfd_open ์‹œ์Šคํ…œ ํ˜ธ์ถœ, 4/0.0.0.0 ์„œ๋ธŒ๋„ท์˜ IPv8 ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ, nftables ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๊ฐ€๋Šฅ์„ฑ, DRM ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ HDR ์ง€์›, ACRN ํ†ตํ•ฉ ํ•˜์ดํผ๋ฐ”์ด์ €.

ะ’ ๋ฐœํ‘œ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค์—์„œ Linus๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ปค๋„ ๊ฐœ๋ฐœ์˜ ์ฃผ์š” ๊ทœ์น™, ์ฆ‰ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋™์ž‘์„ ์œ ์ง€ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ƒ๊ธฐ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ์ปค๋„ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์ˆ˜์ค€์—์„œ ํšŒ๊ท€๊ฐ€ ๋ฐœ์ƒํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋™์ž‘ ์œ„๋ฐ˜์œผ๋กœ ์ธํ•ด ABI ๋ณ€๊ฒฝ, ์˜ค๋ž˜๋œ ์ฝ”๋“œ ์ œ๊ฑฐ ๋˜๋Š” ์˜ค๋ฅ˜ ํ‘œ์‹œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์œ ์šฉํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ฐ„์ ‘์ ์ธ ์˜ํ–ฅ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ์ ์ธ ์˜ˆ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ๊ธฐ๋จ ์œ ๋Šฅํ•œ ์ตœ์ ํ™” Ext4 ์ฝ”๋“œ์—์„œ๋Š” ์ž‘์€ I/O ์š”์ฒญ์— ๋Œ€ํ•œ inode ํ…Œ์ด๋ธ”์˜ ์‚ฌ์ „ ์ฝ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋“œ๋ผ์ด๋ธŒ ์•ก์„ธ์Šค ํšŸ์ˆ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋””์Šคํฌ ํ™œ๋™ ๊ฐ์†Œ๋กœ ์ธํ•ด getrandom() ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ์˜ ์—”ํŠธ๋กœํ”ผ๊ฐ€ ๋” ๋Š๋ฆฌ๊ฒŒ ๋ˆ„์ ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์ผ๋ถ€ ๊ตฌ์„ฑ์—์„œ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ ์—”ํŠธ๋กœํ”ผ ํ’€์ด ๋กœ๋“œ๋  ๋•Œ๊นŒ์ง€ ๋กœ๋“œ ์ค‘์— ์ •์ง€๊ฐ€ ๊ด€์ฐฐ๋  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฑ„์šฐ๋Š”. ์ตœ์ ํ™”๊ฐ€ ์ •๋ง ์œ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ getrandom() ํ˜ธ์ถœ์˜ ๊ธฐ๋ณธ ์ฐจ๋‹จ ๋ชจ๋“œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์—”ํŠธ๋กœํ”ผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์„ ํƒ์  ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ž๋Š” ๋…ผ์˜๊ฐ€ ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋กœ๋”ฉ ์ดˆ๊ธฐ ๋‹จ๊ณ„์˜ ๋‚œ์ˆ˜ ํ’ˆ์งˆ.

์ƒˆ ๋ฒ„์ „์—๋Š” 15794๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ •ํ•œ 1974๊ฐœ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจ์น˜ ํฌ๊ธฐ - 92MB(๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ 13986๊ฐœ ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  258419์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
599137๊ฐœ ํ–‰์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.) 39์— ์ œ์‹œ๋œ ์ „์ฒด ๋‚ด์šฉ์˜ ์•ฝ 5.3%
๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์•ฝ 12%๋Š”
ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ํƒœ๋„, 11%
๋„คํŠธ์›Œํฌ ์Šคํƒ ๊ด€๋ จ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ จ 3%, ๋‚ด๋ถ€ ๊ด€๋ จ 3%
์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ.

์ฃผ์š” ํ˜์‹ :

  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • PID ์žฌ์‚ฌ์šฉ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” 'pidfd' ๊ธฐ๋Šฅ์˜ ์ง€์†์ ์ธ ๊ฐœ๋ฐœ(pidfd๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์ง€๋งŒ PID๋Š” ํ•ด๋‹น PID์™€ ์—ฐ๊ฒฐ๋œ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์Œ) ์ด์ „์— ์ปค๋„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      idfd_send_signal()์—์„œ ์‚ฌ์šฉํ•  pidfd๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ pidfd_send_signal() ์‹œ์Šคํ…œ ํ˜ธ์ถœ๊ณผ clone() ํ˜ธ์ถœ์˜ CLONE_PIDFD ํ”Œ๋ž˜๊ทธ. CLONE_PIDFD ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ clone()์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž ๋˜๋Š” Android ํ”Œ๋žซํผ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๊ฐ•์ œ ์ข…๋ฃŒ ์‹œ์Šคํ…œ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ CLONE_PIDFD ์—†์ด fork() ๋˜๋Š” clone()์„ ํ˜ธ์ถœํ•˜์—ฌ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

      ์ปค๋„ 5.3์—๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. pidfd_open()์ด๋ฅผ ํ†ตํ•ด CLONE_PIDFD ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ clone()์„ ํ˜ธ์ถœํ•˜์—ฌ ์ƒ์„ฑ๋˜์ง€ ์•Š์€ ์ž„์˜์˜ ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ํ™•์ธ ๊ฐ€๋Šฅํ•œ PIDFD๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ poll() ๋ฐ epoll()์„ ์‚ฌ์šฉํ•˜์—ฌ pidfd ํด๋ง์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž๋Š” PID๊ฐ€ ์ƒˆ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ์Ÿ ์กฐ๊ฑด์— ๋Œ€ํ•œ ๊ฑฑ์ • ์—†์ด ์ž„์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ข…๋ฃŒ๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pidfd์™€ ์—ฐ๊ด€๋œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ์ด๋ฅผ ์•Œ๋ฆฌ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ•ด๋‹น ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ์•Œ๋ฆฌ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์— ๋กœ๋“œ ๊ณ ์ • ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(ํ™œ์šฉ ํด๋žจํ•‘), CPU์—์„œ ํ™œ์„ฑํ™”๋œ ์ž‘์—…์— ๋”ฐ๋ผ ์ตœ์†Œ ๋˜๋Š” ์ตœ๋Œ€ ์ฃผํŒŒ์ˆ˜ ๋ฒ”์œ„๋ฅผ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์‹œ๋œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ตœ์†Œํ•œ "์š”์ฒญ๋œ" ๋นˆ๋„์˜ ๋‚ฎ์€ ๋์—์„œ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์˜ ํ’ˆ์งˆ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ž‘์—…์˜ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์ž‘์—…์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์ž‘์—…์€ "ํ—ˆ์šฉ๋œ" ๋นˆ๋„์˜ ์ƒํ•œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ œํ•œ์€ sched_setattr() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ sched_uclamp_util_min ๋ฐ sched_uclamp_util_max ์†์„ฑ์„ ํ†ตํ•ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
    • ์—๋„ˆ์ง€ ๊ด€๋ฆฌ ๊ธฐ์ˆ  ์ง€์› ์ถ”๊ฐ€ ์ธํ…” ์†๋„ ์„ ํƒ, Intel Xeon ํ”„๋กœ์„ธ์„œ๊ฐ€ ํƒ‘์žฌ๋œ ์ผ๋ถ€ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ CPU ์ฝ”์–ด์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ๋ฐ ํŒŒํ‹ฐ์…˜ ์ฒ˜๋ฆฌ๋Ÿ‰ ์„ค์ •์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์ฝ”์–ด์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ์ฝ”์–ด์˜ ์„ฑ๋Šฅ์„ ํฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ํ”„๋กœ์„ธ์Šค ์ œ๊ณต umwait ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ธฐ๋Šฅ. umonitor ๋ฐ tpause ๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์ด ๋ช…๋ น์€ Intel์˜ ๊ณง ์ถœ์‹œ๋  "Tremont" ์นฉ์— ์ œ๊ณต๋  ์˜ˆ์ •์ด๋ฉฐ ํ•˜์ดํผ ์Šค๋ ˆ๋”ฉ์„ ์‚ฌ์šฉํ•  ๋•Œ ์—๋„ˆ์ง€ ํšจ์œจ์ ์ด๊ณ  ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์ง€์—ฐ ๊ตฌํ˜„์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • RISC-V ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • kprobes ์ถ”์  ๋ฉ”์ปค๋‹ˆ์ฆ˜์—๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์ปค๋„ ํฌ์ธํ„ฐ๋ฅผ ์—ญ์ฐธ์กฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์ „๋‹ฌ๋œ ๊ตฌ์กฐ์˜ ๋‚ด์šฉ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ๋‹จ๊ณ„์—์„œ ๊ฒ€์‚ฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์‹ค์‹œ๊ฐ„ ์ž‘์—…์„ ์œ„ํ•ด ๊ตฌ์„ฑ ํŒŒ์ผ์— PREEMPT_RT ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ ์ž์ฒด๋Š” ์•„์ง ์ปค๋„์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์˜ต์…˜์ด ๋“ฑ์žฅํ•œ ๊ฒƒ์€ ์žฅ๊ธฐ์ ์œผ๋กœ ์—ํ”ฝ์ด ์ถœ์‹œ๋  ๊ฒƒ์ด๋ผ๋Š” ์ข‹์€ ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. ํ†ตํ•ฉ ์‹ค์‹œ๊ฐ„ ์„ ์  ํŒจ์น˜๊ฐ€ ๊ฑฐ์˜ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋” ๋งŽ์€ ์ˆ˜์˜ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋” ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์˜ clone() ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ clone3() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • BPF ํ”„๋กœ๊ทธ๋žจ์ด ์ž„์˜์˜ ํ”„๋กœ์„ธ์Šค์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก bpf_send_signal() ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • KVM ํ•˜์ดํผ๋ฐ”์ด์ € ํ™˜๊ฒฝ์˜ ์„ฑ๋Šฅ ์ด๋ฒคํŠธ์˜ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ์ด๋ฒคํŠธ ํ•„ํ„ฐ๋ง ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ถ”๊ฐ€๋˜์–ด ๊ด€๋ฆฌ์ž๊ฐ€ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ ์ธก์—์„œ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ—ˆ์šฉ๋˜๊ฑฐ๋‚˜ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ์ด๋ฒคํŠธ ์œ ํ˜•์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฃจํ”„ ์‹คํ–‰์ด ์ œํ•œ๋˜์–ด ์ตœ๋Œ€ ๋ช…๋ น ์ˆ˜ ์ œํ•œ์„ ์ดˆ๊ณผํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด eBPF ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒ€์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • ์ด์ œ XFS ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ inode ์šฐํšŒ(์˜ˆ: ํ• ๋‹น๋Ÿ‰ ํ™•์ธ ์‹œ)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ioctl BULKSTAT ๋ฐ INUMBERS๊ฐ€ ์ถ”๊ฐ€๋˜์–ด inode ์ƒ์„ฑ ์‹œ๊ฐ„ ๋ฐ ๊ฐ AG ๊ทธ๋ฃน(ํ• ๋‹น ๊ทธ๋ฃน)์— ๋Œ€ํ•œ BULKSTAT ๋ฐ INUMBERS ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์ด FS ํ˜•์‹์˜ XNUMX๋ฒˆ์งธ ๋ฒ„์ „์— ๋‚˜ํƒ€๋‚œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • Ext4์—์„œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๋””๋ ‰ํ† ๋ฆฌ์— ๊ณต๋ฐฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค(๋งํฌ๋˜์ง€ ์•Š์€ ๋ธ”๋ก).
      ์ฒ˜๋ฆฌ ์ œ๊ณต ์—ด๋ฆฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ "i"(๋ถˆ๋ณ€)(ํŒŒ์ผ์ด ์ด๋ฏธ ์—ด๋ ค ์žˆ์„ ๋•Œ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ ์“ฐ๊ธฐ๊ฐ€ ๊ธˆ์ง€๋จ)

    • Btrfs๋Š” ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์—์„œ crc32c์˜ ๋น ๋ฅธ ๊ตฌํ˜„์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • CIFS์—์„œ๋Š” ์‹คํ—˜์  ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ smbdirect ์ง€์› ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SMB3์—๋Š” GCM ๋ชจ๋“œ์—์„œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ACE(์•ก์„ธ์Šค ์ œ์–ด ํ•ญ๋ชฉ) ํ•ญ๋ชฉ์—์„œ ๋ชจ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”์ถœํ•˜๋Š” ์ƒˆ๋กœ์šด ๋งˆ์šดํŠธ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. open() ํ˜ธ์ถœ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • checkpoint=disable ๋ชจ๋“œ์—์„œ ์‹คํ–‰ํ•  ๋•Œ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์ œํ•œํ•˜๋Š” ์˜ต์…˜์„ F2FS์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. F2FS์—์„œ ๋ธ”๋ก ๋ฒ”์œ„๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ioctl์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ฆ‰์„์—์„œ ํŒŒํ‹ฐ์…˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง์ ‘ I/O๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด F2FS์— ์Šค์™‘ ํŒŒ์ผ์„ ๋ฐฐ์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ํŒŒ์ผ ๊ณ ์ • ๋ฐ ์œ ์‚ฌํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ธ”๋ก ํ• ๋‹น์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋น„๋™๊ธฐ ์ž…์ถœ๋ ฅ io_uring์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์— ๋น„๋™๊ธฐ ์ž‘์—… sendmsg() ๋ฐ recvmsg()์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • zstd ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ ์••์ถ• ์ง€์›๊ณผ ์„œ๋ช…๋œ FS ์ด๋ฏธ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ์ด UBIFS ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Ceph FS๋Š” ์ด์ œ ํŒŒ์ผ์— ๋Œ€ํ•œ SELinux ๋ณด์•ˆ ๋ ˆ์ด๋ธ”์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • NFSv4์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์™€ ์„ค์ •๋œ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ƒˆ๋กœ์šด ๋งˆ์šดํŠธ ์˜ต์…˜ "nconnect="๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ๋ถ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ NFSv4 ์„œ๋ฒ„๋Š” ์ด์ œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ ํ˜„์žฌ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ /proc/fs/nfsd/clients ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • ์ปค๋„์—๋Š” ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์šฉ ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ACRN๋Š” ์‹ค์‹œ๊ฐ„ ์ž‘์—…์— ๋Œ€ํ•œ ์ค€๋น„ ์ƒํƒœ์™€ ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ์‹œ์Šคํ…œ์—์„œ์˜ ์‚ฌ์šฉ ์ ํ•ฉ์„ฑ์„ ์—ผ๋‘์— ๋‘๊ณ  ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ACRN์€ ์ตœ์†Œํ•œ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žฅ๋น„์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ๋•Œ ๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„๊ณผ ์ ์ ˆํ•œ ์‘๋‹ต์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. CPU ๋ฆฌ์†Œ์Šค, I/O, ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, ๊ทธ๋ž˜ํ”ฝ ๋ฐ ์‚ฌ์šด๋“œ ์ž‘์—…์˜ ๊ฐ€์ƒํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ACRN์€ ์ „์ž ์ œ์–ด ์žฅ์น˜, ๋Œ€์‹œ๋ณด๋“œ, ์ž๋™์ฐจ ์ •๋ณด ์‹œ์Šคํ…œ, ์†Œ๋น„์ž IoT ์žฅ์น˜ ๋ฐ ๊ธฐํƒ€ ๋‚ด์žฅ ๊ธฐ์ˆ ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฒฉ๋ฆฌ๋œ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ Linux์—์„œ ์ถ”๊ฐ€ ์‹œ๊ฐ„ ์—ฌํ–‰ ๋ชจ๋“œ - ๊ฐ€์ƒ UML ํ™˜๊ฒฝ์—์„œ ์‹œ๊ฐ„์„ ๋Šฆ์ถ”๊ฑฐ๋‚˜ ๋†’์ผ ์ˆ˜ ์žˆ์–ด ์‹œ๊ฐ„ ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      time-travel-start: ์‹œ์Šคํ…œ ์‹œ๊ณ„๊ฐ€ ์—ํฌํฌ ํ˜•์‹์œผ๋กœ ์ง€์ •๋œ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    • ์ƒˆ๋กœ์šด ์ปค๋„ ๋ช…๋ น์ค„ ์˜ต์…˜ "init_on_alloc" ๋ฐ "init_on_free"๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์ •ํ•˜๋ฉด ํ• ๋‹น ๋ฐ ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ์ œ๋กœํ™”๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด(malloc ๋ฐ free์— ๋Œ€ํ•ด XNUMX์œผ๋กœ ์ฑ„์šฐ๊ธฐ) ์ถ”๊ฐ€ ์ดˆ๊ธฐํ™” ์˜ค๋ฒ„ํ—ค๋“œ๋กœ ์ธํ•ด ๋ณด์•ˆ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค virtio-iommu ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•˜์ง€ ์•Š๊ณ  virtio ์ „์†ก์„ ํ†ตํ•ด ATTACH, DETACH, MAP ๋ฐ UNMAP๊ณผ ๊ฐ™์€ IOMMU ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๊ฐ€์ƒํ™” ์žฅ์น˜ ๊ตฌํ˜„
    • ์ƒˆ๋กœ์šด ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค virtio-pmem๋Š” NVDIMM๊ณผ ๊ฐ™์€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋งคํ•‘๋œ ์ €์žฅ ์žฅ์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ (์„ ํƒํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์™ธ๋ถ€์—์„œ๋Š” ํ‚ค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Œ) ACL์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์•”ํ˜ธํ™” ํ•˜์œ„ ์‹œ์Šคํ…œ์œผ๋กœ ์ถ”๊ฐ€ ๋งค์šฐ ๋น ๋ฅธ ๋น„์•”ํ˜ธํ™” ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ง€์› xxํ•ด์‹œ, ์†๋„๋Š” ๋ฉ”๋ชจ๋ฆฌ ์„ฑ๋Šฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ์ด์ „์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ๋˜ 4/0.0.0.0 ๋ฒ”์œ„์˜ IPv8 ์ฃผ์†Œ ์ฒ˜๋ฆฌ๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋ธŒ๋„ท ์†Œ๊ฐœ ์˜์ง€ ์ถ”๊ฐ€๋กœ 16๋งŒ ๊ฐœ์˜ IPv4 ์ฃผ์†Œ๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
    • nftables์šฉ Netfilter์—์„œ ์ถ”๊ฐ€ ์ถ”๊ฐ€๋œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ท ํ•„ํ„ฐ๋ง์„ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ง€์› ํ๋ฆ„ ๋ธ”๋ก API. ๋ชจ๋“  ์ฒด์ธ์ด ํฌํ•จ๋œ ์ „์ฒด ๊ทœ์น™ ํ…Œ์ด๋ธ”์„ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ ์ธก๋ฉด์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™œ์„ฑํ™”๋Š” NFT_TABLE_F_HW ํ”Œ๋ž˜๊ทธ๋ฅผ ํ…Œ์ด๋ธ”์— ๋ฐ”์ธ๋”ฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ ˆ์ด์–ด 3 ๋ฐ ๋ ˆ์ด์–ด 4 ํ”„๋กœํ† ์ฝœ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ํ—ˆ์šฉ/๊ฑฐ๋ถ€ ์ž‘์—…, IP๋ณ„ ๋งคํ•‘, ์ „์†ก์ž/์ˆ˜์‹ ์ž ๋„คํŠธ์›Œํฌ ํฌํŠธ ๋ฐ ํ”„๋กœํ† ์ฝœ ์œ ํ˜•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ br_netfilter ์—๋ฎฌ๋ ˆ์ด์…˜ ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์ถ”์  ์ง€์›์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • nf_tables์—์„œ ์ถ”๊ฐ€ iptables์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๋ณต์ œํ•˜๋Š” SYNPROXY ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ง€์›๊ณผ IPv4 ํ—ค๋”์˜ ๊ฐœ๋ณ„ ์˜ต์…˜์— ๋Œ€ํ•œ ๊ทœ์น™์„ ์ฒดํฌ์ธํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • setockopt() ๋ฐ getsockopt() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— BPF ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋Ÿฌํ•œ ํ˜ธ์ถœ์— ๊ณ ์œ ํ•œ ์•ก์„ธ์Šค ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ RTT ๊ฐ„๊ฒฉ(์™•๋ณต ์‹œ๊ฐ„, ํ•‘ ์‹œ๊ฐ„)์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ์”ฉ BPF ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ํ˜ธ์ถœ ์ง€์ (ํ›„ํฌ)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • IPv4 ๋ฐ IPv6์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์˜ ํ™•์žฅ์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์ƒˆ๋กœ์šด Nexthop ๋ผ์šฐํŒ… ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์— ๋”ฐ๋ฅด๋ฉด ์ƒˆ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋‹จ 743์ดˆ ๋งŒ์— 4.3๊ฐœ์˜ ๊ฒฝ๋กœ ์„ธํŠธ๊ฐ€ ์ปค๋„์— ๋กœ๋“œ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
    • ๋ธ”๋ฃจํˆฌ์Šค์˜ ๊ฒฝ์šฐ ๊ตฌํ˜„ LE ping์„ ์ง€์›ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • ์ถ”๊ฐ€๋จ ํšŒ์‚ฌ์˜ x86 ํ˜ธํ™˜ ํ”„๋กœ์„ธ์„œ ์ง€์› ์ž ์˜ค์‹ , VIA Technologies์™€ ์ƒํ•˜์ด ์ง€์ž์ฒด ๊ฐ„์˜ ๊ณต๋™ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฐ๊ณผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ZX CPU ์ œํ’ˆ๊ตฐ์€ x86-64 Isaiah ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์–ด ๊ธฐ์ˆ  ๊ฐœ๋ฐœ์„ ๊ณ„์†ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์•„ ์„ผํƒ€์šฐ๋ฅด;
    • DRM(Direct Rendering Manager) ํ•˜์œ„ ์‹œ์Šคํ…œ๊ณผ amdgpu ๋ฐ i915 ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„์—๋Š” HDMI ํฌํŠธ๋ฅผ ํ†ตํ•ด HDR(High Dynamic Range) ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ตฌ๋ฌธ ๋ถ„์„, ์ฒ˜๋ฆฌ ๋ฐ ์ „์†ก์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด HDR ํŒจ๋„ ๋ฐ ํ™”๋ฉด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋ฐ๊ธฐ ๋ฒ”์œ„ ํ‘œ์‹œ ;
    • amdgpu ๋“œ๋ผ์ด๋ฒ„๋Š” ๊ธฐ๋ณธ ๋“œ๋ผ์ด๋ฒ„, ํ™”๋ฉด ์ƒํ˜ธ ์ž‘์šฉ ์ฝ”๋“œ(DCN5700), GFX ๋ฐ ์ปดํ“จํŒ… ์ง€์›(GFX2)์„ ํฌํ•จํ•˜๋Š” AMD NAVI GPU(RX10)์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
      SDMA 5(์‹œ์Šคํ…œ DMA0), ์ „์› ๊ด€๋ฆฌ ๋ฐ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ธ์ฝ”๋”/๋””์ฝ”๋”(VCN2). amdgpu๋Š” ๋˜ํ•œ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ „์› ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ Vega12 ๋ฐ Vega20 GPU ๊ธฐ๋ฐ˜ ์นด๋“œ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

    • amdkfd ๋“œ๋ผ์ด๋ฒ„์— VegaM GPU ๊ธฐ๋ฐ˜ ์นด๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Fiji, Tonga, Polaris์™€ ๊ฐ™์€ ๊ฐœ๋ณ„ GPU์šฉ).
    • Icelake ์นฉ์šฉ Intel ๋น„๋””์˜ค ์นด๋“œ์šฉ DRM ๋“œ๋ผ์ด๋ฒ„ ๊ตฌํ˜„ ์ƒˆ๋กœ์šด ๋‹ค์ค‘ ์„ธ๊ทธ๋จผํŠธ ๊ฐ๋งˆ ๋ณด์ • ๋ชจ๋“œ. YCbCr4:2:0 ํ˜•์‹์œผ๋กœ DisplayPort๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํŽŒ์›จ์–ด๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌC SKL, BXT, KBL, GLK ๋ฐ ICL์šฉ. ๋น„๋™๊ธฐ ๋ชจ๋“œ์—์„œ ํ™”๋ฉด ์ „์›์„ ๋„๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋จ Ironlake(gen5) ๋ฐ gen4(Broadwater - Cantiga) ์นฉ์— ๋Œ€ํ•œ ๋ Œ๋”๋ง ์ปจํ…์ŠคํŠธ ์ €์žฅ ๋ฐ ๋ณต์›์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•œ ๋ฐฐ์น˜ ์ž‘์—…์—์„œ ๋‹ค๋ฅธ ๋ฐฐ์น˜ ์ž‘์—…์œผ๋กœ ์ด๋™ํ•  ๋•Œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ GPU ์ƒํƒœ๋ฅผ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Nouveau ๋“œ๋ผ์ด๋ฒ„๋Š” NVIDIA Turing TU116 ์นฉ์…‹ ๊ฐ์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ARM Komeda ํ™”๋ฉด ๊ฐ€์†๊ธฐ(Mali D71)์šฉ DRM/KMS ๋“œ๋ผ์ด๋ฒ„์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์—ˆ์œผ๋ฉฐ, ์Šค์ผ€์ผ๋ง, ๋ถ„ํ• /๋ณ‘ํ•ฉ ๋ ˆ์ด์–ด, ํšŒ์ „, ์ง€์—ฐ๋œ ์“ฐ๊ธฐ, AFBC, SMMU ๋ฐ ์ƒ‰์ƒ ์ธ์ฝ”๋”ฉ ํ˜•์‹ Y0L2, P010, YUV420_8/10BIT๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค;
    • MSM ๋“œ๋ผ์ด๋ฒ„๋Š” Qualcomm ํ”„๋กœ์„ธ์„œ์— ์‚ฌ์šฉ๋˜๋Š” A540 GPU Adreno ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•œ ์ง€์›๊ณผ Snapdragon 8998์šฉ MSM835 DSI ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • LCD ํŒจ๋„ Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS์šฉ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 ๋ฐ VXT VL050-8048NT-C01;

    • ์ถ”๊ฐ€๋จ ๋””์ฝ”๋”ฉ ๊ฐ€์† ๋„๊ตฌ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋“œ๋ผ์ด๋ฒ„
      Amlogic Meson SoC์—์„œ ์ œ๊ณต๋˜๋Š” ๋น„๋””์˜ค;

    • v3d ๋“œ๋ผ์ด๋ฒ„(Raspberry Pi์— ์‚ฌ์šฉ๋˜๋Š” Broadcom Video Core V GPU์šฉ)๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ง€์› ์ปดํ“จํŒ… ์…ฐ์ด๋” ํŒŒ๊ฒฌ;
    • ์ถ”๊ฐ€๋จ ์ตœ์‹  Apple MacBook ๋ฐ MacBookPro ๋…ธํŠธ๋ถ ๋ชจ๋ธ์— ์‚ฌ์šฉ๋˜๋Š” SPI ํ‚ค๋ณด๋“œ ๋ฐ ํŠธ๋ž™ํŒจ๋“œ์šฉ ๋“œ๋ผ์ด๋ฒ„;
    • ์ถ”๊ฐ€๋จ ํ”Œ๋กœํ”ผ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ๋œ ioctl ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ณดํ˜ธ ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์ž์ฒด๋Š” ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
      (โ€œ๊ณ ์•„โ€) ์ด๋Š” ํ…Œ์ŠคํŠธ ์ข…๋ฃŒ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„๋Š” ์—ฌ์ „ํžˆ ์ปค๋„์— ์ €์žฅ๋˜์–ด ์žˆ์ง€๋งŒ ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜๋Š” ์žฅ๋น„๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋“œ๋ผ์ด๋ฒ„๋Š” ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ˜„์žฌ์˜ ๋ชจ๋“  ์™ธ๋ถ€ ๋“œ๋ผ์ด๋ธŒ๋Š” USB ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ์ถ”๊ฐ€๋จ ํ”„๋กœ์„ธ์„œ ์ฃผํŒŒ์ˆ˜์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋™์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” Raspberry Pi ๋ณด๋“œ์šฉ cpufreq ๋“œ๋ผ์ด๋ฒ„
    • ์ƒˆ๋กœ์šด ARM SoC Mediatek mt8183(4x Cortex-A73 + 4x Cortex-A53), TI J721E(2x Cortex-A72 + 3x Cortex-R5F + 3 DSP + MMA) ๋ฐ Amlogic G12B(4x Cortex-A73 + 2x Cortex- A53 ) ๋ฐ ๋ณด๋“œ:
      • ํ“จ๋ฆฌ์ฆ˜ ๋ฆฌ๋ธŒ๋ ˜5,
      • ์–ด์Šคํ”ผ๋“œ BMC,
      • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์˜ฌ๋ฆผํ‘ธ์Šค BMC,
      • ์ฝ˜ํŠธ๋ก  SMARC,
      • ๋…ธ๋ธŒํ… ๋ฏธ์–ด์บฃ96(i.MX7),
      • ST ๋งˆ์ดํฌ๋กœ ์–ด๋ฒค์ ธ96,
      • ๊ตฌ๊ธ€ ์ฒด์ž(ํ€„์ปด SDM845),
      • ํ€„์ปด ๋“œ๋ž˜๊ณค๋ณด๋“œ 845c(ํ€„์ปด SDM845),
      • ํ—ˆ๊ทธ์„  X99 TV ๋ฐ•์Šค(Rockchip RK3399),
      • Khadas Edge/Edge-V/Captain(Rockchip RK3399),
      • ํ•˜์ดํ˜ธํ”„ RZ/G2M,
      • NXP LS1021A-TSN.

๋™์‹œ์— ๋ผํ‹ด ์•„๋ฉ”๋ฆฌ์นด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ(Latin American Free Software Foundation) ํ˜•์„ฑ๋œ
ะฒะฐั€ะธะฐะฝั‚ ์™„์ „ ๋ฌด๋ฃŒ ์ปค๋„ 5.3 - Linux-libre 5.3-gnu, ์ œ์กฐ์—…์ฒด๊ฐ€ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๋Š” ๋น„์ž์œ  ๊ตฌ์„ฑ ์š”์†Œ ๋˜๋Š” ์ฝ”๋“œ ์„น์…˜์„ ํฌํ•จํ•˜๋Š” ํŽŒ์›จ์–ด ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” qcom, hdcp drm, allegro-dvt ๋ฐ meson-vdec ๋“œ๋ผ์ด๋ฒ„์—์„œ Blob ๋กœ๋”ฉ์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๋“œ๋ผ์ด๋ฒ„ ๋ฐ ํ•˜์œ„ ์‹œ์Šคํ…œ amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, skylake์šฉ ์‚ฌ์šด๋“œ ๋“œ๋ผ์ด๋ฒ„ ๋ฐ ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ ๋ฌธ์„œ์˜ Blob ์ •๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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