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

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” ๋„์ž… ๋œ ์ปค๋„ ๋ฆด๋ฆฌ์Šค Linux 5.9. ๊ฐ€์žฅ ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ: ๋…์  ๋ชจ๋“ˆ์—์„œ GPL ๋ชจ๋“ˆ๋กœ ๊ธฐํ˜ธ ๊ฐ€์ ธ์˜ค๊ธฐ ์ œํ•œ, FSGSBASE ํ”„๋กœ์„ธ์„œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ ์ „ํ™˜ ์ž‘์—… ์†๋„ ํ–ฅ์ƒ, Zstd๋ฅผ ์‚ฌ์šฉํ•œ ์ปค๋„ ์ด๋ฏธ์ง€ ์••์ถ• ์ง€์›, ์ปค๋„์—์„œ ์Šค๋ ˆ๋“œ ์šฐ์„  ์ˆœ์œ„ ์žฌ์ž‘์—…, PRP ์ง€์› (๋ณ‘๋ ฌ ์ค‘๋ณต ํ”„๋กœํ† ์ฝœ), ๋ฐ๋“œ๋ผ์ธ ์Šค์ผ€์ค„๋Ÿฌ์˜ ๋Œ€์—ญํญ ์ธ์‹ ์Šค์ผ€์ค„๋ง, ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์˜ ์„ ์ œ์  ํŒจํ‚น, ๊ธฐ๋Šฅ ํ”Œ๋ž˜๊ทธ CAP_CHECKPOINT_RESTOR, close_range() ์‹œ์Šคํ…œ ํ˜ธ์ถœ, dm-crypt ์„ฑ๋Šฅ ๊ฐœ์„ , 32๋น„ํŠธ Xen PV ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ, ์ƒˆ๋กœ์šด ์Šฌ๋žฉ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜, Btrfs์˜ "rescue" ์˜ต์…˜, ext4 ๋ฐ F2FS์˜ ์ธ๋ผ์ธ ์•”ํ˜ธํ™” ์ง€์›.

์ƒˆ ๋ฒ„์ „์—๋Š” 16074๋…„ ๊ฐœ๋ฐœ์ž์˜ 2011๊ฐœ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจ์น˜ ํฌ๊ธฐ - 62MB(๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด 14548๊ฐœ ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  782155์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ 314792์ค„์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). 45์— ์ œ์‹œ๋œ ์ „์ฒด ๋‚ด์šฉ์˜ ์•ฝ 5.9%
๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์•ฝ 15%๋Š”
ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ํƒœ๋„, 13%
๋„คํŠธ์›Œํฌ ์Šคํƒ ๊ด€๋ จ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ จ 3%, ๋‚ด๋ถ€ ๊ด€๋ จ 3%
์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ.

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

  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • ์กฐ์—ฌ์ง GPL ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ชจ๋“ˆ์šฉ์œผ๋กœ๋งŒ ๋‚ด๋ณด๋‚ธ ์ปค๋„ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๋…์  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ GPL ๋ ˆ์ด์–ด ์‚ฌ์šฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. TAINT_PROPRIETARY_MODULE ํ”Œ๋ž˜๊ทธ๋Š” ์ด์ œ ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“ˆ์—์„œ ๊ธฐํ˜ธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ชจ๋“  ๋ชจ๋“ˆ์—์„œ ์ƒ์†๋ฉ๋‹ˆ๋‹ค. GPL ๋ชจ๋“ˆ์ด GPL์ด ์•„๋‹Œ ๋ชจ๋“ˆ์—์„œ ๊ธฐํ˜ธ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๋ฉด ํ•ด๋‹น GPL ๋ชจ๋“ˆ์€ TAINT_PROPRIETARY_MODULE ๋ ˆ์ด๋ธ”์„ ์ƒ์†ํ•˜๊ณ  ๋ชจ๋“ˆ์ด ์ด์ „์— GPL ๋ผ์ด์„ผ์Šค ๋ชจ๋“ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋„ ๊ตฌ์„ฑ ์š”์†Œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. "gplonly" ์นดํ…Œ๊ณ ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋…์  ๋“œ๋ผ์ด๋ฒ„์˜ ์ž‘์—…์„ ์ค‘๋‹จ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์—ญ๋ฐฉํ–ฅ ์ž ๊ธˆ(EXPORT_SYMBOL_GPL์„ ๊ฐ€์ ธ์˜จ ๋ชจ๋“ˆ์—์„œ EXPORT_SYMBOL_GPL๋งŒ ๋‚ด๋ณด๋‚ด๊ธฐ)์€ ๊ตฌํ˜„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋…์  ๋ชจ๋“ˆ ํ”Œ๋ž˜๊ทธ๋งŒ ์ƒ์†๋˜๊ณ  GPL ๋ฐ”์ธ๋”ฉ์€ ์ƒ์†๋˜์ง€ ์•Š์Œ).
    • ์ถ”๊ฐ€๋จ kcompactd ์—”์ง„ ์ง€์› ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์‚ฌ์ „ ํŒจํ‚น ์ปค๋„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์˜ˆ๋น„ ์ถ”์ •์— ๋”ฐ๋ฅด๋ฉด, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํŒจํ‚ค์ง•์€ ์ตœ์†Œํ•œ์˜ ์˜ค๋ฒ„ํ—ค๋“œ ๋น„์šฉ์œผ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€(๋Œ€ํ˜• ํŽ˜์ด์ง€)๋ฅผ ํ• ๋‹นํ•  ๋•Œ ํ•„์š” ์‹œ ์‹คํ–‰๋˜๋Š” ์ด์ „์— ์‚ฌ์šฉ๋œ ํŒจํ‚ค์ง• ๋ฉ”์ปค๋‹ˆ์ฆ˜(์ฃผ๋ฌธํ˜•)์— ๋น„ํ•ด 70~80๋ฐฐ๊นŒ์ง€ ์ง€์—ฐ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ). kcompactd๊ฐ€ ์ œ๊ณตํ•  ์™ธ๋ถ€ ์กฐ๊ฐํ™”์˜ ๊ฒฝ๊ณ„๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด sysctl vm.compaction_proactiveness๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ ์ปค๋„ ์ด๋ฏธ์ง€ ์••์ถ• ์ง€์› Z์Šคํƒ ๋‹ค๋“œ (zstd).
    • x86 ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ”„๋กœ์„ธ์„œ ๋ช…๋ น์–ด ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. FSGS๋ฒ ์ด์Šค, ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ FS/GS ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์„ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„์—์„œ FSGSBASE๋Š” GSBASE์— ๋Œ€ํ•œ ๋ถˆํ•„์š”ํ•œ MSR ์“ฐ๊ธฐ ์ž‘์—…์„ ์ œ๊ฑฐํ•˜์—ฌ ์ปจํ…์ŠคํŠธ ์ „ํ™˜ ์ž‘์—… ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ๋Š” FS/GS๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ ๋ถˆํ•„์š”ํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ "allow_writes" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ํ”„๋กœ์„ธ์„œ์˜ MSR ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ๊ธˆ์ง€ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ฝ๊ธฐ ์ž‘์—…์œผ๋กœ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MSR์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์“ฐ๊ธฐ๋Š” ์•„์ง ๋น„ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ MSR์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋กœ๊ทธ์— ๋ฐ˜์˜๋˜์ง€๋งŒ ํ–ฅํ›„์—๋Š” ๊ธฐ๋ณธ ์•ก์„ธ์Šค๋ฅผ ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.
    • ๋น„๋™๊ธฐ I/O ์ธํ„ฐํŽ˜์ด์Šค๋กœ io_uring ์ปค๋„ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋น„๋™๊ธฐ ๋ฒ„ํผ๋ง ์ฝ๊ธฐ ์ž‘์—…์— ๋Œ€ํ•œ ์ „์ฒด ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋…น์Œ ์ง€์›์€ ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
    • I/O ์Šค์ผ€์ค„๋Ÿฌ ๋งˆ๊ฐ์ผ ๊ตฌํ˜„ ์šฉ๋Ÿ‰์— ๋”ฐ๋ฅธ ๊ณ„ํš, ํ—ˆ์šฉ ARM ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ๋น„๋Œ€์นญ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. DynamIQ ๊ฐ•๋ ฅํ•˜๊ณ  ์—๋„ˆ์ง€ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€๋Š” CPU ์ฝ”์–ด๋ฅผ ํ•˜๋‚˜์˜ ์นฉ์— ๊ฒฐํ•ฉํ•œ big.LITTLE. ํŠนํžˆ, ์ƒˆ๋กœ์šด ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Š๋ฆฐ CPU ์ฝ”์–ด์— ์ž‘์—…์„ ์ œ ์‹œ๊ฐ„์— ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์„ ๋•Œ ์ผ์ • ๋ถˆ์ผ์น˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„(์—๋„ˆ์ง€ ๋ชจ๋ธ ํ”„๋ ˆ์ž„์›Œํฌ)์˜ ์—๋„ˆ์ง€ ์†Œ๋น„ ๋ชจ๋ธ์€ ์ด์ œ ๊ธฐ์ˆ ํ•˜๋‹ค CPU ์ „๋ ฅ ์†Œ๋น„ ๋™์ž‘๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฃผ๋ณ€ ์žฅ์น˜์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • close_range() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ํŒŒ์ผ ์„ค๋ช…์ž์˜ ์ „์ฒด ๋ฒ”์œ„๋ฅผ ํ•œ ๋ฒˆ์— ๋‹ซ์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ…์ŠคํŠธ ์ฝ˜์†” ๋ฐ fbcon ๋“œ๋ผ์ด๋ฒ„ ๊ตฌํ˜„์—์„œ ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ๋จ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ VGA ํ…์ŠคํŠธ ๋ชจ๋“œ ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ ์–‘๋ณด๋‹ค ๋” ๋งŽ์€ ์–‘๋งŒํผ ํ…์ŠคํŠธ๋ฅผ ๋’ค๋กœ ์Šคํฌ๋กค(CONFIG_VGACON_SOFT_SCROLLBACK)ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์žฌ์„ค๊ณ„ ์ปค๋„ ๋‚ด์˜ ์Šค๋ ˆ๋“œ์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ• ๋‹นํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์˜ต์…˜์€ ์‹ค์‹œ๊ฐ„ ์ž‘์—…์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ• ๋‹นํ•  ๋•Œ ๋ชจ๋“  ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ๋” ๋‚˜์€ ์ผ๊ด€์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • sysctl์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. sched_uclamp_util_min_rt_default ์‹ค์‹œ๊ฐ„ ์ž‘์—…์— ๋Œ€ํ•œ CPU ๋ถ€์ŠคํŠธ ์„ค์ •์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐํ„ฐ๋ฆฌ ์ „์›์œผ๋กœ ์ „ํ™˜ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ฐ”์ผ ์‹œ์Šคํ…œ์—์„œ ์ „๋ ฅ์„ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์‹œ๊ฐ„ ์ž‘์—…์˜ ๋™์ž‘์„ ์ฆ‰์‹œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
    • ํŽ˜์ด์ง€ ์บ์‹œ์—์„œ Transparent Huge Pages ๊ธฐ์ˆ  ์ง€์›์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • fanotify ์—”์ง„์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ํ•ญ๋ชฉ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๊ฐœ์ฒด์— ๋Œ€ํ•ด ์ƒ์„ฑ, ์‚ญ์ œ ๋˜๋Š” ์ด๋™ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ƒ์œ„ ์ด๋ฆ„๊ณผ ๊ณ ์œ  FID ์ •๋ณด๋ฅผ ๋ณด๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ํ”Œ๋ž˜๊ทธ FAN_REPORT_NAME ๋ฐ FAN_REPORT_DIR_FID๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • cgroup์˜ ๊ฒฝ์šฐ ๊ตฌํ˜„ ์ƒˆ๋กœ์šด ์Šฌ๋žฉ ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์Šฌ๋žฉ ๊ณ„์ •์„ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์ˆ˜์ค€์—์„œ ์ปค๋„ ๊ฐ์ฒด ์ˆ˜์ค€์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ cgroup์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์Šฌ๋žฉ ์บ์‹œ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋Œ€์‹  ๋‹ค๋ฅธ cgroup์—์„œ ์Šฌ๋žฉ ํŽ˜์ด์ง€๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ์Šฌ๋žฉ ์‚ฌ์šฉ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ , ์Šฌ๋žฉ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ 30~45% ์ค„์ด๋ฉฐ, ์ปค๋„์˜ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ํฌ๊ฒŒ ์ค„์ด๊ณ , ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐํ™”๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šด๋“œ ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ์•Œ์‚ฌ ะธ USB ์Šคํƒ, ์— ๋”ฐ๋ผ ์ตœ๊ทผ์— ์ฑ„ํƒ Linux ์ปค๋„์—์„œ ํฌ๊ด„์ ์ธ ์šฉ์–ด ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ, ์ •์น˜์ ์œผ๋กœ ์ž˜๋ชป๋œ ์šฉ์–ด๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์—์„œ "์Šฌ๋ ˆ์ด๋ธŒ", "๋งˆ์Šคํ„ฐ", "๋ธ”๋ž™๋ฆฌ์ŠคํŠธ" ๋ฐ "ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ"๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • Clang ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ถœ์—ฐ ํ•œ ์Šคํƒ์— ์ €์žฅ๋œ ๋ชจ๋“  ๋ณ€์ˆ˜์˜ XNUMX์œผ๋กœ ์ž๋™ ์ดˆ๊ธฐํ™”(CONFIG_INIT_STACK_ALL_ZERO)๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ(๋นŒ๋“œ ์‹œ "-ftrivial-auto-var-init=zero" ์ง€์ •)
    • seccomp ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ถ”๊ฐ€ ๊ธฐํšŒ ํŒŒ์ผ ์„ค๋ช…์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์™„์ „ํžˆ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ์„ค๋ช…์ž๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ Chrome์šฉ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ ์‹œ์Šคํ…œ ๋ฐ ์ƒŒ๋“œ๋ฐ•์Šค ๊ตฌํ˜„์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • xtensa ๋ฐ csky ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ seccomp ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. xtensa์˜ ๊ฒฝ์šฐ ๊ฐ์‚ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ํ”Œ๋ž˜๊ทธ CAP_CHECKPOINT_RESTORE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ์–‘๋„ํ•˜์ง€ ์•Š๊ณ ๋„ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ ๋™๊ฒฐํ•˜๊ณ  ๋ณต์›ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • GCC 11์€ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
      ์ปค๋„ ๋‚ด ๊ฒฝํ•ฉ ์ƒํƒœ๋ฅผ ๋™์ ์œผ๋กœ ๊ฐ์ง€ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋””๋ฒ„๊น… ๋„๊ตฌ KCSAN(Kernel Concurrency Sanitizer)์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ œ KCSAN์„ GCC์— ๊ตฌ์ถ•๋œ ์ปค๋„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • AMD Zen ๋ฐ ์ตœ์‹  CPU ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ P2PDMA ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๋ฏ€๋กœ PCI ๋ฒ„์Šค์— ์—ฐ๊ฒฐ๋œ ๋‘ ์žฅ์น˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„ ์ง์ ‘ ๋ฐ์ดํ„ฐ ์ „์†ก์— DMA๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ž‘์—… ๋Œ€๊ธฐ์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์•”ํ˜ธํ™” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“œ๊ฐ€ dm-crypt์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์—๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์—ญํ™” ๋ธ”๋ก ์žฅ์น˜(์ˆœ์ฐจ์ ์œผ๋กœ ๊ธฐ๋ก๋˜์–ด์•ผ ํ•˜๋Š” ์˜์—ญ์ด ์žˆ๋Š” ์žฅ์น˜, ์ „์ฒด ๋ธ”๋ก ๊ทธ๋ฃน์„ ์—…๋ฐ์ดํŠธํ•จ). dm-crypt์—์„œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋Š˜๋ฆฌ๊ณ  ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Xen ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ˜๊ฐ€์ƒํ™” ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” 32๋น„ํŠธ ๊ฒŒ์ŠคํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ์ž๋Š” ๊ฒŒ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ 64๋น„ํŠธ ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜ํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๊ฐ€์ƒํ™”(PV) ๋Œ€์‹  ์ „์ฒด(HVM) ๋˜๋Š” ๊ฒฐํ•ฉ(PVH) ๊ฐ€์ƒํ™” ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • Btrfs ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๊ตฌํ˜„ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ณต๊ตฌ ์˜ต์…˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•ฉํ•˜๋Š” "๊ตฌ์กฐ" ๋งˆ์šดํŠธ ์˜ต์…˜. "alloc_start" ๋ฐ "subvolrootid" ์˜ต์…˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ "inode_cache" ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์œผ๋ฉฐ ํŠนํžˆ fsync() ์ž‘์—… ์‹คํ–‰ ์†๋„๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋จ CRC32c ์ด์™ธ์˜ ๋Œ€์ฒด ์œ ํ˜•์˜ ์ฒดํฌ์„ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ.
    • ์ถ”๊ฐ€๋จ ext4 ๋ฐ F2FS ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์ธ๋ผ์ธ ์•”ํ˜ธํ™”(์ธ๋ผ์ธ ์•”ํ˜ธํ™”)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "inlinecrypt" ๋งˆ์šดํŠธ ์˜ต์…˜์ด ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ผ์ธ ์•”ํ˜ธํ™” ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž…๋ ฅ/์ถœ๋ ฅ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ์•”ํ˜ธํ™”ํ•˜๊ณ  ํ•ด๋…ํ•˜๋Š” ๋“œ๋ผ์ด๋ธŒ ์ปจํŠธ๋กค๋Ÿฌ์— ๋‚ด์žฅ๋œ ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • XFS์—์„œ ํ™•๋ณด๋จ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ์™„์ „ ๋น„๋™๊ธฐ ๋ชจ๋“œ์˜ inode ์žฌ์„ค์ •(ํ”Œ๋Ÿฌ์‹œ). ์†Œํ”„ํŠธ ์ œํ•œ ๋ฐ inode ์ œํ•œ ๊ฒฝ๊ณ ๋ฅผ ์ž˜๋ชป ์ถ”์ ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์˜ค๋ž˜๋œ ํ• ๋‹น๋Ÿ‰ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ext4 ๋ฐ xfs์— ๋Œ€ํ•œ DAX ์ง€์› ํ†ตํ•ฉ ๊ตฌํ˜„.
    • Ext4์—์„œ ๊ตฌํ˜„ ๋ธ”๋ก ํ• ๋‹น ๋น„ํŠธ๋งต์„ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ทธ๋ฃน์˜ ๊ฒ€์ƒ‰ ์ œํ•œ๊ณผ ๊ฒฐํ•ฉ๋œ ์ตœ์ ํ™” ๋•๋ถ„์— ๋งค์šฐ ํฐ ํŒŒํ‹ฐ์…˜์„ ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • F2FS์—์„œ ์ถ”๊ฐ€ ioctl F2FS_IOC_SEC_TRIM_FILE์„ ์‚ฌ์šฉํ•˜๋ฉด TRIM/discard ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์˜ ์ง€์ •๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์žฌ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋“œ๋ผ์ด๋ธŒ์— ์ž”์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š๊ณ  ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      F2FS์—์„œ๋„ ์ถ”๊ฐ€ ์ƒˆ๋กœ์šด ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘ ๋ชจ๋“œ GC_URGENT_LOW๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์œ ํœด ์ƒํƒœ์— ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ผ๋ถ€ ๊ฒ€์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ณด๋‹ค ์ ๊ทน์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    • BCache์—์„œ ์˜์—ญ๋ณ„ ์žฅ์น˜ ์บ์‹œ ํ™œ์„ฑํ™”๋ฅผ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ์ต์Šคํ…ํŠธ์˜ bucket_size๊ฐ€ 16๋น„ํŠธ์—์„œ 32๋น„ํŠธ๋กœ ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.
    • UFS ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‚ด์žฅ ํ•˜๋“œ์›จ์–ด ์•”ํ˜ธํ™”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ๋ผ์ธ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด SCSI ํ•˜์œ„ ์‹œ์Šคํ…œ(๋ฒ”์šฉ ํ”Œ๋ž˜์‹œ ์Šคํ† ๋ฆฌ์ง€).
    • ์ƒˆ๋กœ์šด ์ปค๋„ ๋ช…๋ น์ค„ ๋งค๊ฐœ๋ณ€์ˆ˜ "debugfs"๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๋™์ผํ•œ ์ด๋ฆ„์˜ pseudo-FS์˜ ๊ฐ€์šฉ์„ฑ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • NFSv4.2 ํด๋ผ์ด์–ธํŠธ๋Š” ํ™•์žฅ ํŒŒ์ผ ์†์„ฑ(xattr)์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • DM ๋จผ์ง€์—์„œ ์ถ”๊ฐ€ ๋””์Šคํฌ์—์„œ ์‹๋ณ„๋œ ๋ชจ๋“  ๋ถˆ๋Ÿ‰ ๋ธ”๋ก ๋ชฉ๋ก์„ ํ•œ ๋ฒˆ์— ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค(โ€œdmsetup message Dust1 0 listbadblocksโ€).
    • md/raid5์˜ ๊ฒฝ์šฐ STRIPE ๋ธ”๋ก ํฌ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด /sys/block/md1/md/stripe_size ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • NVMe ์ €์žฅ ์žฅ์น˜์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๋“œ๋ผ์ด๋ธŒ ์˜์—ญ ์ง€์ • ๋ช…๋ น(ZNS, NVM Express Zoned Namespace)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ฐ„์„ ๋ธ”๋ก ๊ทธ๋ฃน์„ ๊ตฌ์„ฑํ•˜๋Š” ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋“œ๋ผ์ด๋ธŒ์˜ ๋ฐ์ดํ„ฐ ๋ฐฐ์น˜๋ฅผ ๋ณด๋‹ค ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ๋„ทํ•„ํ„ฐ์—์„œ ์ถ”๊ฐ€ ๋ผ์šฐํŒ… ํ™•์ธ ์ „ ๋‹จ๊ณ„์—์„œ ํŒจํ‚ท์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ๊ธฐ๋Šฅ(REJECT ํ‘œํ˜„์‹์€ ์ด์ œ INPUT, FORWARD ๋ฐ OUTPUT ์ฒด์ธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ icmp ๋ฐ tcp์˜ PREROUTING ๋‹จ๊ณ„์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)
    • nftables์—์„œ ์ถ”๊ฐ€ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ.
    • netlink API์˜ nftables์—์„œ ์ถ”๊ฐ€ ์ปค๋„์— ์˜ํ•ด ๋™์ ์œผ๋กœ ์ด๋ฆ„์ด ํ• ๋‹น๋˜๋Š” ์ต๋ช… ์ฒด์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ต๋ช… ์ฒด์ธ๊ณผ ์—ฐ๊ฒฐ๋œ ๊ทœ์น™์„ ์‚ญ์ œํ•˜๋ฉด ์ฒด์ธ ์ž์ฒด๊ฐ€ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
    • BPF๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ ๋„ ์—ฐ๊ด€ ๋ฐฐ์—ด(๋งต)์˜ ์š”์†Œ๋ฅผ ํƒ์ƒ‰, ํ•„ํ„ฐ๋ง ๋ฐ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต๊ธฐ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์ž๋Š” TCP ๋ฐ UDP ์†Œ์ผ“์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด BPF ํ”„๋กœ๊ทธ๋žจ์€ ์—ด๋ฆฐ ์†Œ์ผ“ ๋ชฉ๋ก์„ ๋ฐ˜๋ณตํ•˜๊ณ  ๊ทธ ๋ชฉ๋ก์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„์ด ๋“ค์–ด์˜ค๋Š” ์—ฐ๊ฒฐ์— ์ ํ•ฉํ•œ ์ฒญ์ทจ ์†Œ์ผ“์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‹œ์ž‘๋˜๋Š” ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ BPF ํ”„๋กœ๊ทธ๋žจ BPF_PROG_TYPE_SK_LOOKUP์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ BPF ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ”์ธ๋”ฉ() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์˜ํ•ด ์ œํ•œ๋˜์ง€ ์•Š๊ณ  ์—ฐ๊ฒฐ์ด ์–ด๋–ค ์†Œ์ผ“๊ณผ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹จ์ผ ์†Œ์ผ“์„ ๋‹ค์–‘ํ•œ ์ฃผ์†Œ ๋˜๋Š” ํฌํŠธ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ SO_KEEPALIVE ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•œ ์ง€์›์ด bpf_setsockopt()์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์†Œ์ผ“์ด ํ•ด์ œ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” BPF_CGROUP_INET_SOCK_RELEASE ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ”„๋กœํ† ์ฝœ ์ง€์› ๊ตฌํ˜„ PRP (Parallel Redundancy Protocol)์€ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ์š”์†Œ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํˆฌ๋ช…ํ•˜๊ฒŒ ๋ฐฑ์—… ์ฑ„๋„๋กœ ์ด๋”๋„ท ๊ธฐ๋ฐ˜ ์ „ํ™˜์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์Šคํƒ mac80211 ์ถ”๊ฐ€ ์•ก์„ธ์Šค ํฌ์ธํŠธ ๋ชจ๋“œ์—์„œ 2๋‹จ๊ณ„ WPA/WPAXNUMX-PSK ์ฑ„๋„ ํ˜‘์ƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ์ ์œผ๋กœ FQ-PIE(Flow Queue PIE) ๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋„๋ก qdisc(ํ ๊ทœ์น™) ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์ „ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋„คํŠธ์›Œํฌ์—์„œ ์—์ง€ ๋„คํŠธ์›Œํฌ ์žฅ๋น„(๋ฒ„ํผ๋ธ”๋กœํŠธ)์— ๋Œ€ํ•œ ์ค‘๊ฐ„ ํŒจํ‚ท ๋ฒ„ํผ๋ง์˜ ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ผ€์ด๋ธ” ๋ชจ๋Ž€.
    • ์„œ๋กœ ๋‹ค๋ฅธ IP ์ฃผ์†Œ์™€ ์—ฐ๊ฒฐ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋™์‹œ์— ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๋Š” TCP ์—ฐ๊ฒฐ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ TCP ํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ์ธ MPTCP(MultiPath TCP)์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. setockopt์— syn ์ฟ ํ‚ค, DATA_FIN, ๋ฒ„ํผ ์ž๋™ ์กฐ์ •, ์†Œ์ผ“ ์ง„๋‹จ, REUSEADDR, REUSEPORT ๋ฐ V6ONLY ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ๋ผ์šฐํŒ… ๋„๋ฉ”์ธ์˜ ์šด์˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ƒ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” VRF(Virtual Routing and Forwarding)์˜ ๊ฒฝ์šฐ "์—„๊ฒฉํ•œ" ๋ชจ๋“œ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ์—์„œ๋Š” ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์€ ๋‹ค๋ฅธ ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์—๋งŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฌด์„  ๋“œ๋ผ์ด๋ฒ„๋Š” ath11k์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ 6GHz ์ฃผํŒŒ์ˆ˜๋ฅผ ์ง€์›ํ•˜๊ณ  ์ŠคํŽ™ํŠธ๋Ÿผ ์Šค์บ๋‹.
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • Peking University์˜ ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ ์„ผํ„ฐ์—์„œ ๊ฐœ๋ฐœ๋˜๊ณ  2011๋…„ Linux ์ปค๋„์— ํฌํ•จ๋œ UniCore ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์•„ํ‚คํ…์ฒ˜๋Š” 2014๋…„๋ถ€ํ„ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ GCC์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • RISC-V ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. kcov (์ปค๋„ ์ฝ”๋“œ ๋ฒ”์œ„ ๋ถ„์„์„ ์œ„ํ•œ debugfs ์ธํ„ฐํŽ˜์ด์Šค), kmemleak(๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๊ฐ์ง€ ์‹œ์Šคํ…œ), ์Šคํƒ ๋ณดํ˜ธ, ์ ํ”„ ํ‘œ์‹œ ๋ฐ ํ‹ฑ ์—†๋Š” ์ž‘์—…(ํƒ€์ด๋จธ ์‹ ํ˜ธ์™€ ๋ฌด๊ด€ํ•œ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น).
    • PowerPC ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์Šคํ•€๋ก ๋Œ€๊ธฐ์—ด์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์–ด ์ž ๊ธˆ ์ถฉ๋Œ ์ƒํ™ฉ์—์„œ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ARM ๋ฐ ARM64 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์„œ ์ฃผํŒŒ์ˆ˜ ์กฐ์ ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์Šค์ผ€์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ (cpufreq ๊ฑฐ๋ฒ„๋„ˆ)๋Š” ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์˜ ์ •๋ณด๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผํŒŒ์ˆ˜ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ณ , ์ฆ‰์‹œ cpufreq ๋“œ๋ผ์ด๋ฒ„์— ์•ก์„ธ์Šคํ•˜์—ฌ ์ฃผํŒŒ์ˆ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ณ , CPU ์ž‘๋™ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ˜„์žฌ ๋ถ€ํ•˜์— ๋งž๊ฒŒ ์ฆ‰์‹œ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Intel ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ์šฉ i915 DRM ๋“œ๋ผ์ด๋ฒ„์—๋Š” ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ผ“ ํ˜ธ์ˆ˜ ๊ฐœ๋ณ„ ์นด๋“œ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ…” Xe DG1.
    • Amdgpu ๋“œ๋ผ์ด๋ฒ„์— AMD GPU์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋น„ 21 (ํ•ด๊ตฐ ๊ฐ€์ž๋ฏธ) ๋ฐ ๋‚˜๋น„ 22 (์‹œ์—๋‚˜ ์‹œํด๋ฆฌ๋“œ). Southern Islands GPU(Radeon HD 7000)์šฉ UVD/VCE ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ ๊ฐ€์† ์—”์ง„์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ 90๋„, 180๋„ ๋˜๋Š” 270๋„ ํšŒ์ „ํ•˜๋Š” ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

      ํฅ๋ฏธ๋กญ๊ฒŒ๋„ AMD GPU์šฉ ๋“œ๋ผ์ด๋ฒ„๋Š” ์ด ์ปค๋„์—์„œ ๊ฐ€์žฅ ํฐ ๋“œ๋ผ์ด๋ฒ„ - ์•ฝ 2.71๋งŒ ์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋Š” ์ „์ฒด ์ปค๋„ ํฌ๊ธฐ(10๋งŒ ์ค„)์˜ ์•ฝ 27.81%์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— GPU ๋ ˆ์ง€์Šคํ„ฐ์šฉ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ์ž๋™ ์ƒ์„ฑ ํ—ค๋” ํŒŒ์ผ์ด 1.79๋งŒ ๋ผ์ธ์„ ์ฐจ์ง€ํ•˜๋ฉฐ C ์ฝ”๋“œ๋Š” 366๋ผ์ธ์ž…๋‹ˆ๋‹ค(๋น„๊ต๋ฅผ ์œ„ํ•ด Intel i915 ๋“œ๋ผ์ด๋ฒ„์—๋Š” 209๋ผ์ธ, Nouveau๋Š” 149๋ผ์ธ์ด ํฌํ•จ๋˜์–ด ์žˆ์Œ).

    • ์ธ ๋ˆ„๋ณด ๋“œ๋ผ์ด๋ฒ„ ์ถ”๊ฐ€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ ˆ์ž„๋ณ„ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ ์ง€์› CRC (Cyclic Redundancy Checks) NVIDIA GPU ๋””์Šคํ”Œ๋ ˆ์ด ์—”์ง„. ๊ตฌํ˜„์€ NVIDIA์—์„œ ์ œ๊ณตํ•œ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
    • LCD ํŒจ๋„์šฉ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 ๋ฐ Xingbangda XBD599.
    • ALSA ์˜ค๋””์˜ค ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ๋‹ค์Œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ธํ…” ์‚ฌ์ผ๋ŸฐํŠธ ์ŠคํŠธ๋ฆผ (์žฌ์ƒ ์‹œ์ž‘ ์‹œ ์ง€์—ฐ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์™ธ๋ถ€ HDMI ์žฅ์น˜์— ๋Œ€ํ•œ ์—ฐ์† ์ „์› ๋ชจ๋“œ) ๋ฐ ์ƒˆ ์žฅ์น˜ ๋งˆ์ดํฌ ํ™œ์„ฑํ™” ๋ฐ ์Œ์†Œ๊ฑฐ ๋ฒ„ํŠผ์˜ ์กฐ๋ช…์„ ์ œ์–ดํ•˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํฌํ•จํ•œ ์ƒˆ๋กœ์šด ์žฅ๋น„์— ๋Œ€ํ•œ ์ง€์›๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฃฝ์Šจ 7A1000.
    • ARM ๋ณด๋“œ, ์žฅ์น˜ ๋ฐ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630(Sony Xperia 10, 10 Plus, XA2, XA2 Plus ๋ฐ XA2์— ์‚ฌ์šฉ๋จ) Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, NXP i.MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine ๊ธฐ๋ฐ˜์˜ ์ƒˆ๋กœ์šด ๋ณด๋“œ 3๊ฐœ v2, ๋ฅด๋„ค์‚ฌ์Šค RZ/GXNUMXH.

๋™์‹œ์— ๋ผํ‹ด ์•„๋ฉ”๋ฆฌ์นด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ(Latin American Free Software Foundation) ํ˜•์„ฑ๋œ
ะฒะฐั€ะธะฐะฝั‚ ์™„์ „ ๋ฌด๋ฃŒ ์ปค๋„ 5.9 - Linux-libre 5.9-gnu, ์ œ์กฐ์—…์ฒด๊ฐ€ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๋Š” ๋น„์ž์œ  ๊ตฌ์„ฑ ์š”์†Œ ๋˜๋Š” ์ฝ”๋“œ ์„น์…˜์„ ํฌํ•จํ•˜๋Š” ํŽŒ์›จ์–ด ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” WiFi rtw8821c ๋ฐ SoC MediaTek mt8183์šฉ ๋“œ๋ผ์ด๋ฒ„์—์„œ Blob ๋กœ๋“œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw(Spectrum3), r8169(rtl8125b-2) ๋ฐ x86 ํ„ฐ์น˜์Šคํฌ๋ฆฐ ๋“œ๋ผ์ด๋ฒ„ ๋ฐ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ Blob ์ •๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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