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

๋‘ ๋‹ฌ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” Linux ์ปค๋„ 5.18์˜ ์ถœ์‹œ๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ์˜ค๋ž˜๋œ ๊ธฐ๋Šฅ์˜ ๋Œ€๋Œ€์ ์ธ ์ •๋ฆฌ ์ˆ˜ํ–‰, Reiserfs FS๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์„ ์–ธ, ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ์ถ”์  ์ด๋ฒคํŠธ ๊ตฌํ˜„, Intel IBT ์ต์Šคํ”Œ๋กœ์ž‡ ์ฐจ๋‹จ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€, ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฐ์ง€ ๋ชจ๋“œ ํ™œ์„ฑํ™” memcpy() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ fprobe ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ถ”์ ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AMD Zen CPU์˜ ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์œผ๋ฉฐ Intel CPU ๊ธฐ๋Šฅ(SDS) ๊ด€๋ฆฌ์šฉ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ํฌํ•จ๋˜์—ˆ์œผ๋ฉฐ ์ผ๋ถ€ ํŒจ์น˜๊ฐ€ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋” ํŒŒ์ผ ์žฌ๊ตฌ์„ฑ์„ ์œ„ํ•ด C11 ํ‘œ์ค€ ์‚ฌ์šฉ์ด ์Šน์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—๋Š” 16206๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ •ํ•œ 2127๊ฐœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์ง€๋‚œ ๋ฆด๋ฆฌ์Šค์—๋Š” 14203๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ 1995๊ฐœ์˜ ์ˆ˜์ •์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค). ํŒจ์น˜ ํฌ๊ธฐ๋Š” 108MB์ž…๋‹ˆ๋‹ค(๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ 14235๊ฐœ์˜ ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  1340982์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ 593836์ค„์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). 44์— ๋„์ž…๋œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์•ฝ 5.18%๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ์ด ์žˆ๊ณ , ์•ฝ 16%๋Š” ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ์™€ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, 11%๋Š” ๋„คํŠธ์›Œํ‚น ์Šคํƒ๊ณผ ๊ด€๋ จ์ด ์žˆ๊ณ , 3%๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, 3%๋Š” ๋‚ด๋ถ€ ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • Btrfs ํŒŒ์ผ ์‹œ์Šคํ…œ์—๋Š” ๋ณด๋‚ด๊ธฐ ๋ฐ ๋ฐ›๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์••์ถ•๋œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๋ณด๋‚ด๊ธฐ/๋ฐ›๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ์••์ถ•๋œ ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ์—์„œ ์••์ถ•์„ ํ’€๊ณ , ๋ฐ›๋Š” ์ชฝ์—์„œ๋Š” ๋‹ค์‹œ ์••์ถ•ํ•œ ํ›„ ์“ฐ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. 5.18 ์ปค๋„์—์„œ๋Š” ๋ณด๋‚ด๊ธฐ/๋ฐ›๊ธฐ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‹ค์‹œ ํŒจํ‚ค์ง•ํ•˜์ง€ ์•Š๊ณ ๋„ ์••์ถ•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ƒˆ๋กœ์šด ioctl ์ž‘์—… BTRFS_IOC_ENCODED_READ ๋ฐ BTRFS_IOC_ENCODED_WRITE ๋•๋ถ„์— ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ต์Šคํ…ํŠธ์— ์ง์ ‘ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      ๋˜ํ•œ Btrfs๋Š” fsync ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋งˆ์šดํŠธ ์ง€์ ์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ  ์ „์ฒด ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•ด ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ์ฐธ์กฐ ๋งํฌ(์‹ค์ œ๋กœ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ๊ธฐ์กด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํŒŒ์ผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณต์ œ)๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • Direct I/O ๋ชจ๋“œ์—์„œ๋Š” fscrypt๊ฐ€ ์ปค๋„์ด ์•„๋‹Œ ๋“œ๋ผ์ด๋ธŒ ์ปจํŠธ๋กค๋Ÿฌ์— ์˜ํ•ด ์•”ํ˜ธํ™” ๋ฐ ์•”ํ˜ธ ํ•ด๋… ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๋Š” ์ธ๋ผ์ธ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์ปค๋„ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปค๋„์˜ ๋ฒ„ํผ๋ง ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์šฐํšŒํ•˜์—ฌ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋ฏ€๋กœ ์ง์ ‘ I/O๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • NFS ์„œ๋ฒ„์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ NFSv3 ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด์ œ ๋ณ„๋„์˜ ํ™œ์„ฑํ™”๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ NFS๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NFSv3์€ NFS์˜ ๊ธฐ๋ณธ ๋ฒ„์ „์ด์ž ํ•ญ์ƒ ์ง€์›๋˜๋Š” ๋ฒ„์ „์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ NFSv2์— ๋Œ€ํ•œ ์ง€์›์€ ํ–ฅํ›„ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์šฉ ์ฝ๊ธฐ์˜ ํšจ์œจ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ReiserFS ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ 2025๋…„์— ์ œ๊ฑฐ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ReiserFS๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋งˆ์šดํŒ…, iomap ๋ฐ tomes๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด API ์ง€์›๊ณผ ๊ด€๋ จ๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ „์ฒด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋…ธ๋ ฅ์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.
    • F2FS ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ๋งˆ์šดํŠธ๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ์ž ID๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋งˆ์šดํŠธ๋œ ์™ธ๋ถ€ ํŒŒํ‹ฐ์…˜์— ์žˆ๋Š” ํŠน์ • ์‚ฌ์šฉ์ž์˜ ํŒŒ์ผ์„ ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๋น„๊ตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • Device-mapper ํ•ธ๋“ค๋Ÿฌ์—์„œ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žฌ์ž‘์—…๋˜์–ด dm-crypt์™€ ๊ฐ™์€ ํ•ธ๋“ค๋Ÿฌ์˜ ๊ณ„์‚ฐ ์ •ํ™•๋„๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • NVMe ์žฅ์น˜๋Š” ์ด์ œ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด 64๋น„ํŠธ ์ฒดํฌ์„ฌ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • exfat ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ํŒŒ์ผ ์ด๋ฆ„ ๋์— ์žˆ๋Š” ์  ์ง€์šฐ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์ƒˆ๋กœ์šด ๋งˆ์šดํŠธ ์˜ต์…˜ "keep_last_dots"๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Windows์—์„œ๋Š” ํŒŒ์ผ ์ด๋ฆ„ ๋์— ์žˆ๋Š” ์ ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค).
    • EXT4๋Š” fast_commit ๋ชจ๋“œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ํ™•์žฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ๊ฐํ™” ์กฐ๊ฑด์—์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” "mb_optimize_scan" ๋งˆ์šดํŠธ ์˜ต์…˜์€ ๋ฒ”์œ„๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ ์ž‘์—…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
    • ๋ธ”๋ก ์žฅ์น˜๋ฅผ ์ง€์›ํ•˜๋Š” ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์“ฐ๊ธฐ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ SSD์šฉ์œผ๋กœ ์ œ์•ˆ๋˜์—ˆ์ง€๋งŒ ๋„๋ฆฌ ๋ณด๊ธ‰๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํ˜„์žฌ ์ด ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ์žฅ์น˜๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์•ž์œผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • ํŒจ์น˜ ์„ธํŠธ์˜ ํ†ตํ•ฉ์ด ์‹œ์ž‘๋˜์–ด ํ—ค๋” ํŒŒ์ผ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  ์ƒํ˜ธ ์ข…์†์„ฑ ์ˆ˜๋ฅผ ์ค„์—ฌ ์ปค๋„์„ ์žฌ๊ตฌ์ถ•ํ•˜๋Š” ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ 5.18์—๋Š” ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ ํ—ค๋” ํŒŒ์ผ(kernel/sched)์˜ ๊ตฌ์กฐ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ํŒจ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฆด๋ฆฌ์Šค์™€ ๋น„๊ตํ•˜์—ฌ ์ปค๋„/sched/์ฝ”๋“œ๋ฅผ ์กฐ๋ฆฝํ•  ๋•Œ CPU ์‹œ๊ฐ„ ์†Œ๋ชจ๊ฐ€ 61% ๊ฐ์†Œํ–ˆ์œผ๋ฉฐ, ์‹ค์ œ ์‹œ๊ฐ„์€ 3.9%(2.95์ดˆ์—์„œ 2.84์ดˆ๋กœ) ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„ ์ฝ”๋“œ๋Š” 11๋…„์— ๋ฐœํ‘œ๋œ C2011 ํ‘œ์ค€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ปค๋„์— ์ถ”๊ฐ€๋œ ์ฝ”๋“œ๊ฐ€ 89๋…„์— ํ˜•์„ฑ๋œ ANSI C(C1989) ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. 5.18 ์ปค๋„ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” 'โ€”std=gnu89' ์˜ต์…˜์ด 'โ€”std=gnu11 -Wno-shift-negative-value'๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. C17 ํ‘œ์ค€์„ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๊ณ ๋ ค๋˜์—ˆ์ง€๋งŒ ์ด ๊ฒฝ์šฐ GCC์˜ ์ตœ์†Œ ์ง€์› ๋ฒ„์ „์„ ๋Š˜๋ ค์•ผ ํ•˜๋ฉฐ C11 ์ง€์› ํฌํ•จ์€ GCC ๋ฒ„์ „(5.1)์˜ ํ˜„์žฌ ์š”๊ตฌ ์‚ฌํ•ญ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
    • ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์ฑ„๋„์ด ์žˆ๋Š” ๊ฐ ๋…ธ๋“œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ ์บ์‹œ(LLC)๋ฅผ ์ œ๊ณตํ•˜๋Š” Zen ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AMD ํ”„๋กœ์„ธ์„œ์˜ ์ž‘์—… ์˜ˆ์•ฝ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์€ NUMA ๋…ธ๋“œ ๊ฐ„์˜ LLC ๋ถˆ๊ท ํ˜•์„ ์ œ๊ฑฐํ•˜์—ฌ ์ผ๋ถ€ ์œ ํ˜•์˜ ์›Œํฌ๋กœ๋“œ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ถ”์ ํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ปค๋„ ๋ฒ„์ „์—๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ถ”์  ๋ฒ„ํผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ftrace ๋ฐ perf์™€ ๊ฐ™์€ ํ‘œ์ค€ ์ปค๋„ ์ถ”์  ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํ†ตํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์ถ”์  ์ด๋ฒคํŠธ๋Š” ์ปค๋„ ์ถ”์  ์ด๋ฒคํŠธ์™€ ๊ฒฉ๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์ƒํƒœ๋Š” /sys/kernel/debug/tracing/user_events_status ํŒŒ์ผ์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฒคํŠธ ๋“ฑ๋ก ๋ฐ ๋ฐ์ดํ„ฐ ๊ธฐ๋ก์€ /sys/kernel/debug/tracing/user_events_data ํŒŒ์ผ์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ชจ๋‹ˆํ„ฐ๋ง(ํ”„๋กœ๋ธŒ) ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ธ fprobe๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. fprobe API๋Š” ftrace๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€๋งŒ ์ฝœ๋ฐฑ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ•จ์ˆ˜ ์ง„์ž…์ ๊ณผ ํ•จ์ˆ˜ ์ข…๋ฃŒ์ ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์— ์˜ํ•ด์„œ๋งŒ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. kprobes ๋ฐ kretprobes์™€ ๋‹ฌ๋ฆฌ ์ƒˆ๋กœ์šด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • MMU(๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜)๊ฐ€ ์žฅ์ฐฉ๋˜์ง€ ์•Š์€ ์ด์ „ ARM ํ”„๋กœ์„ธ์„œ(ARMv4 ๋ฐ ARMv5)์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. MMU๊ฐ€ ์—†๋Š” ARMv7-M ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
    • Andes Technologies ํ”„๋กœ์„ธ์„œ์— ์‚ฌ์šฉ๋˜๋Š” RISC์™€ ์œ ์‚ฌํ•œ NDS32 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๊ณ  ๊ธฐ๋ณธ Linux ์ปค๋„์—์„œ NDS32 ์ง€์›์— ๋Œ€ํ•œ ์ˆ˜์š”๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋‚˜๋จธ์ง€ ์‚ฌ์šฉ์ž๋Š” ํ•˜๋“œ์›จ์–ด ์ œ์กฐ์—…์ฒด์˜ ํŠน์ˆ˜ ์ปค๋„ ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•จ).
    • ๊ธฐ๋ณธ์ ์œผ๋กœ a.out ์‹คํ–‰ ํŒŒ์ผ ํ˜•์‹์„ ์ง€์›ํ•˜๋Š” ์ปค๋„ ๋นŒ๋“œ๋Š” ์ด ํ˜•์‹์„ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” alpha ๋ฐ m68k ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๋ ˆ๊ฑฐ์‹œ a.out ํ˜•์‹์— ๋Œ€ํ•œ ์ง€์›์ด ๊ณง ์ปค๋„์—์„œ ์™„์ „ํžˆ ์ œ๊ฑฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. a.out ํ˜•์‹์„ ์ œ๊ฑฐํ•˜๋ ค๋Š” ๊ณ„ํš์€ 2019๋…„๋ถ€ํ„ฐ ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • PA-RISC ์•„ํ‚คํ…์ฒ˜๋Š” ์ปจํ…์ŠคํŠธ ์ „ํ™˜ ์—†์ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ œํ•œ๋œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” vDSO(๊ฐ€์ƒ ๋™์  ๊ณต์œ  ๊ฐ์ฒด) ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•ด ์ตœ์†Œํ•œ์˜ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. vDSO ์ง€์›์„ ํ†ตํ•ด ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•œ ์Šคํƒ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    • Intel HFI(ํ•˜๋“œ์›จ์–ด ํ”ผ๋“œ๋ฐฑ ์ธํ„ฐํŽ˜์ด์Šค) ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด๋Š” ๊ฐ CPU์˜ ํ˜„์žฌ ์„ฑ๋Šฅ ๋ฐ ์—๋„ˆ์ง€ ํšจ์œจ์„ฑ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ปค๋„์— ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ”„๋กœ์„ธ์„œ์— ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(์˜ˆ: ํŠน์ˆ˜ ๋ช…๋ น ๋ฐ ์ถ”๊ฐ€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ) ํฌํ•จ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” Intel SDSi(์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ ์‹ค๋ฆฌ์ฝ˜) ๋ฉ”์ปค๋‹ˆ์ฆ˜์šฉ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ž ๊ธด ์ƒํƒœ์—์„œ ์นฉ์„ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์— ๊ณต๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์นฉ์„ "๊ตฌ๋งค"ํ•˜๊ณ  ์นฉ์˜ ํ•˜๋“œ์›จ์–ด ๊ต์ฒด ์—†์ด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Fam19h ์„ธ๋Œ€๋ถ€ํ„ฐ AMD EPYC ์„œ๋ฒ„ ํ”„๋กœ์„ธ์„œ์— ๋‚˜ํƒ€๋‚œ ํŠน์ˆ˜ ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์„œ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” AMD HSMP(ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ ํฌํŠธ) ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด amd_hsmp ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, HSMP๋ฅผ ํ†ตํ•ด ์ „๋ ฅ ์†Œ๋น„ ๋ฐ ์˜จ๋„์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ณ , ์ฃผํŒŒ์ˆ˜ ์ œํ•œ์„ ์„ค์ •ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • io_uring ๋น„๋™๊ธฐ I/O ์ธํ„ฐํŽ˜์ด์Šค๋Š” IORING_SETUP_SUBMIT_ALL ์˜ต์…˜์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋ง ๋ฒ„ํผ์— ํŒŒ์ผ ์„ค๋ช…์ž ์ง‘ํ•ฉ์„ ๋“ฑ๋กํ•˜๊ณ  IORING_OP_MSG_RING ์ž‘์—…์„ ๊ตฌํ˜„ํ•˜์—ฌ ํ•œ ๋ง ๋ฒ„ํผ์—์„œ ๋‹ค๋ฅธ ๋ง ๋ฒ„ํผ๋กœ ์‹ ํ˜ธ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ๋นˆ๋„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋Š” DAMOS(Data Access Monitoring-based Operation Schemes) ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—…์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์„ธ ๋ฒˆ์งธ ํŒจ์น˜ ์‹œ๋ฆฌ์ฆˆ๋Š” ํŽ˜์ด์ง€ ํด๋ฆฌ์˜ค ๊ฐœ๋… ๊ตฌํ˜„๊ณผ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณตํ•ฉ ํŽ˜์ด์ง€์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์˜๋ฏธ๊ฐ€ ๊ฐœ์„ ๋˜๊ณ  ์ž‘์—… ๊ตฌ์„ฑ์ด ๋”์šฑ ๋ช…ํ™•ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ฑ…์„ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ถ€ ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ํŒจ์น˜์—์„œ๋Š” get_user_pages() ํ•จ์ˆ˜์˜ ๋ณ€ํ˜•์„ ํฌํ•จํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด Folio๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์ฝ๊ธฐ ์ฝ”๋“œ์—์„œ ๋Œ€์šฉ๋Ÿ‰ ์ƒ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด์ œ ์–ด์…ˆ๋ธ”๋ฆฌ ์‹œ์Šคํ…œ์€ USERCFLAGS ๋ฐ USERLDFLAGS ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๋ง์ปค์— ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • eBPF ์„œ๋ธŒ์‹œ์Šคํ…œ์—์„œ BPF ์˜์‚ฌ์ฝ”๋“œ๋กœ ์œ ํ˜• ๊ฒ€์‚ฌ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” BTF(BPF ์œ ํ˜• ํ˜•์‹) ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์„์€ BPF ์ฝ”๋“œ ํ™•์ธ ์‹œ์Šคํ…œ์ด ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ๋” ์ž˜ ์‹๋ณ„ํ•˜๊ณ  ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
    • ๋กœ๋“œ๋œ BPF ํ”„๋กœ๊ทธ๋žจ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋งŽ์€ ์ˆ˜์˜ BPF ํ”„๋กœ๊ทธ๋žจ์ด ๋กœ๋“œ๋˜๋Š” ์ƒํ™ฉ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • MADV_DONTNEED_LOCKED ํ”Œ๋ž˜๊ทธ๊ฐ€ madvise() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ์กด MADV_DONTNEED ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ณด์™„ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ตœ์ ํ™” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์˜ ์ž„๋ฐ•ํ•œ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ์ปค๋„์— ๋ฏธ๋ฆฌ ์•Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ธ”๋ก์€ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ปค๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MADV_DONTNEED์™€ ๋‹ฌ๋ฆฌ MADV_DONTNEED_LOCKED ํ”Œ๋ž˜๊ทธ์˜ ์‚ฌ์šฉ์€ RAM์— ๊ณ ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์— ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. madvise๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ๊ณ ์ •๋œ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ œ๊ฑฐ๋˜๋ฉฐ, ์ดํ›„์— ๋ธ”๋ก์— ์•ก์„ธ์Šคํ•˜๊ณ  "ํŽ˜์ด์ง€"๊ฐ€ โ€‹โ€‹์ƒ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ ์˜ค๋ฅ˜โ€๋Š” ๋ฐ”์ธ๋”ฉ์ด ์œ ์ง€๋œ ์ƒํƒœ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, HugeTLB์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์—์„œ MADV_DONTNEED ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • x86 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ Intel IBT(๊ฐ„์ ‘ ๋ถ„๊ธฐ ์ถ”์ ) ๋ช…๋ น ํ๋ฆ„ ๋ณดํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ˜ํ™˜ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ (ROP, Return-Oriented ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฒฉ ๊ตฌ์„ฑ ๊ธฐ์ˆ ์˜ ์‚ฌ์šฉ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ œ์–ด ๋ฐ˜ํ™˜ ๋ช…๋ น์œผ๋กœ ๋๋‚˜๋Š” ๊ธฐ๊ณ„ ๋ช…๋ น ์กฐ๊ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ˜ธ์ถœ ์ฒด์ธ ํ˜•ํƒœ๋กœ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜์˜ ๋์ž…๋‹ˆ๋‹ค). ๊ตฌํ˜„๋œ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•์˜ ํ•ต์‹ฌ์€ ํ•จ์ˆ˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ํŠน์ˆ˜ ENDBR ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด ๋ช…๋ น์–ด๋กœ ์ „ํ™˜๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฐ„์ ‘ ์ „ํ™˜ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜์—ฌ ํ•จ์ˆ˜ ๋ณธ๋ฌธ์œผ๋กœ์˜ ๊ฐ„์ ‘ ์ „ํ™˜์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ฐ„์ ‘ ์ „ํ™˜). JMP๋ฅผ ํ†ตํ•œ ํ˜ธ์ถœ ๋ฐ CALL์€ ํ•ญ์ƒ ๋งจ ์ฒ˜์Œ ํ•จ์ˆ˜์— ๋ฐฐ์น˜๋˜๋Š” ENDBR ๋ช…๋ น์— ์†ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • CONFIG_FORTIFY_SOURCE ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ˆ˜ํ–‰๋˜๋Š” memcpy(), memmove() ๋ฐ memset() ํ•จ์ˆ˜์—์„œ ๋ฒ„ํผ ๊ฒฝ๊ณ„๋ฅผ ๋ณด๋‹ค ์—„๊ฒฉํ•˜๊ฒŒ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํฌ๊ธฐ๊ฐ€ ์•Œ๋ ค์ง„ ๊ตฌ์กฐ ์š”์†Œ๊ฐ€ ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ ์–ด๋„ ์ง€๋‚œ 3๋…„ ๋™์•ˆ ์‹๋ณ„๋œ ๋ชจ๋“  memcpy() ๊ด€๋ จ ์ปค๋„ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • /dev/random ๋ฐ /dev/urandom ์žฅ์น˜์˜ ์ž‘๋™์„ ๋‹ด๋‹นํ•˜๋Š” RDRAND ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ์˜ ์—…๋ฐ์ดํŠธ๋œ ๊ตฌํ˜„์„ ์œ„ํ•ด ์ฝ”๋“œ์˜ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ตฌํ˜„์€ /dev/random ๋ฐ /dev/urandom์˜ ์ž‘์—…์„ ํ†ตํ•ฉํ•˜๊ณ , ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‹œ์ž‘ํ•  ๋•Œ ๋‚œ์ˆ˜ ์ŠคํŠธ๋ฆผ์— ์ค‘๋ณต์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ , SHA2 ๋Œ€์‹  BLAKE1s ํ•ด์‹œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜ํ•˜๋Š” ์ ์—์„œ ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ์—”ํŠธ๋กœํ”ผ ํ˜ผํ•ฉ ์ž‘์—…. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” SHA1 ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ฑฐํ•˜๊ณ  RNG ์ดˆ๊ธฐํ™” ๋ฒกํ„ฐ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ์˜ ๋ณด์•ˆ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. BLAKE2s ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ SHA1๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์„ฑ๋Šฅ์— ๊ธ์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค.
    • ARM64 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์ ์ ˆํ•œ ๋ณด์•ˆ ์ˆ˜์ค€์„ ์œ ์ง€ํ•˜๋ฉด์„œ QARMA ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ๋น ๋ฅธ ์ƒˆ๋กœ์šด ํฌ์ธํ„ฐ ์ธ์ฆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ "QARMA3"์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ˆ˜ ARM64 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ธํ„ฐ ์ž์ฒด์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ƒ์œ„ โ€‹โ€‹๋น„ํŠธ์— ์ €์žฅ๋œ ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ARM64 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์Šคํƒ์—์„œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋„๋ก ๋ณดํ˜ธ ๋ชจ๋“œ๋ฅผ GCC 12์— ํฌํ•จํ•˜์—ฌ ์–ด์…ˆ๋ธ”๋ฆฌ์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ˜ธ์˜ ๋ณธ์งˆ์€ ์ œ์–ด๋ฅผ ํ•จ์ˆ˜๋กœ ์ „์†กํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•˜๊ธฐ ์ „์— ์ด ์ฃผ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•œ ํ›„ ๋ณ„๋„์˜ "์„€๋„์šฐ" ์Šคํƒ์— ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    • shim ๋ถ€ํŠธ๋กœ๋”์—์„œ ์ง€์›๋˜๋Š” ์‹œ์Šคํ…œ ์†Œ์œ ์ž ํ‚ค(MOK, ๋จธ์‹  ์†Œ์œ ์ž ํ‚ค)๊ฐ€ ํฌํ•จ๋œ ์ƒˆ๋กœ์šด ํ‚ค๋ง์ธ "๋จธ์‹ "์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‚ค๋Š” ๋ถ€ํŒ… ํ›„ ๋‹จ๊ณ„์—์„œ ๋กœ๋“œ๋œ ์ปค๋„ ๊ตฌ์„ฑ ์š”์†Œ(์˜ˆ: ์ปค๋„ ๋ชจ๋“ˆ)์— ๋””์ง€ํ„ธ ์„œ๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • TPM์˜ ๋ ˆ๊ฑฐ์‹œ ๋ฒ„์ „์—์„œ ์ œ๊ณต๋˜๊ณ  ์•Œ๋ ค์ง„ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ ๋„๋ฆฌ ์ฑ„ํƒ๋˜์ง€ ์•Š์€ TPM์— ๋Œ€ํ•œ ๋น„๋Œ€์นญ ๊ฐœ์ธ ํ‚ค์— ๋Œ€ํ•œ ์ง€์›์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ๋ถ€ํ„ฐ size_t ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์—๋Š” size_t ์œ ํ˜•์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ณฑํ•˜๊ณ , ๋”ํ•˜๊ณ , ๋บ„ ์ˆ˜ ์žˆ๋Š” ํ•ธ๋“ค๋Ÿฌ size_mul(), size_add() ๋ฐ size_sub()๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„์„ ๋นŒ๋“œํ•  ๋•Œ "-Warray-bounds" ๋ฐ "-Wzero-length-bounds" ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์ธ๋ฑ์Šค๊ฐ€ ๋ฐฐ์—ด ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ๊ธธ์ด๊ฐ€ 0์ธ ๋ฐฐ์—ด์ด ์‚ฌ์šฉ๋  ๋•Œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
    • virtio-crypto ์žฅ์น˜์—๋Š” RSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ ์•”ํ˜ธํ™” ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€ ๊ตฌํ˜„์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์Šน์ธ๋œ MAC ์ฃผ์†Œ์—์„œ๋งŒ ํฌํŠธ๋ฅผ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํฌํŠธ ๋ฐ”์ธ๋”ฉ ๋ชจ๋“œ(์ž ๊ธˆ ๋ชจ๋“œ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. STP(์ŠคํŒจ๋‹ ํŠธ๋ฆฌ ํ”„๋กœํ† ์ฝœ) ํ”„๋กœํ† ์ฝœ์˜ ์ƒํƒœ๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” VLAN์„ STP(1:1)์—๋งŒ ์ง์ ‘ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ๊ฐ VLAN์€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—๋Š” mst_enable ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ํ™œ์„ฑํ™”๋˜๋ฉด VLAN ์ƒํƒœ๊ฐ€ MST(๋‹ค์ค‘ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ) ๋ชจ๋“ˆ์— ์˜ํ•ด ์ œ์–ด๋˜๊ณ  VLAN ๋ฐ”์ธ๋”ฉ์ด M:N ๋ชจ๋ธ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํŒจํ‚ท ์‚ญ์ œ ์ด์œ (์ด์œ  ์ฝ”๋“œ)๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ๋„๊ตฌ๋ฅผ ๋„คํŠธ์›Œํฌ ์Šคํƒ์— ํ†ตํ•ฉํ•˜๋Š” ์ž‘์—…์ด ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ  ์ฝ”๋“œ๋Š” ํŒจํ‚ท๊ณผ ๊ด€๋ จ๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋  ๋•Œ ์ „์†ก๋˜๋ฉฐ ํ—ค๋” ์˜ค๋ฅ˜๋กœ ์ธํ•œ ํŒจํ‚ท ์‚ญ์ œ, rp_filter ์Šคํ‘ธํ•‘ ๊ฐ์ง€, ์ž˜๋ชป๋œ ์ฒดํฌ์„ฌ, ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ, IPSec XFRM ๊ทœ์น™ ํŠธ๋ฆฌ๊ฑฐ, ์ž˜๋ชป๋œ ์‹œํ€€์Šค ๋ฒˆํ˜ธ TCP ๋“ฑ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • BPF_PROG_RUN ๋ชจ๋“œ์—์„œ๋Š” BPF ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” BPF_PROG_RUN ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹œ์ž‘๋œ BPF ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ท์€ XDP(eXpress Data Path) ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. XDP ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์„ ๋„คํŠธ์›Œํฌ ์Šคํƒ์ด๋‚˜ ๋‹ค๋ฅธ ์žฅ์น˜๋กœ ์ฆ‰์‹œ ๋ฆฌ๋””๋ ‰์…˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ ํŒจํ‚ท ์ฒ˜๋ฆฌ ๋ชจ๋“œ๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ƒ์„ฑ๊ธฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ํ”„๋ ˆ์ž„์„ ๋„คํŠธ์›Œํฌ ์Šคํƒ์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ๋„คํŠธ์›Œํฌ cgroup์— ์—ฐ๊ฒฐ๋œ BPF ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋„์šฐ๋ฏธ ํ•จ์ˆ˜๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ฐจ๋‹จ ์ด์œ ์— ๋Œ€ํ•œ ๋ณด๋‹ค ์™„์ „ํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • XDP(eXpress Data Path) ํ•˜์œ„ ์‹œ์Šคํ…œ์—๋Š” ์—ฌ๋Ÿฌ ๋ฒ„ํผ์— ๋ฐฐ์น˜๋œ ์กฐ๊ฐํ™”๋œ ํŒจํ‚ท์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด XDP์—์„œ ์ ๋ณด ํ”„๋ ˆ์ž„์„ ์ฒ˜๋ฆฌํ•˜๊ณ  XDP_REDIRECT์— TSO/GRO(TCP Segmentation Offload/Generic Receiver Offload)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํŠธ๋ž˜ํ”ฝ ์–‘์ด ๋งŽ์€ ์ผ๋ถ€ ๋Œ€ํ˜• ์‹œ์Šคํ…œ์—์„œ ์š”๊ตฌ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์‚ญ์ œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌ๊ฒŒ ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • amdgpu ๋“œ๋ผ์ด๋ฒ„์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ FreeSync ์ ์‘ํ˜• ๋™๊ธฐํ™” ๊ธฐ์ˆ ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ํ™”๋ฉด ์ •๋ณด์˜ ์ƒˆ๋กœ ๊ณ ์นจ ๋นˆ๋„๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๊ฒŒ์ž„์„ ํ•˜๊ฑฐ๋‚˜ ๋น„๋””์˜ค๋ฅผ ์‹œ์ฒญํ•˜๋Š” ๋™์•ˆ ๋ถ€๋“œ๋Ÿฝ๊ณ  ์ž˜๋ฆฌ๋Š” ํ˜„์ƒ ์—†๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Aldebaran GPU ์ง€์›์ด ์•ˆ์ •์ ์œผ๋กœ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • i915 ๋“œ๋ผ์ด๋ฒ„๋Š” Intel Alderlake N ์นฉ ๋ฐ Intel DG2-G12 ๊ฐœ๋ณ„ ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ(Arc Alchemist)์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • nouveau ๋“œ๋ผ์ด๋ฒ„๋Š” DP/eDP ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๋” ๋†’์€ ๋น„ํŠธ ์ „์†ก๋ฅ ์„ ์ง€์›ํ•˜๊ณ  lttprs(Link-Training Tunable PHY Repeaters) ์ผ€์ด๋ธ” ํ™•์žฅ๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ๋“œ๋ผ์ด๋ฒ„ armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen ๋ฐ vc4 ๋งค๊ฐœ๋ณ€์ˆ˜ ์ง€์›์˜ drm(Direct Rendering Manager) ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ์ปค๋„ ์ˆ˜์ค€์—์„œ ๋น„๋””์˜ค ๋ชจ๋“œ ์ „ํ™˜๊ณผ ํ•˜๋“œ์›จ์–ด ๋ Œ๋”๋ง ๊ฐ€์† ๋„๊ตฌ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‹œ์Šคํ…œ ํ”„๋ ˆ์ž„ ๋ฒ„ํผ์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ๋งŒ ๋‚จ๊ฒจ๋‘˜ ์ˆ˜ ์žˆ๋Š” nomodeset๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ARM Soะก Qualcomm Snapdragon 625/632(LG Nexus 5X ๋ฐ Fairphone FP3 ์Šค๋งˆํŠธํฐ์— ์‚ฌ์šฉ), Samsung Exynos 850, Samsung Exynos 7885(Samsung Galaxy A8์— ์‚ฌ์šฉ), Airoha(Mediatek/EcoNet) EN7523, Mediatek mt6582(Prestigio PMT5008)์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€ ํƒœ๋ธ”๋ฆฟ 3G), Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 ๋ฐ i.MXRTxxxx.
    • Broadcom(Raspberry Pi Zero 2 W), Qualcomm(Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip(Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S์˜ ARM ์žฅ์น˜ ๋ฐ ๋ณด๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. , Prestigio PMT5008 3G ํƒœ๋ธ”๋ฆฟ), Allwinner(A20-Marsboard), Amlogic(Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 ๋ฐ OSMC Vero 4K+), Aspeed(Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU / Armada(Ctera C200 V1 ๋ฐ V2 NAS), Mstar(DongShanPiOne, Miyoo Mini), NXP i.MX(Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).
    • ์‚ฌ์šด๋“œ ์‹œ์Šคํ…œ ๋ฐ ์ฝ”๋ฑ AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ/V2L, Texas Instruments TAS585M์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Intel AVS DSP ์นฉ์šฉ ์‚ฌ์šด๋“œ ๋“œ๋ผ์ด๋ฒ„์˜ ์ดˆ๊ธฐ ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Intel ADL ๋ฐ Tegra234์— ๋Œ€ํ•œ ๋“œ๋ผ์ด๋ฒ„ ์ง€์›์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  Dell, HP, Lenovo, ASUS, Samsung ๋ฐ Clevo ์žฅ์น˜์˜ ์˜ค๋””์˜ค ์ง€์›์„ ๊ฐœ์„ ํ•˜๋„๋ก ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๋™์‹œ์— ๋ผํ‹ด ์•„๋ฉ”๋ฆฌ์นด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ์€ ์™„์ „ ๋ฌด๋ฃŒ ์ปค๋„ 5.18 ๋ฒ„์ „์ธ Linux-libre 5.18-gnu๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์—๋Š” ์ž์œ ๋กญ์ง€ ์•Š์€ ๊ตฌ์„ฑ ์š”์†Œ๋‚˜ ์ฝ”๋“œ ์„น์…˜์ด ํฌํ•จ๋œ ํŽŒ์›จ์–ด ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ฒ”์œ„๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์กฐ์—…์ฒด์— ์˜ํ•ด. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” MIPI DBI ํŒจ๋„, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U(USB) ๋ฐ Realtek 8852a/8852c, Intel AVS ๋ฐ Texas Instruments TAS5805M ์‚ฌ์šด๋“œ ์นฉ์šฉ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. AArch64 ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ํ”„๋กœ์„ธ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ Qualcomm SoC์— ๋Œ€ํ•ด DTS ํŒŒ์ผ๋„ ์ •๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectru Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART์˜ ๋“œ๋ผ์ด๋ฒ„ ๋ฐ ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ๋ธ”๋กญ ์ •๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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