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

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” ๋„์ž… ๋œ ์ปค๋„ ๋ฆด๋ฆฌ์Šค Linux 5.7. ๊ฐ€์žฅ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘์—๋Š” exFAT ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„, UDP ํ„ฐ๋„ ์ƒ์„ฑ์„ ์œ„ํ•œ bareudp ๋ชจ๋“ˆ, ARM64์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ์ธ์ฆ ๊ธฐ๋ฐ˜ ๋ณดํ˜ธ, BPF ํ”„๋กœ๊ทธ๋žจ์„ LSM ํ•ธ๋“ค๋Ÿฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ, Curve25519์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„, ๋ถ„ํ• - ์ž ๊ธˆ ๊ฐ์ง€๊ธฐ, PREEMPT_RT์™€์˜ BPF ํ˜ธํ™˜์„ฑ, ์ฝ”๋“œ์˜ 80์ž ์ค„ ํฌ๊ธฐ ์ œํ•œ ์ œ๊ฑฐ, ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์˜ CPU ์˜จ๋„ ํ‘œ์‹œ๊ธฐ ๊ณ ๋ ค, ๋‹ค๋ฅธ cgroup์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด clone()์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ, ์“ฐ๊ธฐ ๋ฐฉ์ง€ userfaultfd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—๋Š” 15033๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ •ํ•œ 1961๊ฐœ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจ์น˜ ํฌ๊ธฐ - 39MB(๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด 11590๊ฐœ ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  570560์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋จ,
297401๊ฐœ ํ–‰์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.) 41์— ์ œ์‹œ๋œ ์ „์ฒด ๋‚ด์šฉ์˜ ์•ฝ 5.7%
๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์•ฝ 16%๋Š”
ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ํƒœ๋„, 13%
๋„คํŠธ์›Œํฌ ์Šคํƒ ๊ด€๋ จ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ จ 4%, ๋‚ด๋ถ€ ๊ด€๋ จ 4%
์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ.

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

  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • ์ƒˆ๋กœ์šด exFAT ๋“œ๋ผ์ด๋ฒ„ ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ค๋ฆฝ ์‚ผ์„ฑ์ด ์•ˆ๋“œ๋กœ์ด๋“œ ์Šค๋งˆํŠธํฐ์šฉ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ์ตœ์‹  "sdfat"(2.x) ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— ์ปค๋„์— ์ถ”๊ฐ€๋œ ๋“œ๋ผ์ด๋ฒ„๋Š” ๊ธฐ์กด Samsung ์ฝ”๋“œ(๋ฒ„์ „ 1.2.9)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ์œผ๋ฉฐ ์„ฑ๋Šฅ์ด ์ƒˆ ๋“œ๋ผ์ด๋ฒ„๋ณด๋‹ค ์•ฝ 10% ์ •๋„ ๋’ค์กŒ์Šต๋‹ˆ๋‹ค. Microsoft ์ดํ›„ ์ปค๋„์— exFAT ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์กŒ์Œ์„ ๊ธฐ์–ตํ•ด ๋ด…์‹œ๋‹ค. ะพะฟัƒะฑะปะธะบะพะฒะฐะปะฐ ๊ณต๊ฐœ ์‚ฌ์–‘ ๋ฐ exFAT ํŠนํ—ˆ๋ฅผ Linux์—์„œ ๋กœ์—ดํ‹ฐ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • Btrfs๋Š” ์‹๋ณ„์ž๋กœ ํ•˜์œ„ ์„น์…˜์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ioctl() ๋ช…๋ น์ธ BTRFS_IOC_SNAP_DESTROY_V2๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ผ์ธ ๋ฒ”์œ„ ๋ณต์ œ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์žฌ๋ฐฐํฌ ์ž‘์—… ์ทจ์†Œ ์ง€์ ์ด ํ™•๋Œ€๋˜์–ด '์ž”์•ก ์ทจ์†Œ' ๋ช…๋ น ์‹คํ–‰ ์‹œ ์˜ค๋žœ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ”์œ„์— ๋Œ€ํ•œ ๋ฐฑ๋งํฌ ๊ฒฐ์ •์ด ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹œ๊ฐ„์ด XNUMX์‹œ๊ฐ„์—์„œ ๋ช‡ ๋ถ„์œผ๋กœ ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ํŠธ๋ฆฌ์˜ ๊ฐ inode์— ํŒŒ์ผ ๋ฒ”์œ„๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ํŒŒํ‹ฐ์…˜์— ์“ธ ๋•Œ์™€ NOCOW๋ฅผ ์ œ์™ธํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ฐจ๋‹จ ์ฒด๊ณ„๊ฐ€ ๋‹ค์‹œ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ”์œ„์— ๋Œ€ํ•œ fsync ์‹คํ–‰ ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • XFS์—๋Š” ํ™œ์„ฑ ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฒ€์‚ฌ ๋ฐ fsck๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. btree ๊ตฌ์กฐ๋ฅผ ์žฌ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ํ–ฅํ›„ xfs_repair๋ฅผ ์žฌ์ž‘์—…ํ•˜๊ณ  ํŒŒํ‹ฐ์…˜์„ ๋งˆ์šดํŠธ ํ•ด์ œํ•˜์ง€ ์•Š๊ณ ๋„ ๋ณต๊ตฌ ๊ฐ€๋Šฅ์„ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    • SMB3 ์ €์žฅ์†Œ์— ์Šค์™‘ ํŒŒํ‹ฐ์…˜์„ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ—˜์  ์ง€์›์ด CIFS์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SMB3.1.1 ์‚ฌ์–‘์— ์ •์˜๋œ readdir์— ๋Œ€ํ•œ POSIX ํ™•์žฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ=์—„๊ฒฉ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜๊ณ  ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ 64 ์ด์ƒ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ 2.1KB ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • FS EXT4๋Š” bmap ๋ฐ iopoll์—์„œ iomap์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ด์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • F2FS๋Š” zstd ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์••์ถ•์— ๋Œ€ํ•œ ์„ ํƒ์  ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ LZ4 ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์••์ถ•์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. "chattr -c commit" ๋ช…๋ น์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์ฐฉ ์‹œ๊ฐ„ ํ‘œ์‹œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์••์ถ•๋œ ๋ธ”๋ก ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ioctl F2FS_IOC_GET_COMPRESS_BLOCKS๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. statx๋ฅผ ํ†ตํ•œ ์••์ถ• ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Ceph ํŒŒ์ผ ์‹œ์Šคํ…œ์—๋Š” ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ (๋น„๋™๊ธฐ ๋ชจ๋“œ์—์„œ ์ž‘๋™) ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ ์ž‘์—…(๋งํฌ ํ•ด์ œ)์„ ๋กœ์ปฌ์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด rsync ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • virtiofs๋ฅผ ์ตœ์ƒ์œ„ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด OVERLAYFS์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์žฌ์ž‘์„ฑ VFS์˜ ๊ฒฝ๋กœ ํƒ์ƒ‰ ์ฝ”๋“œ, ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ๊ตฌ๋ฌธ ๋ถ„์„ ์ฝ”๋“œ๊ฐ€ ์žฌ์ž‘์—…๋˜์—ˆ์œผ๋ฉฐ ๋งˆ์šดํŠธ ์ง€์  ํƒ์ƒ‰์ด ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • scsi ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ๊ถŒํ•œ ์—†๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ—ˆ์šฉ ๋œ ZBC ๋ช…๋ น ์‹คํ–‰.
    • dm_writecache์—์„œ ๊ตฌํ˜„ ๋ธ”๋ก์˜ ์ตœ๋Œ€ ์ˆ˜๋ช…์„ ์„ค์ •ํ•˜๋Š” max_age ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์บ์‹œ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ง€์šฐ๋Š” ๊ธฐ๋Šฅ.
    • dm_integrity์—์„œ ์ถ”๊ฐ€ "ํ๊ธฐ" ์ž‘์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • null_blk์—์„œ ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ ์ค‘ ์‹คํŒจ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•œ ์˜ค๋ฅ˜ ๋Œ€์ฒด ์ง€์›.
    • ์ถ”๊ฐ€๋จ ๋ธ”๋ก ์žฅ์น˜ ํฌ๊ธฐ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ udev ์•Œ๋ฆผ์„ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ.
  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ๋„ทํ•„ํ„ฐ ํฌํ•จ ๋ณ€๊ฒฝ, ์„œ๋ธŒ๋„ท, ๋„คํŠธ์›Œํฌ ํฌํŠธ, ํ”„๋กœํ† ์ฝœ ๋ฐ MAC ์ฃผ์†Œ์˜ ์กฐํ•ฉ์„ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์ผ์น˜ ๋ชฉ๋ก(nftables ์„ธํŠธ)์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
      ์ตœ์ ํ™” ์ž…๋ ฅ IP ๋ฐ ๋„คํŠธ์›Œํฌ ํฌํŠธ ๋ฒ”์œ„(nft_set_rbtree ๋ฐ nft_set_hash)์™€ ๊ฐ™์€ ํ•„ํ„ฐ๋ง ๊ทœ์น™์— ์‚ฌ์šฉ๋˜๋Š” ์ž„์˜ ํ•„๋“œ ์ƒํƒœ ๋ฒ”์œ„์™€ ํŒจํ‚ท์˜ ๋‚ด์šฉ์„ ์ผ์น˜์‹œํ‚ค๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” nft_set_pipapo(PIle PAcket POlicies) ๋ชจ๋“ˆ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ„๊ฒฉ ์ผ์น˜ ๋ฐ ๊ฐ’์˜ ์ง์ ‘ ๋ฐ˜์˜์„ ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ). AMD Epyc 256 ํ”„๋กœ์„ธ์„œ๊ฐ€ ์žฅ์ฐฉ๋œ ์‹œ์Šคํ…œ์—์„œ 2๋น„ํŠธ AVX7402 ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒกํ„ฐํ™”๋œ pipapo ๋ฒ„์ „์€ ํฌํŠธ ํ”„๋กœํ† ์ฝœ ์กฐํ•ฉ์„ ํฌํ•จํ•˜์—ฌ 420๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ๋•Œ 30%์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. 1000๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ์„œ๋ธŒ๋„ท๊ณผ ํฌํŠธ ๋ฒˆํ˜ธ์˜ ์กฐํ•ฉ์„ ๋น„๊ตํ–ˆ์„ ๋•Œ ์ฆ๊ฐ€์œจ์€ IPv87์˜ ๊ฒฝ์šฐ 4%, IPv128์˜ ๊ฒฝ์šฐ 6%์˜€์Šต๋‹ˆ๋‹ค.

    • ์ถ”๊ฐ€๋จ MPLS, IP ๋ฐ NSH์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ L3 ํ”„๋กœํ† ์ฝœ์„ UDP ํ„ฐ๋„๋กœ ์บก์Šํ™”ํ•  ์ˆ˜ ์žˆ๋Š” bareudp ๋ชจ๋“ˆ.
    • ์„œ๋กœ ๋‹ค๋ฅธ IP ์ฃผ์†Œ์— ์—ฐ๊ฒฐ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋™์‹œ์— ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๋Š” TCP ์—ฐ๊ฒฐ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ TCP ํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ์ธ MPTCP(MultiPath TCP) ๊ตฌ์„ฑ ์š”์†Œ์˜ ํ†ตํ•ฉ์ด ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ 802.11(Wi-Fi)์—์„œ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ ์บก์Šํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์žฅ์น˜๋ฅผ ํ•œ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์ด๋™ํ•˜๋ฉด sysfs์— ์žˆ๋Š” ํ•ด๋‹น ํŒŒ์ผ์˜ ์•ก์„ธ์Šค ๊ถŒํ•œ๊ณผ ์†Œ์œ ๊ถŒ์ด ์กฐ์ •๋ฉ๋‹ˆ๋‹ค.
    • ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด SO_BINDTODEVICE ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํŒจ์น˜์˜ ์„ธ ๋ฒˆ์งธ ๋ถ€๋ถ„์ด ์Šน์ธ๋˜์–ด ethtool ํˆดํ‚ท์„ ioctl()์—์„œ netlink ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ™•์žฅ์„ ๋” ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ณ , ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๋™๊ธฐํ™”ํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ช…๋œ ๋ชฉ๋ก์˜ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํŠน์ˆ˜ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ ์ถ”์  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋„ทํ•„ํ„ฐ์—์„œ ์ถ”๊ฐ€ ๋“ค์–ด์˜ค๋Š” ํŒจํ‚ท(์ˆ˜์‹ )์— ๋Œ€ํ•ด ์ด์ „์— ์กด์žฌํ–ˆ๋˜ ํ›„ํฌ๋ฅผ ๋ณด์™„ํ•œ ๋‚˜๊ฐ€๋Š” ํŒจํ‚ท(์†ก์‹ )์˜ ๋ถ„๋ฅ˜์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ›„ํฌ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • ํฌ์ธํ„ฐ ์ธ์ฆ์˜ ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(ํฌ์ธํ„ฐ ์ธ์ฆ), ์ด๋Š” ๋ฐ˜ํ™˜ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(ROP) ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ˆ˜ ARM64 CPU ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์—์„œ๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐฐ์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ๋กœ๋“œ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ด๋ฏธ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„ ๋ช…๋ น ์กฐ๊ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ œ์–ด ๋ณต๊ท€ ๋ช…๋ น์œผ๋กœ. ๋ณด์•ˆ์€ ์ปค๋„ ์ˆ˜์ค€์—์„œ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ท€๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ช…์€ ํฌ์ธํ„ฐ ์ž์ฒด์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ตœ์ƒ์œ„ ๋น„ํŠธ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„๊ณผ ๋‹ฌ๋ฆฌ ๋””์ง€ํ„ธ ์„œ๋ช…์˜ ์ƒ์„ฑ ๋ฐ ํ™•์ธ์€ ํŠน์ˆ˜ CPU ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ํŽ˜์ด์ง€ ์˜ค๋ฅ˜(ํ• ๋‹น๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋œ userfaultfd() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์“ฐ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” userfaultfd()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์“ฐ๊ธฐ ๊ธˆ์ง€๋กœ ํ‘œ์‹œ๋œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์œ„๋ฐ˜์„ ๊ฐ์ง€ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์“ฐ๊ธฐ ์‹œ๋„์— ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ๋ผ์ด๋ธŒ ์Šค๋ƒ…์ƒท ์ƒ์„ฑ ์ค‘ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ฒ˜๋ฆฌ, ์ƒํƒœ ๋ฉ”๋ชจ๋ฆฌ ๋คํ”„๋ฅผ ๋””์Šคํฌ์— ๋คํ”„ํ•  ๋•Œ ์บก์ฒ˜, ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ตฌํ˜„, ๋ฉ”๋ชจ๋ฆฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ถ”์ ). ๊ธฐ๋Šฅ์„ฑ ๋™๋“ฑํ•œ SIGSEGV ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๊ธฐ์™€ ํ•จ๊ป˜ mprotect()๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ˆˆ์— ๋„๊ฒŒ ๋” ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
    • SELinux์—์„œ๋Š” ๊ทœ์น™์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” "checkreqprot" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ทœ์น™์— ์ง€์ •๋œ ๊ทœ์น™์— ๊ด€๊ณ„์—†์ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์‚ฌ์šฉ ํ—ˆ์šฉ). Kernfs ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋Š” ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ตฌ์กฐ ํฌํ•จ๋จ ๋ชจ๋“ˆ KRSI, ์ปค๋„์˜ ๋ชจ๋“  LSM ํ›„ํฌ์— BPF ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด BPF ํ”„๋กœ๊ทธ๋žจ ํ˜•ํƒœ๋กœ LSM ๋ชจ๋“ˆ(Linux ๋ณด์•ˆ ๋ชจ๋“ˆ)์„ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ์‚ฌ ๋ฌธ์ œ ๋ฐ ํ•„์ˆ˜ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹ค์‹œ RNG ๋ช…๋ น์–ด๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹  CRNG ๊ฐ’์„ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜์—ฌ /dev/random์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. RNG ๋ช…๋ น์„ ์ œ๊ณตํ•˜๋Š” ARM64 ์‹œ์Šคํ…œ์—์„œ getrandom ๋ฐ /dev/random์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํƒ€์› ๊ณก์„  ๊ตฌํ˜„ Curve25519 ๊ต์ฒด๋จ ๋„์„œ๊ด€์˜ ์˜ต์…˜ HACL, ์ด๋ฅผ ์œ„ํ•ด ์ฃผ์–ด์ง„ ๊ณต์‹์ ์ธ ์‹ ๋ขฐ์„ฑ ๊ฒ€์ฆ์˜ ์ˆ˜ํ•™์  ์ฆ๋ช….
    • ์ถ”๊ฐ€๋จ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•ด ์•Œ๋ฆฌ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์— ์ „์†กํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ˜ธ์ŠคํŠธ๋Š” ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • vfio/pci์—์„œ ์ถ”๊ฐ€ SR-IOV(๋‹จ์ผ ๋ฃจํŠธ I/O ๊ฐ€์ƒํ™”)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • 80~100์ž ์ฆ๊ฐ€ ์†Œ์Šค ํ…์ŠคํŠธ์˜ ์ตœ๋Œ€ ์ค„ ๊ธธ์ด์— ๋Œ€ํ•œ ์ œํ•œ. ๋™์‹œ์— ๊ฐœ๋ฐœ์ž๋Š” ํ•œ ์ค„์— 80์ž ์ด๋‚ด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋˜์ง€๋งŒ ์ด๋Š” ๋” ์ด์ƒ ์—„๊ฒฉํ•œ ์ œํ•œ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ผ์ธ ํฌ๊ธฐ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋ฉด checkpatch๊ฐ€ '--strict' ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋นŒ๋“œ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋กœ ์ธํ•ด ๊ฐœ๋ฐœ์ž์˜ ์ฃผ์˜๊ฐ€ ์‚ฐ๋งŒํ•ด์ง€์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์žฅ ์กฐ์ž‘ ๊ณต๋ฐฑ์ด ์žˆ์–ด์„œ ์ฝ”๋“œ ์ •๋ ฌ์ด ๋” ์ž์œ ๋กœ์›Œ์ง€๊ณ , ๋ฐฉ์ง€ํ•  ๊ฒƒ์ด๋‹ค ๊ณผ๋„ํ•œ ์ค„๋ฐ”๊ฟˆ, ๋ฐฉํ•ดํ•˜๋Š” ์ฝ”๋“œ ์ดํ•ด ๋ฐ ๊ฒ€์ƒ‰.
    • ์ถ”๊ฐ€๋จ ํŠน์ˆ˜ํ•œ ๋ถ€ํŠธ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ 64๋น„ํŠธ CPU์—์„œ ์‹คํ–‰๋˜๋Š” 32๋น„ํŠธ ํŽŒ์›จ์–ด์—์„œ 64๋น„ํŠธ ์ปค๋„์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” EFI ํ˜ผํ•ฉ ๋ถ€ํŒ… ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ํ™œ์„ฑํ™”๋จ ๋ถ„ํ•  ์ž ๊ธˆ์„ ์‹๋ณ„ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ(โ€œ๋ถ„ํ•  ์ž ๊ธˆ")๋Š” ์›์ž ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‘ ๊ฐœ์˜ CPU ์บ์‹œ ๋ผ์ธ์„ ํ†ต๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฐจ๋‹จ์œผ๋กœ ์ธํ•ด ์ƒ๋‹นํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(ํ•˜๋‚˜์˜ ์บ์‹œ ๋ผ์ธ์— ์†ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์›์ž์  ์ž‘์—…๋ณด๋‹ค 1000์ฃผ๊ธฐ ๋Š๋ฆผ). "split_lock_Detect" ๋ถ€ํŒ… ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ์ปค๋„์€ ์ด๋Ÿฌํ•œ ์ž ๊ธˆ์„ ์ฆ‰์‹œ ๊ฐ์ง€ํ•˜๊ณ  ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•˜๊ฑฐ๋‚˜ ์ž ๊ธˆ์„ ์œ ๋ฐœํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— SIGBUS ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์˜จ๋„ ์„ผ์„œ ์ถ”์  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(์—ด์••๋ ฅ) ์ž‘์—…์„ ๋ฐฐ์น˜ํ•  ๋•Œ ๊ณผ์—ด์„ ๊ณ ๋ คํ•˜์—ฌ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ํ†ต๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ด ๊ฑฐ๋ฒ„๋„ˆ๋Š” ๊ณผ์—ด ์‹œ ์ตœ๋Œ€ CPU ์ฃผํŒŒ์ˆ˜๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์ด์ œ ์‹คํ–‰ํ•  ์ž‘์—…์„ ์˜ˆ์•ฝํ•  ๋•Œ ๋นˆ๋„ ๊ฐ์†Œ๋กœ ์ธํ•œ ์ปดํ“จํŒ… ์„ฑ๋Šฅ ๊ฐ์†Œ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค(์ด์ „์—๋Š” ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์‘๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค). ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ณผ์žฅ๋œ ๊ฐ€์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๋™์•ˆ ํŠน์ • ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋Š” ๋นˆ๋„).
    • ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ถˆ๋ณ€ ์ง€ํ‘œ ๋กœ๋“œ ์ถ”์ ์„ ํ†ตํ•ด ํ˜„์žฌ CPU ์ž‘๋™ ๋นˆ๋„์— ๊ด€๊ณ„์—†์ด ๋กœ๋“œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ์ „์•• ๋ฐ CPU ์ฃผํŒŒ์ˆ˜์˜ ๋™์  ๋ณ€ํ™” ์กฐ๊ฑด์—์„œ ์ž‘์—… ๋™์ž‘์„ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 1MHz์—์„œ CPU ๋ฆฌ์†Œ์Šค์˜ 3/1000์„ ์†Œ๋น„ํ•œ ์ž‘์—…์€ ์ฃผํŒŒ์ˆ˜๊ฐ€ 2MHz๋กœ ๋–จ์–ด์ง€๋ฉด ๋ฆฌ์†Œ์Šค์˜ 3/500๋ฅผ ์†Œ๋น„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ด์ „์— ์ „์ฒด ์šฉ๋Ÿ‰์—์„œ ์‹คํ–‰ ์ค‘์ด๋ผ๋Š” ์ž˜๋ชป๋œ ๊ฐ€์ •์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋นˆ๋„๋ฅผ ์ค„์—ฌ ์Šค์ผ€์ค„๋Ÿฌ์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๋ฉด schedutil cpufreq ๊ด€๋ฆฌ์ž์—์„œ ์ž˜๋ชป๋œ ๊ฒฐ์ •์ด ๋‚ด๋ ค์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    • ์„ฑ๋Šฅ ๋ชจ๋“œ ์„ ํƒ์„ ๋‹ด๋‹นํ•˜๋Š” Intel P-state ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ.
    • ์ปค๋„์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹คํ–‰๋  ๋•Œ BPF ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ(PREEMPT_RT)์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” PREEMPT_RT๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด BPF๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ BPF ํ”„๋กœ๊ทธ๋žจ์ธ BPF_MODIFY_RETURN์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์€ ์ปค๋„์˜ ํ•จ์ˆ˜์— ์—ฐ๊ฒฐ๋˜์–ด ์ด ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ ๊ธฐํšŒ clone3() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์œ„ cgroup๊ณผ ๋‹ค๋ฅธ cgroup์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒˆ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ์ฆ‰์‹œ ์ œํ•œ์„ ์ ์šฉํ•˜๊ณ  ๊ณ„์ •์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž๋Š” ๋ณ„๋„์˜ cgroup์— ์ƒˆ ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, "๋™๊ฒฐ๋œ" cgroup์— ๋ฐฐ์น˜๋œ ์ƒˆ ํ”„๋กœ์„ธ์Šค๋Š” ์ฆ‰์‹œ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.
    • Kbuild์—์„œ ์ถ”๊ฐ€ ์ปค๋„์„ ๋นŒ๋“œํ•  ๋•Œ Clang/LLVM ํˆดํ‚ท์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ "LLVM=1"์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. binutils ๋ฒ„์ „์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ƒํ–ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(2.23).
    • /sys/kernel/debug/kunit/ ์„น์…˜์ด kunit ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์™€ ํ•จ๊ป˜ debugfs์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ „์› ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์ž‘๋™์— ๋Œ€ํ•œ ๋””๋ฒ„๊ทธ ์ •๋ณด ์ถœ๋ ฅ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ์ปค๋„ ๋ถ€ํŒ… ๋งค๊ฐœ๋ณ€์ˆ˜ pm_debug_messages(/sys/power/pm_debug_messages์™€ ์œ ์‚ฌ)๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ ๋ฐ ๋Œ€๊ธฐ ๋ชจ๋“œ ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•  ๋•Œ ์œ ์šฉํ•จ).
    • ๋น„๋™๊ธฐ I/O ์ธํ„ฐํŽ˜์ด์Šค๋กœ io_uring ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค ์ ‘์ฐฉ() ะธ ์›์ž ๋ฒ„ํผ ์„ ํƒ.
    • perf ํˆดํ‚ท์„ ์‚ฌ์šฉํ•˜์—ฌ cgroup ํ”„๋กœํŒŒ์ผ๋ง์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” perf๊ฐ€ ํŠน์ • cgroup์˜ ์ž‘์—…๋งŒ ํ”„๋กœํŒŒ์ผ๋งํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ํ˜„์žฌ ์ƒ˜ํ”Œ์ด ์†ํ•œ cgroup์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. perf๋Š” ์ด์ œ ๊ฐ ์ƒ˜ํ”Œ์— ๋Œ€ํ•œ cgroup ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฏ€๋กœ ๋‘˜ ์ด์ƒ์˜ cgroup์„ ํ”„๋กœํŒŒ์ผ๋งํ•˜๊ณ  ๋‹ค์Œ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      ๋ณด๊ณ ์„œ์˜ cgroup.

    • cgroup ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์˜์‚ฌ FS์ธ cgroupfs์—๋Š” ํ™•์žฅ๋œ ์†์„ฑ(xattrs)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ํ•ธ๋“ค๋Ÿฌ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • cgroup ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ถ”๊ฐ€๊ทธ๋ฃน ๊ตฌ์„ฑ์›์—๊ฒŒ ์ œ๊ณต๋˜๋Š” ์ตœ์†Œ RAM ์–‘์„ ๊ทœ์ œํ•˜๋Š” "memory.low" ๊ฐ’์˜ ์žฌ๊ท€์  ๋ณดํ˜ธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. "memory_recursiveprot" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ cgroup ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋งˆ์šดํŠธํ•˜๋ฉด ํ•˜์œ„ ๋…ธ๋“œ์— ์„ค์ •๋œ "memory.low" ๊ฐ’์ด ๋ชจ๋“  ํ•˜์œ„ ๋…ธ๋“œ์— ์ž๋™์œผ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ CPU์™€ ์ฃผ๋ณ€ ์žฅ์น˜ ๊ฐ„์— ๊ฐ€์ƒ ์ฃผ์†Œ(SVA, ๊ณต์œ  ๊ฐ€์ƒ ์ฃผ์†Œ ์ง€์ •)๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ Uacce(Unified/User-space-access-intended Accelerator Framework) ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด ๊ฐ€์†๊ธฐ๊ฐ€ ๋ฉ”์ธ CPU์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜
    • ARM ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ํ•ซํŽ˜์น˜ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • RISC-V ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ CPU ํ•ซ ํ”Œ๋Ÿฌ๊ทธ โ€‹โ€‹๋ฐ ์ œ๊ฑฐ(CPU ํ•ซ ํ”Œ๋Ÿฌ๊ทธ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 32๋น„ํŠธ RISC-V์˜ ๊ฒฝ์šฐ eBPF JIT๊ฐ€ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • 32๋น„ํŠธ ARM ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ KVM ๊ฒŒ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์€ s390 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ "๋”๋ฏธ" NUMA ๊ตฌํ˜„์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ARM64์˜ ๊ฒฝ์šฐ ARMv8.4์— ์ •์˜๋œ AMU(Activity Monitors Unit) ํ™•์žฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ฃผํŒŒ์ˆ˜ ์Šค์ผ€์ผ๋ง ์ˆ˜์ • ์š”์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ฑ๋Šฅ ์นด์šดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • ์ถ”๊ฐ€๋จ virtio ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตํ™˜ ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜๋Š” vDPA ์žฅ์น˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. vDPA ๋””๋ฐ”์ด์Šค๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์žฅ๋น„์ด๊ฑฐ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์—๋ฎฌ๋ ˆ์ดํŠธ๋œ ๊ฐ€์ƒ ๋””๋ฐ”์ด์Šค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • GPIO ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ์ถœ์—ฐ ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ioctl() ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด GPIO ๋ผ์ธ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ”„๋กœ์„ธ์Šค์— ์•Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. new ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ ์ œ์•ˆ gpio-watch ์œ ํ‹ธ๋ฆฌํ‹ฐ.
    • Intel ๋น„๋””์˜ค ์นด๋“œ์šฉ i915 DRM ๋“œ๋ผ์ด๋ฒ„ ํฌํ•จ ๋œ Tigerlake(โ€œGen12โ€) ์นฉ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›๊ณผ OLED ๋ฐฑ๋ผ์ดํŠธ ์ œ์–ด์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Ice Lake, Elkhart Lake, Baytrail ๋ฐ Haswell ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • amdgpu ๋“œ๋ผ์ด๋ฒ„์—์„œ ์ถ”๊ฐ€ ASIC์šฉ USBC ์นฉ์— ํŽŒ์›จ์–ด๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ. AMD Ryzen 4000 "Renoir" ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ OLED ํŒจ๋„ ์ œ์–ด๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. debugfs์— ํŽŒ์›จ์–ด ์ƒํƒœ ํ‘œ์‹œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
    • ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ OpenGL 4๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด VMware ๊ฐ€์ƒํ™” ์‹œ์Šคํ…œ์šฉ vmwgfx DRM ๋“œ๋ผ์ด๋ฒ„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” OpenGL 3.3์ด ์ง€์›๋จ).
    • TI Keystone ํ”Œ๋žซํผ ๋””์Šคํ”Œ๋ ˆ์ด ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด DRM ๋“œ๋ผ์ด๋ฒ„ tidss๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • LCD ํŒจ๋„์šฉ ๋“œ๋ผ์ด๋ฒ„ ์ถ”๊ฐ€: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech RK101II01D-CT, Frida FRD350H54004.
    • ์ „์› ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ์ถ”๊ฐ€ Atom ๊ธฐ๋ฐ˜ Intel Jasper Lake(JSL) ํ”Œ๋žซํผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • Rockchip RK3399, Pine64 PineTab ํƒœ๋ธ”๋ฆฟ ๋ฐ ์Šค๋งˆํŠธํฐ ๊ธฐ๋ฐ˜ Pinebook Pro ๋…ธํŠธ๋ถ์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€ PinePhone Allwinner A64 ๊ธฐ๋ฐ˜.
    • ์ƒˆ๋กœ์šด ์˜ค๋””์˜ค ์ฝ”๋ฑ ๋ฐ ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc.

    • ARM ๋ณด๋“œ ๋ฐ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€ Qualcomm Snapdragon 865(SM8250), IPQ6018, NXP i.MX8M Plus, Kontron "sl28", 11 i.MX6 TechNexion Pico ๋ณด๋“œ ์˜ต์…˜, ์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด Toradex Colibri ์˜ต์…˜, ST ๊ธฐ๋ฐ˜ Samsung S7710 Galaxy Xcover 2 -Ericsson u8500, DH Electronics DHCOM SoM ๋ฐ PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.

์ถœ์ฒ˜ : opennet.ru

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