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

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” Linux 6.0 ์ปค๋„ ์ถœ์‹œ๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ํฌ๊ฒŒ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์€ ๋ฏธํ•™์  ์ด์œ ์ด๋ฉฐ, ์‹œ๋ฆฌ์ฆˆ์—์„œ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ˆ„์ ๋˜๋Š” ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•œ ํ˜•์‹์ ์ธ ์กฐ์น˜์ž…๋‹ˆ๋‹ค. (๋ฆฌ๋ˆ„์Šค๋Š” ์ง€์  ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•œ ์ด์œ ๊ฐ€ ์†๊ฐ€๋ฝ์ด ๋ถ€์กฑํ•ด์„œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ๋†๋‹ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐœ๊ฐ€๋ฝ). ๊ฐ€์žฅ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ๋Š” XFS์˜ ๋น„๋™๊ธฐ ๋ฒ„ํผ๋ง ์“ฐ๊ธฐ ์ง€์›, ublk ๋ธ”๋ก ๋“œ๋ผ์ด๋ฒ„, ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ ์ตœ์ ํ™”, ์ปค๋„์˜ ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์„ ํ™•์ธํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜, ARIA ๋ธ”๋ก ์•”ํ˜ธ ์ง€์› ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋„ 6.0์˜ ์ฃผ์š” ํ˜์‹ :

  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • XFS ํŒŒ์ผ ์‹œ์Šคํ…œ์—๋Š” io_uring ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ๋ฒ„ํผ๋ง๋œ ์“ฐ๊ธฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. fio ๋„๊ตฌ(์Šค๋ ˆ๋“œ 1๊ฐœ, 4kB ๋ธ”๋ก ํฌ๊ธฐ, 600์ดˆ, ์ˆœ์ฐจ ์“ฐ๊ธฐ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•œ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ์—์„œ๋Š” IOPS(์ดˆ๋‹น ์ž…์ถœ๋ ฅ ์ž‘์—…)๊ฐ€ 77k์—์„œ 209k๋กœ, ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„๊ฐ€ 314MB/s์—์„œ 854MB/s๋กœ ์ฆ๊ฐ€ํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ง€์—ฐ ์‹œ๊ฐ„์ด 9600ns์—์„œ 120ns(80๋ฐฐ)๋กœ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
    • Btrfs ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ถ”๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•˜๊ณ  ๋” ํฐ ๋ธ”๋ก(64K ์ด์ƒ)์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฉฐ ์••์ถ• ํ˜•์‹์œผ๋กœ ๋ฒ”์œ„๋ฅผ ์ „์†กํ•˜๋Š” "send" ๋ช…๋ น์— ๋Œ€ํ•œ ํ”„๋กœํ† ์ฝœ์˜ ๋‘ ๋ฒˆ์งธ ๋ฒ„์ „์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ 3๊ฐœ ์„นํ„ฐ๋ฅผ ๋™์‹œ์— ์ฝ์„ ์ˆ˜ ์žˆ์–ด ์ง์ ‘ ์ฝ๊ธฐ ์ž‘์—… ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ตœ๋Œ€ 256๋ฐฐ). ์ง€์—ฐ๋œ ์š”์†Œ์— ๋Œ€ํ•ด ์˜ˆ์•ฝ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ค„์—ฌ ์ž ๊ธˆ ๊ฒฝํ•ฉ์„ ์ค„์ด๊ณ  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ™•์ธ ์†๋„๋ฅผ ๋†’์˜€์Šต๋‹ˆ๋‹ค.
    • ์Šˆํผ๋ธ”๋ก์— ์ €์žฅ๋œ UUID๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ioctl ์ž‘์—… EXT4_IOC_GETFSUUID ๋ฐ EXT4_IC_SETFSUUID๊ฐ€ ext4 ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • F2FS ํŒŒ์ผ ์‹œ์Šคํ…œ์€ RAM ์šฉ๋Ÿ‰์ด ์ ์€ ์žฅ์น˜์˜ ์ž‘์—…์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๊ฐ์ˆ˜ํ•˜๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์ €๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ๋ชจ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • NVMe ๋“œ๋ผ์ด๋ธŒ ์ธ์ฆ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • NFSv4 ์„œ๋ฒ„๋Š” ํ™œ์„ฑ ํด๋ผ์ด์–ธํŠธ ์ˆ˜์— ๋Œ€ํ•œ ์ œํ•œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ์Šคํ…œ์˜ ๊ฐ GB RAM์— ๋Œ€ํ•ด 1024๊ฐœ์˜ ์œ ํšจํ•œ ํด๋ผ์ด์–ธํŠธ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
    • CIFS ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„์œผ๋กœ ๋‹ค์ค‘ ์ฑ„๋„ ์ „์†ก ๋ชจ๋“œ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ๋ฌด์‹œํ•˜๊ธฐ ์œ„ํ•ด fanotify FS์˜ ์ด๋ฒคํŠธ ์ถ”์  ํ•˜์œ„ ์‹œ์Šคํ…œ์— ์ƒˆ๋กœ์šด ํ”Œ๋ž˜๊ทธ FAN_MARK_IGNORE๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Overlayfs FS์—์„œ ์‚ฌ์šฉ์ž ID ๋งคํ•‘์„ ์‚ฌ์šฉํ•˜์—ฌ FS ์œ„์— ๋งˆ์šดํŠธํ•˜๋ฉด POSIX ํ˜ธํ™˜ ์•ก์„ธ์Šค ์ œ์–ด ๋ชฉ๋ก์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ง€์›์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
    • ํŠน์ • ๋กœ์ง์„ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ์ธก๋ฉด์œผ๋กœ ์ด๋™ํ•˜๊ณ  io_uring ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ublk ๋ธ”๋ก ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • DAMON(Data Access MONitor) ํ•˜์œ„ ์‹œ์Šคํ…œ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์–ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ RAM์— ๋Œ€ํ•œ ํ”„๋กœ์„ธ์Šค ์•ก์„ธ์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์—๋„ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด LRU(Least Recent Used) ๋ชฉ๋ก์„ ์žฌ๊ทธ๋ฃนํ™”ํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ "LRU_SORT"๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์€ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ์žฅ์น˜ ๊ฐ„์˜ ๊ณ ์† ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” CXL(Compute Express Link) ๋ฒ„์Šค์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CXL์„ ์‚ฌ์šฉํ•˜๋ฉด ์™ธ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ ์žฅ์น˜์—์„œ ์ œ๊ณตํ•˜๋Š” ์ƒˆ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์—ฐ๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ์ถ”๊ฐ€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ฆฌ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ DDR(Random Access Memory) ๋˜๋Š” PMEM(์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ)์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ผ๋ถ€ ์นฉ์…‹์˜ ํ•˜๋“œ์›จ์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 20๋…„ ์ „์— ์ถ”๊ฐ€๋œ ์ฝ”๋“œ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ AMD Zen ํ”„๋กœ์„ธ์„œ์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์นฉ์…‹์ด ์œ ํœด ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐˆ ์‹œ๊ฐ„์„ ๊ฐ–๋„๋ก ํ”„๋กœ์„ธ์„œ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ WAIT ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์œ ํœด ์ƒํƒœ์™€ ์‚ฌ์šฉ ์ค‘ ์ƒํƒœ๊ฐ€ ์ž์ฃผ ๋ฐ”๋€Œ๋Š” ์ž‘์—… ๋ถ€ํ•˜์—์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋น„ํ™œ์„ฑํ™”ํ•œ ํ›„ ํ‰๊ท  tbench ํ…Œ์ŠคํŠธ ์ ์ˆ˜๋Š” 32191MB/s์—์„œ 33805MB/s๋กœ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฒฝํ—˜์  ๋ฐฉ๋ฒ•์ด ํฌํ•จ๋œ ์ฝ”๋“œ๊ฐ€ ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ œ๊ฑฐ๋˜์–ด ์˜ˆ์ƒ๋˜๋Š” ์—๋„ˆ์ง€ ์†Œ๋น„ ์ฆ๊ฐ€๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋ถ€ํ•˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ CPU๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ํœด๋ฆฌ์Šคํ‹ฑ์ด ์ถฉ๋ถ„ํžˆ ์œ ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์œผ๋กœ ์ธํ•ด ์ž ์žฌ์ ์œผ๋กœ ์ „๋ ฅ ์†Œ๋น„๊ฐ€ ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ(์˜ˆ: ๋Œ€์ƒ CPU๊ฐ€ ๋” ๋‚ฎ์€ ์ „๋ ฅ ๊ณ„์ธต์— ์žˆ๋Š” ๊ฒฝ์šฐ)๋งˆ๋‹ค ์ถ”๊ฐ€ ํ‰๊ฐ€ ์—†์ด ํœด๋ฆฌ์Šคํ‹ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ๋‹ค๊ณ  ๊ฒฐ๋ก ์ง€์—ˆ์Šต๋‹ˆ๋‹ค. ํœด๋ฆฌ์Šคํ‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ง‘์ค‘์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ „๋ ฅ ์†Œ๋น„๊ฐ€ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋น„๋””์˜ค ๋””์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ „๋ ฅ ์†Œ๋น„๊ฐ€ 5.6% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์˜ CPU ์ฝ”์–ด ์ „๋ฐ˜์— ๊ฑธ์นœ ์ž‘์—… ๋ถ„๋ฐฐ๊ฐ€ ์ตœ์ ํ™”๋˜์–ด ํŠน์ • ์œ ํ˜•์˜ ์ž‘์—… ๋ถ€ํ•˜์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • io_uring ๋น„๋™๊ธฐ I/O ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ƒˆ๋กœ์šด ํ”Œ๋ž˜๊ทธ IORING_RECV_MULTISHOT๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Recv() ์‹œ์Šคํ…œ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ๋ฉ€ํ‹ฐ์ƒท ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ์†Œ์ผ“์—์„œ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ฝ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. io_uring์€ ์ค‘๊ฐ„ ๋ฒ„ํผ๋ง(์ œ๋กœ ๋ณต์‚ฌ) ์—†์ด ๋„คํŠธ์›Œํฌ ์ „์†ก๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • uprobe์— ์—ฐ๊ฒฐ๋œ BPF ํ”„๋กœ๊ทธ๋žจ์„ ์ ˆ์ „ ์ƒํƒœ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. BPF๋Š” ๋˜ํ•œ ์ปค๋„ ๊ธฐํ˜ธ ํ…Œ์ด๋ธ” ์ž‘์—…์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ฐ˜๋ณต์ž ksym์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • UEFI ๋ถ€ํŒ… ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ sysfs์˜ ์˜ค๋ž˜๋œ "efivars" ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(efivarfs ๊ฐ€์ƒ FS๋Š” ์ด์ œ EFI ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค).
    • perf ์œ ํ‹ธ๋ฆฌํ‹ฐ์—๋Š” ์ž ๊ธˆ ์ถฉ๋Œ๊ณผ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ปค๋„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ณด๊ณ ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    • CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 ์„ค์ •์ด ์ œ๊ฑฐ๋˜์–ด "-O3" ์ตœ์ ํ™” ๋ชจ๋“œ์—์„œ ์ปค๋„์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™” ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์‹คํ—˜์€ ์–ด์…ˆ๋ธ”๋ฆฌ ์ค‘์— ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ("make KCFLAGS=-O3") Kconfig์— ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ ํ”„๋กœํŒŒ์ผ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” "-O3" ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฃจํ”„ ์–ธ๋กค๋ง์ด ๋‹ค์Œ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. "-O2" ์ตœ์ ํ™” ์ˆ˜์ค€์— ๋น„ํ•ด ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐœ๋ณ„ "๋ฉ”๋ชจ๋ฆฌ ์ถ•์†Œ๊ธฐ"(๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•ธ๋“ค๋Ÿฌ์™€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ปค๋„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํŒจํ‚นํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ)์˜ ์ž‘๋™์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด debugfs ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • OpenRISC ๋ฐ LoongArch ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ PCI ๋ฒ„์Šค์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • RISC-V ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์บ์‹œ ์ผ๊ด€์„ฑ์ด ์—†๋Š” DMA๊ฐ€ ์žˆ๋Š” ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด "Zicbom" ํ™•์žฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • ์˜ค๋ฅ˜ ์—†์Œ์„ ๋ณด์žฅํ•˜๋Š” ์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ์‹œ์Šคํ…œ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด RV(๋Ÿฐํƒ€์ž„ ๊ฒ€์ฆ) ๊ฒ€์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธ์€ ์‹œ์Šคํ…œ์˜ ์˜ˆ์ƒ ๋™์ž‘์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๊ณ„์˜ ์‚ฌ์ „ ๊ฒฐ์ •๋œ ์ฐธ์กฐ ๊ฒฐ์ •์  ๋ชจ๋ธ์— ๋Œ€ํ•ด ์‹ค์ œ ์‹คํ–‰ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ™•์ธํ•˜๋Š” ์ถ”์  ์ง€์ ์— ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์— ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ์‹œ ๋ชจ๋ธ์„ ํ†ตํ•œ ๊ฒ€์ฆ์€ ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰์˜ ์ •ํ™•์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ณด๋‹ค ๊ฐ€๋ณ๊ณ  ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ์œผ๋ฉฐ ๊ธฐ์กด์˜ ์‹ ๋ขฐ์„ฑ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค. RV์˜ ์žฅ์  ์ค‘์—๋Š” ๋ชจ๋ธ๋ง ์–ธ์–ด๋กœ ์ „์ฒด ์‹œ์Šคํ…œ์„ ๋ณ„๋„๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ ๋„ ์—„๊ฒฉํ•œ ๊ฒ€์ฆ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์‚ฌ๊ฑด์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ๋“ฑ์ด ์žˆ๋‹ค.
    • Intel SGX2(Software Guard eXtensions) ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—”ํด๋ ˆ์ด๋ธŒ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ†ตํ•ฉ ์ปค๋„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์Šคํ…œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์ด ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ๊ฒฉ๋ฆฌ๋œ ์•”ํ˜ธํ™”๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Intel SGX2 ๊ธฐ์ˆ ์€ Intel Ice Lake ๋ฐ Gemini Lake ์นฉ์—์„œ ์ง€์›๋˜๋ฉฐ ์—”ํด๋ ˆ์ด๋ธŒ์˜ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ง€์นจ์ด Intel SGX1๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
    • x86 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ๋ถ€ํŠธ๋กœ๋” ์„ค์ •์„ ํ†ตํ•ด ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ์˜ ์‹œ๋“œ๋ฅผ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ด์ œ SafeSetID LSM ๋ชจ๋“ˆ์—๋Š” setgroups() ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. SafeSetID๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ ์„œ๋น„์Šค์—์„œ ๊ถŒํ•œ ์ƒ์Šน(CAP_SETUID)์ด๋‚˜ ๋ฃจํŠธ ๊ถŒํ•œ ํš๋“ ์—†์ด ์‚ฌ์šฉ์ž๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ARIA ๋ธ”๋ก ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • BPF ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ๊ด€๋ฆฌ ๋ชจ๋“ˆ์€ ๊ฐœ๋ณ„ ํ”„๋กœ์„ธ์Šค ๋ฐ ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฃน(cgroup)์— ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • vCPU ํ™œ๋™ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ์ •์ง€๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์‹œ ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • SYN ์ฟ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ™•์ธํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ๊ฐ€ BPF ํ•˜์œ„ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฐ๊ฒฐ ์ƒํƒœ์— ์•ก์„ธ์Šคํ•˜๊ณ  ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜ ์„ธํŠธ(kfunc)๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฌด์„  ์Šคํƒ์—๋Š” WiFi 7 ์‚ฌ์–‘์— ์ •์˜๋œ MLO(Multi-Link Operation) ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด ์žฅ์น˜๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ฃผํŒŒ์ˆ˜ ๋Œ€์—ญ๊ณผ ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๋Ÿฌ ํ†ต์‹  ์ฑ„๋„์„ ๋™์‹œ์— ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์žฅ์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํฌ์ธํŠธ.
    • ์ปค๋„์— ๋‚ด์žฅ๋œ TLS ํ”„๋กœํ† ์ฝœ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „ ๋ถ€ํŒ… ํ”„๋กœ์„ธ์Šค ์ดˆ๊ธฐ์— ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค๋„ ๋ช…๋ น์ค„ ์˜ต์…˜ "hostname="์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • i915(Intel) ๋“œ๋ผ์ด๋ฒ„๋Š” Intel Arc(DG2/Alchemist) A750 ๋ฐ A770 ๊ฐœ๋ณ„ ๋น„๋””์˜ค ์นด๋“œ์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Intel Ponte Vecchio(Xe-HPC) ๋ฐ Meteor Lake GPU์— ๋Œ€ํ•œ ์ง€์›์˜ ์ดˆ๊ธฐ ๊ตฌํ˜„์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Intel Raptor Lake ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋Š” ์ž‘์—…์ด ๊ณ„์† ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • amdgpu ๋“œ๋ผ์ด๋ฒ„๋Š” AMD RDNA3(RX 7000) ๋ฐ CDNA(Instinct) ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ณ„์† ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • Nouveau ๋“œ๋ผ์ด๋ฒ„๋Š” NVIDIA nv50 GPU ๋””์Šคํ”Œ๋ ˆ์ด ์—”์ง„์— ๋Œ€ํ•œ ์ง€์› ์ฝ”๋“œ๋ฅผ ์žฌ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • LogiCVC ํ™”๋ฉด์— ์ƒˆ๋กœ์šด logicvc DRM ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • v3d ๋“œ๋ผ์ด๋ฒ„(Broadcom Video Core GPU์šฉ)๋Š” Raspberry Pi 4 ๋ณด๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • msm ๋“œ๋ผ์ด๋ฒ„์— Qualcomm Adreno 619 GPU์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Panfrost ๋“œ๋ผ์ด๋ฒ„์— ARM Mali Valhall GPU์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Lenovo ThinkPad X8s ๋…ธํŠธ๋ถ์— ์‚ฌ์šฉ๋˜๋Š” Qualcomm Snapdragon 3cx Gen13 ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • AMD Raphael(Ryzen 7000), AMD Jadeite, Intel Meteor Lake ๋ฐ Mediatek MT8186 ํ”Œ๋žซํผ์šฉ ์‚ฌ์šด๋“œ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Intel Habana Gaudi 2 ๊ธฐ๊ณ„ ํ•™์Šต ๊ฐ€์†๊ธฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋™์‹œ์— ๋ผํ‹ด ์•„๋ฉ”๋ฆฌ์นด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ์€ ์™„์ „ ๋ฌด๋ฃŒ ์ปค๋„ 6.0 ๋ฒ„์ „์ธ Linux-libre 6.0-gnu๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์—๋Š” ๋น„์ž์œ  ๊ตฌ์„ฑ ์š”์†Œ๋‚˜ ์ฝ”๋“œ ์„น์…˜์ด ํฌํ•จ๋œ ํŽŒ์›จ์–ด ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ทธ ๋ฒ”์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ œ์กฐ์—…์ฒด์— ์˜ํ•ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” CS35L41 HD ์˜ค๋””์˜ค ๋“œ๋ผ์ด๋ฒ„ ๋ฐ STM32G0 ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์šฉ UCSI ๋“œ๋ผ์ด๋ฒ„์—์„œ Blob ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. Qualcomm ๋ฐ MediaTek ์นฉ์šฉ DTS ํŒŒ์ผ์ด ์ •๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. MediaTek MT76 ๋“œ๋ผ์ด๋ฒ„์˜ Blob ๋น„ํ™œ์„ฑํ™”๊ฐ€ ์žฌ์ž‘์—…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AMDGPU, Adreno, Tegra VIC, Netronome NFP ๋ฐ Habanalabs Gaudi2 ๋“œ๋ผ์ด๋ฒ„ ๋ฐ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์–ผ๋ฃฉ ์ •๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„์—์„œ ์ œ๊ฑฐ๋œ VXGE ๋“œ๋ผ์ด๋ฒ„ ์ฒญ์†Œ๋ฅผ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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