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

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” ๋„์ž… ๋œ ์ปค๋„ ๋ฆด๋ฆฌ์Šค Linux 5.2. ๊ฐ€์žฅ ๋ˆˆ์— ๋„๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ: Ext4 ์šด์˜ ๋ชจ๋“œ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋งˆ์šดํŠธ๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ, GPU Mali 4xx/ 6xx/7xx์šฉ ๋“œ๋ผ์ด๋ฒ„, BPF ํ”„๋กœ๊ทธ๋žจ์—์„œ sysctl ๊ฐ’์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ, ์žฅ์น˜ ๋งคํผ ๋ชจ๋“ˆ dm-dust, MDS ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ, DSP์šฉ Sound Open Firmware ์ง€์›, BFQ ์„ฑ๋Šฅ ์ตœ์ ํ™”, PSI(Pressure Stall Information) ํ•˜์œ„ ์‹œ์Šคํ…œ์„ Android์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—๋Š” 15100๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ •ํ•œ 1882๊ฐœ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจ์น˜ ํฌ๊ธฐ - 62MB(๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด 30889๊ฐœ ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  625094์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ 531864์ค„์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). 45์— ์ œ์‹œ๋œ ์ „์ฒด ๋‚ด์šฉ์˜ ์•ฝ 5.2%
๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์•ฝ 21%๋Š”
ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ํƒœ๋„, 12%
๋„คํŠธ์›Œํฌ ์Šคํƒ ๊ด€๋ จ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ จ 3%, ๋‚ด๋ถ€ ๊ด€๋ จ 3%
์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ. ์ „์ฒด ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ Intel 12.4%, Red Hat 6.3%, Google 5.4%, AMD 4.0%, SUSE 3.1%, IBM 3%, Huawei 2.7%, Linaro 2.7%, ARM 2.2%๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. , 1.6% - ์˜ค๋ผํด.

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

  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • Ext4์— ์ถ”๊ฐ€๋จ ์ง€์› ์ƒˆ๋กœ์šด ์†์„ฑ "+F"(EXT4_CASEFOLD_FL)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ณ„ ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ์™€ ๊ด€๋ จํ•ด์„œ๋งŒ ํ™œ์„ฑํ™”๋˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์˜ ๋ฌธ์ž ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์†์„ฑ์ด ๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์ •๋˜๋ฉด ๋‚ด๋ถ€์˜ ํŒŒ์ผ ๋ฐ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ž‘์—…์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—ด ๋•Œ ๋Œ€์†Œ๋ฌธ์ž๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค(์˜ˆ: Test.txt ํŒŒ์ผ, ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ test.txt์™€ test.TXT๋Š” ๋™์ผํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์€ "chattr +F" ์†์„ฑ์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฌธ์ž์—ด ๋น„๊ต ๋ฐ โ€‹โ€‹์ •๊ทœํ™” ์ž‘์—… ์‹œ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์˜ UTF-8 ๋ฌธ์ž ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • XFS๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ์ธํ”„๋ผ์™€ ์ƒํƒœ ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด ioctl์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์Šˆํผ๋ธ”๋ก ์นด์šดํ„ฐ๋ฅผ ์˜จ๋ผ์ธ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ—˜์  ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ ์žฅ์น˜ ๋งคํผ "๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.DM ๋จผ์ง€"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฏธ๋””์–ด์˜ ๋ถˆ๋Ÿ‰ ๋ธ”๋ก ๋ชจ์–‘์ด๋‚˜ ๋””์Šคํฌ์—์„œ ์ฝ์„ ๋•Œ ์˜ค๋ฅ˜๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋‹ค์–‘ํ•œ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์˜ ๋””๋ฒ„๊น… ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹ค์‹œ BFQ I/O ์Šค์ผ€์ค„๋Ÿฌ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์ด ๋Œ€ํญ ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. I/O ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์กฐ๊ฑด์—์„œ ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ํ—ˆ์šฉํ•˜๋‹ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ๋“ฑ์˜ ์ž‘์—… ์‹œ๊ฐ„์„ ์ตœ๋Œ€ 80% ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค.
    • ํŒŒ์ผ ์‹œ์Šคํ…œ ๋งˆ์šดํŠธ๋ฅผ ์œ„ํ•œ ์ผ๋ จ์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. fsopen(), ์˜คํ”ˆํŠธ๋ฆฌ(), fspick(), fs๋งˆ์šดํŠธ(), fsconfig() ะธ move_mount(). ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ „์— ๊ณตํ†ต mount() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋˜์—ˆ๋˜ ๋‹ค์–‘ํ•œ ๋งˆ์šดํŠธ ๋‹จ๊ณ„(์ˆ˜ํผ๋ธ”๋ก ์ฒ˜๋ฆฌ, ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ, ๋งˆ์šดํŠธ, ๋งˆ์šดํŠธ ์ง€์ ์— ์—ฐ๊ฒฐ)๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํ˜ธ์ถœ์€ ๋ณด๋‹ค ๋ณต์žกํ•œ ๋งˆ์šดํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์Šˆํผ๋ธ”๋ก ์žฌ๊ตฌ์„ฑ, ์˜ต์…˜ ํ™œ์„ฑํ™”, ๋งˆ์šดํŠธ ์ง€์  ๋ณ€๊ฒฝ, ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์ด๋™๊ณผ ๊ฐ™์€ ๋ณ„๋„์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ณ„๋„์˜ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜ ์ฝ”๋“œ ์ถœ๋ ฅ ์ด์œ ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  overlayfs์™€ ๊ฐ™์€ ๋‹ค์ค‘ ๊ณ„์ธต ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์†Œ์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ ํ˜ธ์ถœ๊ณผ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋น„๋™๊ธฐ I/O io_uring์šฉ ์ธํ„ฐํŽ˜์ด์Šค์— ์ƒˆ๋กœ์šด ์ž‘์—… IORING_OP_SYNC_FILE_RANGE๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. sync_file_range()io_uring์— eventfd๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์ž‘์—… ์™„๋ฃŒ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ฐ›๋Š” ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • CIFS ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ FIEMAP ioctl์ด ์ถ”๊ฐ€๋˜์–ด ํšจ์œจ์ ์ธ ๋ฒ”์œ„ ๋งคํ•‘์„ ์ œ๊ณตํ•˜๊ณ  SEEK_DATA ๋ฐ SEEK_HOLE ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • FUSE ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ์ œ์•ˆ ๋ฐ์ดํ„ฐ ์บ์‹ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ API;
    • Btrfs๋Š” qgroups ๊ตฌํ˜„์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์—ฌ๋Ÿฌ ํ•˜๋“œ ๋งํฌ๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ fsync ์‹คํ–‰ ์†๋„๋ฅผ ํ–ฅ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ ์ฝ”๋“œ๊ฐ€ ๊ฐœ์„ ๋˜์–ด ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ํ”Œ๋Ÿฌ์‹œํ•˜๊ธฐ ์ „์— RAM์˜ ์ •๋ณด ์†์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
    • CEPH๋Š” NFS๋ฅผ ํ†ตํ•œ ์Šค๋ƒ…์ƒท ๋‚ด๋ณด๋‚ด๊ธฐ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • "์†Œํ”„ํŠธ" ๋ชจ๋“œ์—์„œ NFSv4 ๋งˆ์šดํŒ… ๊ตฌํ˜„์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค("์†Œํ”„ํŠธ" ๋ชจ๋“œ์—์„œ ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•˜๋Š” ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ˜ธ์ถœํ•˜๋ฉด ์ฆ‰์‹œ ์˜ค๋ฅ˜ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜ํ™˜๋˜๊ณ  "ํ•˜๋“œ" ๋ชจ๋“œ์—์„œ๋Š” FS๊ฐ€ ์‹คํ–‰๋  ๋•Œ๊นŒ์ง€ ์ œ์–ด๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์Œ). ๊ฐ€์šฉ์„ฑ ๋˜๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ณต์›๋ฉ๋‹ˆ๋‹ค). ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ๋ณด๋‹ค ์ •ํ™•ํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์ฒ˜๋ฆฌ, ๋ณด๋‹ค ๋น ๋ฅธ ์ถฉ๋Œ ๋ณต๊ตฌ ๋ฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐœ์ƒ ์‹œ ๋ฐ˜ํ™˜๋˜๋Š” ์˜ค๋ฅ˜ ์ฝ”๋“œ(ETIMEDOUT)๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด "softerr" ๋งˆ์šดํŠธ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • NFS ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๋„๋ก ์„ค๊ณ„๋œ nfsdcld API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด NFS ์„œ๋ฒ„๊ฐ€ ์žฌ๋ถ€ํŒ… ์‹œ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ nfsdcld ๋ฐ๋ชฌ์€ ์ด์ œ nfsdcltrack ์ฒ˜๋ฆฌ๊ธฐ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • AFS์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ํŒŒ์ผ์˜ ๋ฐ”์ดํŠธ ๋ฒ”์œ„ ์ž ๊ธˆ ์—๋ฎฌ๋ ˆ์ด์…˜(๋ฐ”์ดํŠธ ๋ฒ”์œ„ ์ž ๊ธˆ);
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•œ ๋ฐ˜์‚ฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์—์„œ ์ฝ”๋“œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” ์ปค๋„ ์œ„์น˜๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ ์ค‘์— ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ž ์žฌ์ ์ธ ํ—ˆ์ ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ์ปค๋„ ๋ช…๋ น์ค„ ๋งค๊ฐœ๋ณ€์ˆ˜ "mitigations="๊ฐ€ ์ถ”๊ฐ€๋˜์–ด CPU์—์„œ ๋ช…๋ น์˜ ์ถ”์ธก ์‹คํ–‰๊ณผ ๊ด€๋ จ๋œ ์ทจ์•ฝ์„ฑ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • ๊ธฐ์ˆ ์˜ ํ™œ์„ฑํ™”๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋‹จ์ˆœํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. "mitigations=off"๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ๋ชจ๋“  ๊ธฐ์กด ๋ฐฉ๋ฒ•์ด ๋น„ํ™œ์„ฑํ™”๋˜๊ณ  ๊ธฐ๋ณธ ๋ชจ๋“œ "mitigations=auto"๋Š” ๋ณดํ˜ธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€๋งŒ ํ•˜์ดํผ ์Šค๋ ˆ๋”ฉ ์‚ฌ์šฉ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "mitigations=auto,nosmt" ๋ชจ๋“œ๋Š” ๋ณดํ˜ธ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•˜์ดํผ ์Šค๋ ˆ๋”ฉ์„ ์ถ”๊ฐ€๋กœ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋จ GOST R 34.10-2012(RFC 7091, ISO/IEC 14888-3)์— ๋”ฐ๋ฅธ ์ „์ž ๋””์ง€ํ„ธ ์„œ๋ช… ์ง€์›, ์— ์˜ํ•ด ๊ฐœ๋ฐœ ํ˜„๋ฌด์•” SPO์˜ Vitaly Chikunov. ๊ธฐ๋ณธ TLS ๊ตฌํ˜„์— AES128-CCM์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. crypto_simd ๋ชจ๋“ˆ์— AEAD ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Kconfig์—์„œ ์ถ”๊ฐ€ ์ปค๋„ ๋ณดํ˜ธ๋ฅผ ๊ฐ•ํ™”ํ•˜๋Š” ์˜ต์…˜์ด ํฌํ•จ๋œ ๋ณ„๋„์˜ "์ปค๋„ ๊ฐ•ํ™”" ์„น์…˜. ํ˜„์žฌ ์ƒˆ ์„น์…˜์—๋Š” GCC ๊ฒ€์‚ฌ ๊ฐ•ํ™” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„ ์ฝ”๋“œ๋Š” ๊ฑฐ์˜ ๋ฐฐ๋‹ฌ๋จ ์Šค์œ„์น˜์˜ ์ค‘๋‹จ๋˜์ง€ ์•Š๋Š” Case ๋ฌธ์—์„œ(๊ฐ Case ๋ธ”๋ก ๋‹ค์Œ์— ๋ฐ˜ํ™˜ ๋˜๋Š” ์ค‘๋‹จ ์—†์Œ) ์ด๋Ÿฌํ•œ ์Šค์œ„์น˜ ์‚ฌ์šฉ ์‚ฌ๋ก€ 32๊ฐœ ์ค‘ 2311๊ฐœ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋ฉฐ ๊ทธ ํ›„์—๋Š” ์ปค๋„์„ ๋นŒ๋“œํ•  ๋•Œ "-Wimplicit-fallthrough" ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • PowerPC ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์›์น˜ ์•Š๋Š” ์ปค๋„ ์•ก์„ธ์Šค ๊ฒฝ๋กœ๋ฅผ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ฐจ๋‹จ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ Intel ํ”„๋กœ์„ธ์„œ์˜ MDS(Microarchitectural Data Sampling) ํด๋ž˜์Šค. SysFS ๋ณ€์ˆ˜ โ€œ/sys/devices/system/cpu/vulnerability/mdsโ€๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์ด ์ทจ์•ฝ์ ์— ์ทจ์•ฝํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋‘ ๊ฐ€์ง€ ๋ณดํ˜ธ ๋ชจ๋“œ: ์—…๋ฐ์ดํŠธ๋œ ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•œ ์ „์ฒด ๋ชจ๋“œ์™€ ์ œ์–ด๊ถŒ์ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์ด๋‚˜ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์œผ๋กœ ์ „์†ก๋  ๋•Œ CPU ๋ฒ„ํผ ์‚ญ์ œ๋ฅผ ์™„์ „ํžˆ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” ์šฐํšŒ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๋ณดํ˜ธ ๋ชจ๋“œ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด "mds=" ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ปค๋„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” "full", "full,nosmt"(+ ํ•˜์ดํผ ์Šค๋ ˆ๋“œ ๋น„ํ™œ์„ฑํ™”) ๋ฐ "off" ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • x86-64 ์‹œ์Šคํ…œ์—์„œ๋Š” IRQ, ๋””๋ฒ„๊น… ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ์— "์Šคํƒ ๊ฐ€๋“œ ํŽ˜์ด์ง€" ๋ณดํ˜ธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ•ต์‹ฌ์€ ๊ฒฝ๊ณ„์— ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ์Šคํƒ์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ์™ธ(ํŽ˜์ด์ง€ ์˜ค๋ฅ˜);
    • userfaultfd() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ถŒํ•œ์ด ์—†๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹sysctl ์„ค์ • vm.unprivileged_userfaultfd๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ์ถ”๊ฐ€๋จ IPv6 ๊ฒฝ๋กœ์— ๋Œ€ํ•œ IPv4 ๊ฒŒ์ดํŠธ์›จ์ด ์ง€์›. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ œ "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0"๊ณผ ๊ฐ™์€ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ICMPv6์˜ ๊ฒฝ์šฐ ioctl ํ˜ธ์ถœ icmp_echo_ignore_anycast ๋ฐ icmp_echo_ignore_multicast๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์• ๋‹ˆ์บ์ŠคํŠธ์— ๋Œ€ํ•œ ICMP ECHO๋ฅผ ๋ฌด์‹œํ•˜๊ณ 
      ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์ฃผ์†Œ. ์ถ”๊ฐ€๋จ ICMPv6 ํŒจํ‚ท ์ฒ˜๋ฆฌ ๊ฐ•๋„๋ฅผ ์ œํ•œํ•˜๋Š” ๊ธฐ๋Šฅ;

    • ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ด์›ƒ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋˜๋Š” ๋ถ„์‚ฐํ˜• ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” BATMAN(Better Approach To Mobile Adhoc Networking) ๋ฉ”์‹œ โ€‹โ€‹ํ”„๋กœํ† ์ฝœ์˜ ๊ฒฝ์šฐ, ์ถ”๊ฐ€ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ์—์„œ ์œ ๋‹ˆ์บ์ŠคํŠธ๋กœ์˜ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ… ์ง€์› ๋ฐ sysfs๋ฅผ ํ†ตํ•œ ์ œ์–ด ๊ธฐ๋Šฅ;
    • ์—์“ฐํˆด์—์„œ ์ถ”๊ฐ€ 1000BaseT์˜ ๋งํฌ ๋‹ค์šด ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด Fast Link Down ๋งค๊ฐœ๋ณ€์ˆ˜(์ •์ƒ ์กฐ๊ฑด์—์„œ ์ง€์—ฐ์€ ์ตœ๋Œ€ 750ms)
    • ๋“ฑ์žฅ ๊ธฐํšŒ Foo-Over-UDP ํ„ฐ๋„์„ ํŠน์ • ์ฃผ์†Œ, ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๋˜๋Š” ์†Œ์ผ“์— ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค(์ด์ „ ๋ฐ”์ธ๋”ฉ์€ ๊ณตํ†ต ๋งˆ์Šคํฌ์— ์˜ํ•ด์„œ๋งŒ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค).
    • ๋ฌด์„  ์Šคํƒ์—์„œ ์ œ๊ณต๋œ ํ•ธ๋“ค๋Ÿฌ ๊ตฌํ˜„ ๊ฐ€๋Šฅ์„ฑ
      ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ OWE(Opportunistic Wireless Encryption)

    • Netfilter์—์„œ๋Š” inet ์ฃผ์†Œ ๊ณ„์—ด์— ๋Œ€ํ•œ ์ง€์›์ด nat ์ฒด์ธ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ œ ํ•˜๋‚˜์˜ ๋ณ€ํ™˜ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ipv4์™€ ipv6์— ๋Œ€ํ•œ ๊ทœ์น™์„ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š๊ณ  ipv4์™€ ipv6์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋„ท๋งํฌ์—์„œ ์ถ”๊ฐ€ ์ •๊ถŒ ๋ชจ๋“  ๋ฉ”์‹œ์ง€์™€ ์†์„ฑ์˜ ์ •ํ™•์„ฑ์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ์†์„ฑ์˜ ์˜ˆ์ƒ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋ฉ”์‹œ์ง€ ๋์— ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • CLONE_PIDFD ํ”Œ๋ž˜๊ทธ๊ฐ€ clone() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, ์ง€์ •๋˜๋ฉด ์ƒ์„ฑ๋œ ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค๋กœ ์‹๋ณ„๋˜๋Š” ํŒŒ์ผ ์„ค๋ช…์ž "pidfd"๊ฐ€ ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ํŒŒ์ผ ์„ค๋ช…์ž๋Š” ๊ฒฝ์Ÿ ์กฐ๊ฑด์— ๋น ์งˆ ์—ผ๋ ค ์—†์ด ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ ์งํ›„ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ๋กœ ์ธํ•ด ๋Œ€์ƒ PID๊ฐ€ ํ•ด์ œ๋˜์–ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ ์œ ๋  ์ˆ˜ ์žˆ์Œ).
    • cgroup์˜ ๋‘ ๋ฒˆ์งธ ๋ฒ„์ „์—๋Š” Freezer ์ปจํŠธ๋กค๋Ÿฌ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด cgroup์—์„œ ์ž‘์—…์„ ์ค‘์ง€ํ•˜๊ณ  ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค(CPU, I/O ๋ฐ ์ž ์žฌ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๊นŒ์ง€)๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ํ™•๋ณดํ•˜์—ฌ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ๋Š” cgroup ํŠธ๋ฆฌ์˜ cgroup.freeze ๋ฐ cgroup.events ์ œ์–ด ํŒŒ์ผ์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. cgroup.freeze์˜ ํ•ญ๋ชฉ 1์€ ํ˜„์žฌ cgroup๊ณผ ๋ชจ๋“  ํ•˜์œ„ ๊ทธ๋ฃน์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ •์ง€ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—… ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ cgroup.events ํŒŒ์ผ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
    • ๋ณด์•ˆ๋จ sysfs์˜ ๊ฐ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๋ฉ”๋ชจ๋ฆฌ ์†์„ฑ ๋‚ด๋ณด๋‚ด๊ธฐ. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์ด๊ธฐ์ข… ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ฑ…ํฌ ์ฒ˜๋ฆฌ ํŠน์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • PSI(Pressure Stall Information) ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ๊ฐœ์„ ๋˜์–ด cgroup์˜ ํŠน์ • ์ž‘์—… ๋˜๋Š” ํ”„๋กœ์„ธ์Šค ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค(CPU, ๋ฉ”๋ชจ๋ฆฌ, I/O)๋ฅผ ์ˆ˜์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PSI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ํ•ธ๋“ค๋Ÿฌ๋Š” ๋กœ๋“œ ํ‰๊ท ๊ณผ ๋น„๊ตํ•˜์—ฌ ์‹œ์Šคํ…œ ๋กœ๋“œ ์ˆ˜์ค€๊ณผ ์†๋„ ์ €ํ•˜ ํŒจํ„ด์„ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—์„œ๋Š” ๋ฏผ๊ฐ๋„ ์ž„๊ณ„๊ฐ’ ์„ค์ •์„ ์ง€์›ํ•˜๊ณ  poll() ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •๋œ ์ž„๊ณ„๊ฐ’์ด ํŠน์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ๋‹ค๋Š” ์•Œ๋ฆผ์„ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด Android๋Š” ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๋ฌธ์ œ์˜ ์›์ธ์„ ์‹๋ณ„ํ•˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ˆˆ์— ๋„๋Š” ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๊ณ  ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ์—์„œ PSI ๊ธฐ๋ฐ˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๋Š” vmpress ํ†ต๊ณ„์— ๋น„ํ•ด ์˜คํƒ๋ฅ ์ด 10๋ฐฐ ๋” ์ ์€ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
    • BPF ํ”„๋กœ๊ทธ๋žจ ๊ฒ€์‚ฌ ์ฝ”๋“œ๊ฐ€ ์ตœ์ ํ™”๋˜์–ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒ€์‚ฌ ์†๋„๊ฐ€ ์ตœ๋Œ€ 20๋ฐฐ ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด BPF ํ”„๋กœ๊ทธ๋žจ ํฌ๊ธฐ ์ œํ•œ์„ 4096๊ฐœ์—์„œ ๋ช…๋ น XNUMX๋งŒ ๊ฐœ๋กœ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    • BPF ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ ์ œ๊ณต ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ „์—ญ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ธฐ๋Šฅ
    • ์ถ”๊ฐ€๋จ API, BPF ํ”„๋กœ๊ทธ๋žจ์—์„œ sysctl ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • MIPS32 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ eBPF ๊ฐ€์ƒ ๋จธ์‹ ์šฉ JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • 32๋น„ํŠธ PowerPC ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—… ์‹œ ์˜ค๋ฅ˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” KASan(Kernel address sanitizer) ๋””๋ฒ„๊น… ๋„๊ตฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • x86-64 ์‹œ์Šคํ…œ์—์„œ๋Š” 896MB ์ด์ƒ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์—์„œ ์ปค๋„ ์ถฉ๋Œ(์ถฉ๋Œ ๋คํ”„) ์ค‘์— ์ƒํƒœ ๋คํ”„๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ์ œํ•œ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • s390 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ KASLR(์ปค๋„ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ฌด์ž‘์œ„ํ™”) ์ง€์›๊ณผ kexec_file_load()๋ฅผ ํ†ตํ•ด ์ปค๋„์„ ๋กœ๋“œํ•  ๋•Œ ๋””์ง€ํ„ธ ์„œ๋ช…์„ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • PA-RISC ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ์ปค๋„ ๋””๋ฒ„๊ฑฐ(KGDB), ์ ํ”„ ํ‘œ์‹œ ๋ฐ kprobe์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • ๋“œ๋ผ์ด๋ฒ„ ํฌํ•จ ๋ฆฌ๋งˆ ARM ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋งŽ์€ ๊ตฌํ˜• ์นฉ์— ์‚ฌ์šฉ๋˜๋Š” Mali 400/450 GPU์šฉ. ์ตœ์‹  Mali GPU์˜ ๊ฒฝ์šฐ Panfrost ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์–ด Midgard(Mali-T6xx, Mali-T7xx, Mali-T8xx) ๋ฐ Bifrost(Mali G3x, G5x, G7x) ๋งˆ์ดํฌ๋กœ ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ์นฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐœ๋ฐฉํ˜• ํŽŒ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋””์˜ค ์žฅ์น˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šด๋“œ ์˜คํ”ˆ ํŽŒ์›จ์–ด (SOF). ๊ณต๊ฐœ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์‚ฌ์šด๋“œ ์นฉ์˜ ํŽŒ์›จ์–ด ์ฝ”๋“œ๋Š” ์—ฌ์ „ํžˆ ๋น„๊ณต๊ฐœ ์ƒํƒœ๋กœ ์œ ์ง€๋˜์—ˆ์œผ๋ฉฐ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์œผ๋กœ ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Sound Open Firmware ํ”„๋กœ์ ํŠธ๋Š” Intel์ด ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ DSP ์นฉ์šฉ ๊ฐœ๋ฐฉํ˜• ํŽŒ์›จ์–ด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค(๋‚˜์ค‘์— Google๋„ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค). ํ˜„์žฌ ์ด ํ”„๋กœ์ ํŠธ๋Š” Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake ๋ฐ IceLake ํ”Œ๋žซํผ์˜ ์‚ฌ์šด๋“œ ์นฉ์šฉ ํŽŒ์›จ์–ด ๊ฒ€์ƒ‰์„ ์ด๋ฏธ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • Intel DRM ๋“œ๋ผ์ด๋ฒ„(i915)์— ์นฉ ์ง€์› ์ถ”๊ฐ€
      ์—˜ํฌํ•˜ํŠธ๋ ˆ์ดํฌ(Gen11). Comet Lake(Gen9) ์นฉ์— ๋Œ€ํ•œ PCI ID๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Icelake ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด ์•ˆ์ •ํ™”๋˜์—ˆ์œผ๋ฉฐ PCI ์žฅ์น˜ ์‹๋ณ„์ž๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      ํฌํ•จ
      mmio๋ฅผ ํ†ตํ•ด ์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‘ ๋ฒ„ํผ ๊ฐ„ ๋น„๋™๊ธฐ ์ „ํ™˜ ๋ชจ๋“œ(๋น„๋™๊ธฐ ํ”Œ๋ฆฝ)๋กœ ์ธํ•ด ์ผ๋ถ€ 3D ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: 3DMark Ice Storm ํ…Œ์ŠคํŠธ ์„ฑ๋Šฅ์ด 300-400% ์ฆ๊ฐ€ํ•จ). ์ถ”๊ฐ€๋œ ๊ธฐ์ˆ  ์ง€์› HDCP2.2 (๊ณ ๋Œ€์—ญํญ ๋””์ง€ํ„ธ ์ฝ˜ํ…์ธ  ๋ณดํ˜ธ) HDMI๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋น„๋””์˜ค ์‹ ํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

    • Vega20 GPU์šฉ amdgpu ๋“œ๋ผ์ด๋ฒ„ ์ถ”๊ฐ€ RAS(์‹ ๋ขฐ์„ฑ, ๊ฐ€์šฉ์„ฑ, ์„œ๋น„์Šค ๊ฐ€๋Šฅ์„ฑ) ์ง€์› ๋ฐ Powerplay ๊ธฐ์ˆ ์„ ๋Œ€์ฒดํ•œ SMU 11 ํ•˜์œ„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‹คํ—˜์  ์ง€์›. GPU Vega12์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ BACO ๋ชจ๋“œ ์ง€์›(๋ฒ„์Šค ํ™œ์„ฑ, ์นฉ ๊บผ์ง) GPU ์ƒํ˜ธ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ๊ณ ์† ๋ฒ„์Šค(PCIe 4.0)์ธ XGMI์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. amdkfd ๋“œ๋ผ์ด๋ฒ„์— Polaris10 GPU ๊ธฐ๋ฐ˜ ์นด๋“œ์— ๋Œ€ํ•œ ๋ˆ„๋ฝ๋œ ์‹๋ณ„์ž๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • Nouveau ๋“œ๋ผ์ด๋ฒ„์—๋Š” NVIDIA Turing 117 ์นฉ์…‹(TU117, GeForce GTX 1650์— ์‚ฌ์šฉ๋จ) ๊ธฐ๋ฐ˜ ๋ณด๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์—
      kconfig ์ถ”๊ฐ€ libdrm์˜ ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    • DRM API ๋ฐ amdgpu ๋“œ๋ผ์ด๋ฒ„์— "ํƒ€์ž„๋ผ์ธ" ๋™๊ธฐํ™” ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด ํด๋ž˜์‹ ์ฐจ๋‹จ ์—†์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • VirtualBox ๊ฐ€์ƒ GPU์šฉ vboxvideo ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์Šคํ…Œ์ด์ง• ๋ถ„๊ธฐ์—์„œ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • GFX SoC ASPEED ์นฉ์šฉ ๊ณ ์† ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ARM SoC ๋ฐ Intel Agilex(SoCFPGA), NXP i.MX8MM, Allwinner(RerVision H3-DVK(H3), Oceanic 5205 5inMFD, ,Beelink GS2(H6), Orange Pi 3(H6)), Rockchip(Orange Pi)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ) ๋ณด๋“œ RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST ๋งˆ์ดํฌ๋กœ(stm32mp157a, stm32mp157c), NXP(
      ์—์ผˆ๋งŒ ci4x10(i.MX6DL),

      i.MX8MM EVK(i.MX8MM),

      ZII i.MX7 RPU2(i.MX7),

      ZII SPB4(VF610),

      Zii ์šธํŠธ๋ผ(i.MX8M),

      TQ TQMa7S(i.MX7Solo),

      TQ TQMa7D(i.MX7Dual),

      ์ฝ”๋ณด ์•„์šฐ๋ผ(i.MX50),

      Menlosystems M53(i.MX53)), NVIDIA Jetson Nano(Tegra T210).

๋™์‹œ์— ๋ผํ‹ด ์•„๋ฉ”๋ฆฌ์นด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ(Latin American Free Software Foundation) ํ˜•์„ฑ๋œ
ะฒะฐั€ะธะฐะฝั‚ ์™„์ „ ๋ฌด๋ฃŒ ์ปค๋„ 5.2 - Linux-libre 5.2-gnu, ์ œ์กฐ์—…์ฒด๊ฐ€ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๋Š” ๋น„์ž์œ  ๊ตฌ์„ฑ ์š”์†Œ ๋˜๋Š” ์ฝ”๋“œ ์„น์…˜์„ ํฌํ•จํ•˜๋Š” ํŽŒ์›จ์–ด ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šด๋“œ ์˜คํ”ˆ ํŽŒ์›จ์–ด. ๋“œ๋ผ์ด๋ฒ„์—์„œ Blob ๋กœ๋“œ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp ๋ฐ ucsi_ccg. ixp4xx, imx-sdma, amdgpu, nouveau ๋ฐ goya ๋“œ๋ผ์ด๋ฒ„์™€ ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ๋ฌผ๋ก  ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ ๋ฌธ์„œ์˜ ์–ผ๋ฃฉ ์ •๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฑฐ๋กœ ์ธํ•ด r8822be ๋“œ๋ผ์ด๋ฒ„์—์„œ ์–ผ๋ฃฉ ์ฒญ์†Œ๊ฐ€ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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