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

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” ๋„์ž… ๋œ ์ปค๋„ ๋ฆด๋ฆฌ์Šค Linux 5.6. ๊ฐ€์žฅ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ: WireGuard VPN ์ธํ„ฐํŽ˜์ด์Šค ํ†ตํ•ฉ, USB4 ์ง€์›, ์‹œ๊ฐ„ ๋„ค์ž„์ŠคํŽ˜์ด์Šค, BPF๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TCP ์ •์ฒด ์ฒ˜๋ฆฌ๊ธฐ ์ƒ์„ฑ ๊ธฐ๋Šฅ, MultiPath TCP์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›, 2038 ๋ฌธ์ œ ์ปค๋„ ์ œ๊ฑฐ, "bootconfig" ๋ฉ”์ปค๋‹ˆ์ฆ˜ , ZoneFS.

์ƒˆ ๋ฒ„์ „์—๋Š” 13702๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ •ํ•œ 1810๊ฐœ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจ์น˜ ํฌ๊ธฐ - 40MB(๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ 11577๊ฐœ ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  610012์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
294828๊ฐœ ํ–‰์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.) 45์— ์ œ์‹œ๋œ ์ „์ฒด ๋‚ด์šฉ์˜ ์•ฝ 5.6%
๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์•ฝ 15%๋Š”
ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ํƒœ๋„, 12%
๋„คํŠธ์›Œํฌ ์Šคํƒ๊ณผ ๊ด€๋ จ, 4%๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ, 3%๋Š” ๋‚ด๋ถ€
์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ.

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

  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ์ถ”๊ฐ€๋จ VPN ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ์™€์ด์–ด ๊ฐ€๋“œ์ตœ์‹  ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•(ChaCha20, Poly1305, Curve25519, BLAKE2s)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋œ ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ณต์žกํ•˜์ง€ ์•Š์œผ๋ฉฐ ์—ฌ๋Ÿฌ ๋Œ€๊ทœ๋ชจ ๊ตฌํ˜„์—์„œ ์ž…์ฆ๋˜์—ˆ์œผ๋ฉฐ ๋งค์šฐ ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(OpenVPN๋ณด๋‹ค 3,9๋ฐฐ ๋น ๋ฅธ ์ธก๋ฉด์—์„œ) ์ฒ˜๋ฆฌ๋Ÿ‰). WireGuard๋Š” ๊ฐ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๊ฐœ์ธ ํ‚ค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ์•”ํ˜ธํ™” ํ‚ค ๋ผ์šฐํŒ… ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SSH์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ตํ™˜ํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. WireGuard๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์•”ํ˜ธํ™” ๊ธฐ๋ณธ ์š”์†Œ ํ–ˆ๋‹ค ์ด์›” ๋„์„œ๊ด€์—์„œ ์•„์—ฐ ํ‘œ์ค€ Crypto API์˜ ์ผ๋ถ€๋กœ ํฌํ•จ ๋œ ํ•ต์‹ฌ ์†์œผ๋กœ 5.5.
    • ์‹œ์ž‘ ์„œ๋กœ ๋‹ค๋ฅธ IP ์ฃผ์†Œ์™€ ์—ฐ๊ฒฐ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋™์‹œ์— ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๋Š” TCP ์—ฐ๊ฒฐ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ TCP ํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ์ธ MPTCP(MultiPath TCP)๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ ํ†ตํ•ฉ์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์ง‘๊ณ„ ์—ฐ๊ฒฐ์€ ์ผ๋ฐ˜ TCP ์—ฐ๊ฒฐ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ๋ชจ๋“  ํ๋ฆ„ ๋ถ„๋ฆฌ ๋…ผ๋ฆฌ๋Š” MPTCP์— ์˜ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ค‘ ๊ฒฝ๋กœ TCP๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋Š˜๋ฆฌ๊ณ  ์•ˆ์ •์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด MPTCP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Wi-Fi์™€ 4G ๋งํฌ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋งˆํŠธํฐ์—์„œ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฐ’๋น„์‹ผ ๋งํฌ ํ•˜๋‚˜ ๋Œ€์‹  ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ €๋ ดํ•œ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ ๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ์—ด ์ฒ˜๋ฆฌ ๋ถ„์•ผ sch_ets ์ง€์›(ํ–ฅ์ƒ๋œ ์ „์†ก ์„ ํƒ, IEEE 802.1Qaz)๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํŠธ๋ž˜ํ”ฝ ํด๋ž˜์Šค ๊ฐ„์— ๋Œ€์—ญํญ์„ ๋ถ„๋ฐฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ํŠธ๋ž˜ํ”ฝ ํด๋ž˜์Šค์˜ ๋กœ๋“œ๊ฐ€ ํ• ๋‹น๋œ ๋Œ€์—ญํญ๋ณด๋‹ค ๋‚ฎ์œผ๋ฉด ETS๋Š” ๋‹ค๋ฅธ ํŠธ๋ž˜ํ”ฝ ํด๋ž˜์Šค๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ(์‚ฌ์šฉ๋˜์ง€ ์•Š์€) ๋Œ€์—ญํญ์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. Qdisc sch_ets๋Š” PRIO ๊ทœ์น™์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ํŠธ๋ž˜ํ”ฝ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—„๊ฒฉํ•œ ๊ณต์œ  ๋Œ€์—ญํญ ์ œํ•œ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ETS๋Š” ์—ฌ๋Ÿฌ ๋ถ„์•ผ์˜ ์กฐํ•ฉ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ฆฌ์˜ค ะธ DRR โ€” ํŠธ๋ž˜ํ”ฝ ํด๋ž˜์Šค๊ฐ€ ์—„๊ฒฉํ•˜๊ฒŒ ์ œํ•œ๋œ ๊ฒฝ์šฐ PRIO๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ ๋Œ€๊ธฐ์—ด์— ํŠธ๋ž˜ํ”ฝ์ด ์—†์œผ๋ฉด DRR์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ BPF ํ”„๋กœ๊ทธ๋žจ ์ถ”๊ฐ€ BPF_PROG_TYPE_STRUCT_OPS, BPF๋ฅผ ํ†ตํ•ด ์ปค๋„ ํ•จ์ˆ˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ๊ธฐ๋Šฅ์€ ์ด๋ฏธ BPF ํ”„๋กœ๊ทธ๋žจ ํ˜•ํƒœ๋กœ TCP ํ˜ผ์žก ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋กœ์„œ ์ œ์•ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์ด ํฌํ•จ๋œ BPF ํ”„๋กœ๊ทธ๋žจ DCTCP.
    • ํ•ต์‹ฌ์œผ๋กœ ๋ฐ›์•„๋“ค์—ฌ์ง ๋ณ€๊ฒฝ, ๋ฒˆ์—ญ ๋„๊ตฌ Ethtool ioctl()์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ๋„ท๋งํฌ ์ธํ„ฐํŽ˜์ด์Šค. ์ƒˆ๋กœ์šด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ™•์žฅ์„ ๋” ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ณ , ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๋™๊ธฐํ™”ํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ช…๋œ ๋ชฉ๋ก์˜ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์—์ง€ ๋„คํŠธ์›Œํฌ ์žฅ๋น„(๋ฒ„ํผ๋ธ”๋กœํŠธ)์— ๋Œ€ํ•œ ์ค‘๊ฐ„ ํŒจํ‚ท ๋ฒ„ํผ๋ง์˜ ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” FQ-PIE(Flow Queue PIE) ๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. FQ-PIE๋Š” ์ผ€์ด๋ธ” ๋ชจ๋Ž€์ด ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋  ๋•Œ ๋†’์€ ํšจ์œจ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • Btrfs ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ DISCARD ์ž‘์—…์˜ ๋น„๋™๊ธฐ ๊ตฌํ˜„(๋” ์ด์ƒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ํ•ด์ œ๋œ ๋ธ”๋ก ํ‘œ์‹œ) ์ฒ˜์Œ์—๋Š” DISCARD ์ž‘์—…์ด ๋™๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋ช…๋ น์ด ์™„๋ฃŒ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋“œ๋ผ์ด๋ธŒ๋กœ ์ธํ•ด ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ์‹ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜๋ฉด ๋“œ๋ผ์ด๋ธŒ๊ฐ€ DISCARD๋ฅผ ์™„๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • XFS์—์„œ ์ˆ˜ํ–‰ ์ด์ „ 32๋น„ํŠธ ์‹œ๊ฐ„ ์นด์šดํ„ฐ(time_t ์œ ํ˜•์ด time64_t๋กœ ๋Œ€์ฒด๋จ)๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด 2038 ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 32๋น„ํŠธ ํ”Œ๋žซํผ์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์†์ƒ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™•์žฅ๋œ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ฝ”๋“œ๊ฐ€ ์žฌ์ž‘์—…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ext4 ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์ž…๋ ฅ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์ž‘์—… ์ค‘ inode ์ž ๊ธˆ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ์„ฑ๋Šฅ ์ตœ์ ํ™”. Direct I/O ๋ชจ๋“œ์—์„œ ๋‹ค์‹œ ์“ฐ๊ธฐ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ์ง„๋‹จ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ฒซ ๋ฒˆ์งธ ๋ฐ ๋งˆ์ง€๋ง‰ ์˜ค๋ฅ˜ ์ฝ”๋“œ๊ฐ€ ์Šˆํผ๋ธ”๋ก์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    • F2FS ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๊ตฌํ˜„ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•๋œ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ๋Šฅ๋ ฅ. ๊ฐœ๋ณ„ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ฒฝ์šฐ "chattr +c file" ๋˜๋Š” "chattr +c dir; ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ•์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ์„ ํ„ฐ์น˜ํ•˜์„ธ์š”." ์ „์ฒด ํŒŒํ‹ฐ์…˜์„ ์••์ถ•ํ•˜๋ ค๋ฉด ๋งˆ์šดํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ "-o ์••์ถ•_ํ™•์žฅ=ext" ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์กดFS, ๊ตฌ์—ญํ™”๋œ ์ €์žฅ ์žฅ์น˜์— ๋Œ€ํ•œ ํ•˜์œ„ ์ˆ˜์ค€ ์ž‘์—…์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์กด ๋“œ๋ผ์ด๋ธŒ(Zoned Drive)๋Š” ํ•˜๋“œ ์ž๊ธฐ ๋””์Šคํฌ ๋˜๋Š” NVMe SSD์˜ ์žฅ์น˜๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ €์žฅ ๊ณต๊ฐ„์€ ๋ธ”๋ก ๋˜๋Š” ์„นํ„ฐ ๊ทธ๋ฃน์„ ๊ตฌ์„ฑํ•˜๋Š” ์กด์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์œผ๋ฉฐ, ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€๋งŒ ํ—ˆ์šฉ๋˜์–ด ์ „์ฒด ๋ธ”๋ก ๊ทธ๋ฃน์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. FS ZoneFS๋Š” Western Digital์—์„œ ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ ๋“œ๋ผ์ด๋ธŒ์˜ ๊ฐ ์˜์—ญ์„ ์„นํ„ฐ ๋ฐ ๋ธ”๋ก ์ˆ˜์ค€์—์„œ ์กฐ์ž‘ํ•˜์ง€ ์•Š๊ณ  ์›์‹œ ๋ชจ๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ํŒŒ์ผ๊ณผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ioctl์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ก ์žฅ์น˜์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜๋Š” ๋Œ€์‹  ํŒŒ์ผ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • NFS์—์„œ๋Š” UDP๋ฅผ ํ†ตํ•œ ํŒŒํ‹ฐ์…˜ ๋งˆ์šดํŠธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. NFS 4.2 ์‚ฌ์–‘์— ์ •์˜๋œ ์„œ๋ฒ„ ๊ฐ„์— ํŒŒ์ผ์„ ์ง์ ‘ ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์žฅ์•  ์‹œ ์บ์‹œ๋œ ์†์„ฑ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๋งˆ์šดํŠธ ์˜ต์…˜ "softreval"์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜๋ฉด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ ํ›„์—๋„ NFS ํŒŒํ‹ฐ์…˜์˜ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜๊ณ  ์บ์‹œ์— ์ €์žฅ๋œ ์ •๋ณด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹ค์‹œ ๊ฐœ๋ณ„ ํŒŒ์ผ์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ธ์ฆ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” fs-verity ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”. Merkle ํ•ด์‹œ ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆœ์ฐจ ์ฝ๊ธฐ ์†๋„๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๋•Œ FS_IOC_ENABLE_VERITY์˜ ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ์„ ์ œ์ ์œผ๋กœ ์ฝ๋Š” ๊ธฐ๋Šฅ์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • ์‹คํ–‰ ์ค‘์— SELinux ๋ชจ๋“ˆ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ด๋ฏธ ํ™œ์„ฑํ™”๋œ SELinux๋ฅผ ์–ธ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์€ ์•ž์œผ๋กœ ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค. SELinux๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์ปค๋„ ๋ช…๋ น์ค„์— "selinux=0" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค(์‹œ๊ฐ„ ๋„ค์ž„์ŠคํŽ˜์ด์Šค)๋ฅผ ์ง€์›ํ•˜์—ฌ ์‹œ์Šคํ…œ ์‹œ๊ณ„์˜ ์ƒํƒœ๋ฅผ ์ปจํ…Œ์ด๋„ˆ(CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ž์‹ ์˜ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ CLOCK_MONOTONIC ๋ฐ CLOCK_BOOTTIME ํŒ๋…๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”(์ ˆ์ „ ๋ชจ๋“œ ์—ฌ๋ถ€๋ฅผ ๊ณ ๋ คํ•˜๊ฑฐ๋‚˜ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋กœ๋“œ ํ›„ ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•˜์„ธ์š”). ).

    • /dev/random ์ฐจ๋‹จ ํ’€์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. /dev/random์˜ ๋™์ž‘์€ ํ’€ ์ดˆ๊ธฐํ™” ํ›„ ์—”ํŠธ๋กœํ”ผ ์ฐจ๋‹จ์„ ๋ฐฉ์ง€ํ•œ๋‹ค๋Š” ์ ์—์„œ /dev/urandom๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
    • ์ฝ”์–ด ์ปค๋„์—๋Š” VirtualBox๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์ด ํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ(VirtualBox ๊ณต์œ  ํด๋”)์—์„œ ๋‚ด๋ณด๋‚ธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • BPF ํ•˜์œ„ ์‹œ์Šคํ…œ์— ํŒจ์น˜ ์„ธํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(BPF ๋””์ŠคํŒจ์ฒ˜), Spectre V2 ํด๋ž˜์Šค ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด Retpoline ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•  ๋•Œ BPF ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ BPF ํ”„๋กœ๊ทธ๋žจ์„ ํ˜ธ์ถœํ•˜๋Š” ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ XDP ํ•ธ๋“ค๋Ÿฌ ํ˜ธ์ถœ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์ด ๋„์ฐฉํ•จ).
    • AMD APU์— ๋‚ด์žฅ๋œ TEE(Trusted Execution Environment)๋ฅผ ์ง€์›ํ•˜๋Š” ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • BPF์—๋Š” ์ „์—ญ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. BPF ํ”„๋กœ๊ทธ๋žจ์— ํฌํ•จ๋  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ„ํš์˜ ์ผํ™˜์œผ๋กœ ๊ฐœ๋ฐœ์ด ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์‚ฌ์šฉ ์ค‘์ธ ๊ธฐ์กด ์ „์—ญ ํ•จ์ˆ˜๋ฅผ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ์ „์—ญ ํ•จ์ˆ˜๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋™์  ํ™•์žฅ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. BPF ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ๋˜ํ•œ ๋ฐฐ์น˜ ๋ชจ๋“œ์—์„œ์˜ ์‹คํ–‰์„ ์ง€์›ํ•˜๋Š” ๋งต ์ž‘์—…(์˜๊ตฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ)์˜ ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€ "cpu_cooling" ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณผ์—ด๋œ CPU๋ฅผ ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ์œ ํœด ์ƒํƒœ๋กœ ๋†“์•„ ๋ƒ‰๊ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. openat2(), ์ด๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ ํ™•์ธ์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(๋งˆ์šดํŠธ ์ง€์  ๊ต์ฐจ ๊ธˆ์ง€, ๊ธฐํ˜ธ ๋งํฌ, ๋งค์ง ๋งํฌ(/proc/PID/fd), โ€œ../โ€ ๊ตฌ์„ฑ ์š”์†Œ).
    • ๊ฐ•๋ ฅํ•˜๊ณ  ์—๋„ˆ์ง€ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€๋Š” CPU ์ฝ”์–ด๋ฅผ ํ•˜๋‚˜์˜ ์นฉ์— ๊ฒฐํ•ฉํ•œ big.LITTLE ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜์˜ ์ด๊ธฐ์ข… ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์‹ค์‹œ๊ฐ„ ์ž‘์—…์„ ์‹คํ–‰ํ•  ๋•Œ uclamp_min ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค(์ถœ์—ฐ ํ•œ ์ปค๋„ 5.3์—๋Š” ๋กœ๋“œ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ถฉ๋ถ„ํ•œ ์„ฑ๋Šฅ์„ ๊ฐ–์ถ˜ CPU ์ฝ”์–ด์— ์ž‘์—…์„ ๋ฐฐ์น˜ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ์ปค๋„์€ ๋‹ค์Œ์—์„œ ํ•ด๋ฐฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2038๋…„์˜ ๋ฌธ์ œ. ํš๊ธฐ์ ์ธ ์‹œ๊ฐ„ ์นด์šดํ„ฐ์— ๋Œ€ํ•ด 32๋น„ํŠธ(์„œ๋ช…๋œ int) ์œ ํ˜• time_t๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋งˆ์ง€๋ง‰ ๋‚˜๋จธ์ง€ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•ธ๋“ค๋Ÿฌ๋Š” 1970๋…„ ๋ณด๊ณ ์„œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ 2038๋…„์— ์˜ค๋ฒ„ํ”Œ๋กœ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋น„๋™๊ธฐ I/O ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ง€์†์ ์ธ ๊ฐœ์„  io_uring์–ด๋Š ์ œ๊ณต๋œ ์ƒˆ๋กœ์šด ์ž‘์—… ์ง€์›: IORING_OP_FALLOCATE(๋นˆ ์˜์—ญ ์˜ˆ์•ฝ), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE(ํŒŒ์ผ ์—ด๊ธฐ ๋ฐ ๋‹ซ๊ธฐ),
      IORING_OP_FILES_UPDATE(๋น ๋ฅธ ์•ก์„ธ์Šค ๋ชฉ๋ก์—์„œ ํŒŒ์ผ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ),
      IORING_OP_STATX(ํŒŒ์ผ ์ •๋ณด ์š”์ฒญ),
      IORING_OP_READ,
      IORING_OP_WRITE(IORING_OP_READV ๋ฐ IORING_OP_WRITEV์˜ ๋‹จ์ˆœํ™”๋œ ์œ ์‚ฌ์ฒด),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE(posix_fadvise ๋ฐ madvise ํ˜ธ์ถœ์˜ ๋น„๋™๊ธฐ ๋ณ€ํ˜•), IORING_OP_SEND,
      IORING_OP_RECV(๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐ ์ˆ˜์‹ ),
      IORING_OP_EPOLL_CTL(epoll ํŒŒ์ผ ์„ค๋ช…์ž์— ๋Œ€ํ•œ ์ž‘์—… ์ˆ˜ํ–‰)

    • ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. pidfd_getfd(), ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—์„œ ์—ด๋ฆฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒŒ์ผ ์„ค๋ช…์ž๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ตฌํ˜„ ๋ช…๋ น์ค„ ์˜ต์…˜ ์™ธ์—๋„ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ์ปค๋„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” "bootconfig" ๋ฉ”์ปค๋‹ˆ์ฆ˜. initramfs ์ด๋ฏธ์ง€์— ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด bootconfig ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๊ธฐ๋Šฅ์€ ๋ถ€ํŒ… ์‹œ kprobe๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์žฌ์„ค๊ณ„ ๋ช…๋ช…๋˜์ง€ ์•Š์€ ํŒŒ์ดํ”„์—์„œ ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋กœ ์ธํ•ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๋ณ‘๋ ฌ ์กฐ๋ฆฝ๊ณผ ๊ฐ™์€ ์ž‘์—… ์†๋„๊ฐ€ ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฒ„์ „ 4.2.1์—์„œ ์ˆ˜์ •๋œ 4.3 ๋ฆด๋ฆฌ์Šค์˜ ๋ฒ„๊ทธ๋กœ ์ธํ•ด ์ตœ์ ํ™”๋กœ ์ธํ•ด GNU make์—์„œ ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ ์ œํ•œ์„ ๋ฐ›์•„์„œ๋Š” ์•ˆ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์—†๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” PR_SET_IO_FLUSHER ํ”Œ๋ž˜๊ทธ๋ฅผ prctl()์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • Android์—์„œ ์‚ฌ์šฉ๋˜๋Š” ION ๋ฉ”๋ชจ๋ฆฌ ๋ถ„๋ฐฐ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. dma-buf ํž™์ด๋ฅผ ํ†ตํ•ด ๋“œ๋ผ์ด๋ฒ„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋‹ค์–‘ํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ ๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ DMA ๋ฒ„ํผ ํ• ๋‹น์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜
    • ARMv0์— ๋“ฑ์žฅํ•˜๊ณ  CPU์—์„œ ๋ช…๋ น์–ด์˜ ์ถ”์ธก ์‹คํ–‰๊ณผ ๊ด€๋ จ๋œ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋Š” E8.5PD ํ™•์žฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. E0PD ๊ธฐ๋ฐ˜ ๋ณดํ˜ธ๋Š” KPTI(Kernel Page Table Isolation) ๋ณดํ˜ธ๋ณด๋‹ค ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค.
    • ARMv8.5 ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ RNG ๋ช…๋ น์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด ํ•˜๋“œ์›จ์–ด ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์—์„œ๋Š” ์ปค๋„ ์ œ๊ณต ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ RNG ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—”ํŠธ๋กœํ”ผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • ์ปค๋„์— ์ถ”๊ฐ€๋œ MPX(Memory Protection Extensions)์— ๋Œ€ํ•œ ์ง€์› ์ œ๊ฑฐ 3.19 ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ๊ฒฝ๊ณ„๊ฐ€ ์กด์ค‘๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ GCC์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • RISC-V ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—… ์‹œ ์˜ค๋ฅ˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” KASan(Kernel address sanitizer) ๋””๋ฒ„๊น… ๋„๊ตฌ์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • ์‚ฌ์–‘ ์ง€์› ๊ตฌํ˜„ USB 4.0, Thunderbolt 3 ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์ตœ๋Œ€ 40Gbps์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ œ๊ณตํ•˜๋Š” ๋™์‹œ์— USB 2.0 ๋ฐ USB 3.2์™€์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋น„์œ ํ•˜์ž๋ฉด Thunderbolt USB 4.0 ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปค๋„ฅํ„ฐ๊ฐ€ ์žˆ๋Š” ๋‹จ์ผ ์ผ€์ด๋ธ”์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ์„ ํ„ฐ๋„๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ํ˜• -C, PCIe, ๋””์Šคํ”Œ๋ ˆ์ด ํฌํŠธ ๋ฐ USB 3.x๋ฅผ ๋น„๋กฏํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ๋งํฌ ๊ตฌ์„ฑ๊ณผ ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„์€ Linux ์ปค๋„์— ์ด๋ฏธ ํฌํ•จ๋œ Thunderbolt ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ USB4 ํ˜ธํ™˜ ํ˜ธ์ŠคํŠธ ๋ฐ ์žฅ์น˜์™€ ์ž‘๋™ํ•˜๋„๋ก ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹จ์ผ ์ปค๋„ฅํ„ฐ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ„ฐ๋„์„ ์ƒ์„ฑํ•˜๋Š” ์—ฐ๊ฒฐ ๊ด€๋ฆฌ์ž์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„์— Thunderbolt 3 ์žฅ์น˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • amdgpu ๋“œ๋ผ์ด๋ฒ„์—์„œ ์ถ”๊ฐ€ HDCP 2.x(๊ณ ๋Œ€์—ญํญ ๋””์ง€ํ„ธ ์ฝ˜ํ…์ธ  ๋ณดํ˜ธ) ๋ณต์‚ฌ ๋ฐฉ์ง€ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›. Raven 2 ๊ธฐ๋ฐ˜ AMD Pollock ASIC ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Renoir ๋ฐ Navi ์ œํ’ˆ๊ตฐ์— ๋Œ€ํ•ด GPU๋ฅผ ์žฌ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Intel ๋น„๋””์˜ค ์นด๋“œ์šฉ DRM ๋“œ๋ผ์ด๋ฒ„ ์ถ”๊ฐ€ Ice Lake ๋ฐ Tiger Lake ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ์นฉ์— ๋Œ€ํ•œ DSI VDSC ์ง€์›, LMEM mmap(์žฅ์น˜ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ) ๊ตฌํ˜„, VBT(๋น„๋””์˜ค BIOS ํ…Œ์ด๋ธ”) ๊ตฌ๋ฌธ ๋ถ„์„ ๊ฐœ์„ , Coffee Lake ์นฉ์— ๋Œ€ํ•œ HDCP 2.2 ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • amdkfd ๋“œ๋ผ์ด๋ฒ„ ์ฝ”๋“œ(Fiji, Tonga, Polaris์™€ ๊ฐ™์€ ๊ฐœ๋ณ„ GPU์šฉ)๋ฅผ amdgpu ๋“œ๋ผ์ด๋ฒ„์™€ ํ†ตํ•ฉํ•˜๋Š” ์ž‘์—…์ด ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • k10temp ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์žฌ์ž‘์—…๋˜์–ด AMD Zen CPU์— ๋Œ€ํ•œ ์ „์•• ๋ฐ ์ „๋ฅ˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ‘œ์‹œ์— ๋Œ€ํ•œ ์ง€์›์€ ๋ฌผ๋ก  Zen ๋ฐ Zen 2 CPU์— ์‚ฌ์šฉ๋˜๋Š” ์˜จ๋„ ์„ผ์„œ์˜ ํ™•์žฅ๋œ ์ •๋ณด๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ˆ„๋ณด๋“œ๋ผ์ด๋ฒ„์—์„œ๋Š” ์ถ”๊ฐ€ Turing ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜(GeForce RTX 2000)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” NVIDIA GPU์— ๋Œ€ํ•ด ๊ฒ€์ฆ๋œ ํŽŒ์›จ์–ด ๋กœ๋”ฉ ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์นด๋“œ์— ๋Œ€ํ•œ 3D ๊ฐ€์† ์ง€์›์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค(NVIDIA ๋””์ง€ํ„ธ ์„œ๋ช…์ด ์žˆ๋Š” ๊ณต์‹ ํŽŒ์›จ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•จ). TU10x ๊ทธ๋ž˜ํ”ฝ ์—”์ง„์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. HD ์˜ค๋””์˜ค ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • DisplayPort MST(Multi-Stream Transport)๋ฅผ ํ†ตํ•ด ์ „์†ก๋  ๋•Œ ๋ฐ์ดํ„ฐ ์••์ถ•์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ƒˆ ๋“œ๋ผ์ด๋ฒ„ ์ถ”๊ฐ€ "ath11kยป 802.11ax๋ฅผ ์ง€์›ํ•˜๋Š” Qualcomm ๋ฌด์„  ์นฉ์˜ ๊ฒฝ์šฐ.
      ์ด ๋“œ๋ผ์ด๋ฒ„๋Š” mac80211 ์Šคํƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์•ก์„ธ์Šค ํฌ์ธํŠธ, ์›Œํฌ์Šคํ…Œ์ด์…˜ ๋ฐ ๋ฉ”์‹œ ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    • sysfs๋ฅผ ํ†ตํ•ด ์ตœ์‹  ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ ๋ฐ SSD์— ์‚ฌ์šฉ๋˜๋Š” ์ฝ๊ธฐ ๊ฐ€๋Šฅํ•œ ์˜จ๋„ ์„ผ์„œ ํŒ๋…๊ฐ’์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ์—ฌ ์ฝ”๋“œ ์ œ๊ฑฐ๋ฅผ ๋ชฉํ‘œ๋กœ ALSA ์‚ฌ์šด๋“œ ์‹œ์Šคํ…œ์— ํฐ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. 2038๋…„์˜ ๋ฌธ์ œ (snd_pcm_mmap_status ๋ฐ snd_pcm_mmap_control ์ธํ„ฐํŽ˜์ด์Šค์—์„œ 32๋น„ํŠธ time_t ์œ ํ˜•์˜ ์‚ฌ์šฉ์„ ํ”ผํ•˜์‹ญ์‹œ์˜ค). ์ƒˆ๋กœ์šด ์˜ค๋””์˜ค ์ฝ”๋ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      ํ€„์ปด WCD9340/WCD9341, ๋ฆฌ์–ผํ… RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • ์ถ”๊ฐ€๋จ LCD ํŒจ๋„์šฉ ๋“œ๋ผ์ด๋ฒ„ Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      ์‚ฌํ† ์ฆˆ SAT050AT40H12R2,
      ์ƒคํ”„ LS020B1DD01D.

    • ์ถ”๊ฐ€๋จ ARM ๋ณด๋“œ ๋ฐ Gen1 ํ”Œ๋žซํผ ์ง€์› Amazon Echo(OMAP3630 ๊ธฐ๋ฐ˜), Samsung Galaxy S III mini(GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Tolino Shine 3 eBook ๋ฆฌ๋”,
      Embedded Artists COM(i.MX7ULP), SolidRun Clearfog CX/ITX ๋ฐ HoneyComb(LX2160A), Google Coral Edge TPU(i.MX8MQ),
      Rockchip Radxa Dalang ์บ๋ฆฌ์–ด, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60(ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc SC9863A, Qualcomm SC7180. Raspberry Pi 4์— ์‚ฌ์šฉ๋˜๋Š” PCIe ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋™์‹œ์— ๋ผํ‹ด ์•„๋ฉ”๋ฆฌ์นด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ(Latin American Free Software Foundation) ํ˜•์„ฑ๋œ
ะฒะฐั€ะธะฐะฝั‚ ์™„์ „ ๋ฌด๋ฃŒ ์ปค๋„ 5.6 - Linux-libre 5.6-gnu, ์ œ์กฐ์—…์ฒด๊ฐ€ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๋Š” ๋น„์ž์œ  ๊ตฌ์„ฑ ์š”์†Œ ๋˜๋Š” ์ฝ”๋“œ ์„น์…˜์„ ํฌํ•จํ•˜๋Š” ํŽŒ์›จ์–ด ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” AMD TEE, ATH11K ๋ฐ Mediatek SCP์šฉ ๋“œ๋ผ์ด๋ฒ„์—์„œ Blob ๋กœ๋”ฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. AMD PSP, amdgpu, nouveau ๋“œ๋ผ์ด๋ฒ„ ๋ฐ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์–ผ๋ฃฉ ์ •๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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