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

๋‘ ๋‹ฌ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Linus Torvalds๋Š” Linux ์ปค๋„ 5.15์˜ ์ถœ์‹œ๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ์“ฐ๊ธฐ ์ง€์›์ด ํฌํ•จ๋œ ์ƒˆ๋กœ์šด NTFS ๋“œ๋ผ์ด๋ฒ„, SMB ์„œ๋ฒ„ ๊ตฌํ˜„์ด ํฌํ•จ๋œ ksmbd ๋ชจ๋“ˆ, ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ DAMON ํ•˜์œ„ ์‹œ์Šคํ…œ, ์‹ค์‹œ๊ฐ„ ์ž ๊ธˆ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ, Btrfs์˜ fs-verity ์ง€์›, ๊ธฐ์•„ ์‘๋‹ต ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์œ„ํ•œ process_mrelease ์‹œ์Šคํ…œ ํ˜ธ์ถœ, ์›๊ฒฉ ์ธ์ฆ ๋ชจ๋“ˆ dm-ima.

์ƒˆ ๋ฒ„์ „์—๋Š” 13499๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ •ํ•œ 1888๊ฐœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ํŒจ์น˜ ํฌ๊ธฐ๋Š” 42MB์ž…๋‹ˆ๋‹ค(๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ 10895๊ฐœ ํŒŒ์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  632522์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ 299966์ค„์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). 45์— ๋„์ž…๋œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ์•ฝ 5.15%๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ด€๋ จ์ด ์žˆ๊ณ , ์•ฝ 14%๋Š” ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ์™€ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, 14%๋Š” ๋„คํŠธ์›Œํ‚น ์Šคํƒ๊ณผ ๊ด€๋ จ์ด ์žˆ๊ณ , 6%๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, 3%๋Š” ๋‚ด๋ถ€ ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ, I/O ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • ์ปค๋„์€ Paragon Software์—์„œ ๊ณต๊ฐœํ•œ NTFS ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„์„ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋“œ๋ผ์ด๋ฒ„๋Š” ์“ฐ๊ธฐ ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ™•์žฅ๋œ ํŒŒ์ผ ์†์„ฑ, ์•ก์„ธ์Šค ๋ชฉ๋ก(ACL), ๋ฐ์ดํ„ฐ ์••์ถ• ๋ชจ๋“œ, ํŒŒ์ผ์˜ ๋นˆ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ํšจ๊ณผ์ ์ธ ์ž‘์—…(ํฌ์†Œ) ๋ฐ ๋ณ€๊ฒฝ ๋‚ด์šฉ ์žฌ์ƒ์„ ํฌํ•จํ•˜์—ฌ ํ˜„์žฌ ๋ฒ„์ „ NTFS 3.1์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจ ํ›„ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•œ ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
    • Btrfs ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์˜์—ญ์— ์ €์žฅ๋œ ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ์•”ํ˜ธํ™” ํ•ด์‹œ ๋˜๋Š” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ณ„ ํŒŒ์ผ์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐ ์‚ฌ์šฉ๋˜๋Š” fs-verity ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” fs-verity๋ฅผ โ€‹โ€‹Ext4 ๋ฐ F2fs ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

      Btrfs๋Š” ๋˜ํ•œ ๋งˆ์šดํŠธ๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ID ๋งคํ•‘ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(์ด์ „์—๋Š” FAT, ext4 ๋ฐ XFS ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์ง€์›๋จ). ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งˆ์šดํŠธ๋œ ์™ธ๋ถ€ ํŒŒํ‹ฐ์…˜์— ์žˆ๋Š” ํŠน์ • ์‚ฌ์šฉ์ž์˜ ํŒŒ์ผ์„ ํ˜„์žฌ ์‹œ์Šคํ…œ์— ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      Btrfs์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ƒ์„ฑ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋””๋ ‰ํ„ฐ๋ฆฌ ์ธ๋ฑ์Šค์— ํ‚ค๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์žฅ์น˜๋กœ raid0์„ ์ž‘๋™ํ•˜๊ณ  ๋‘ ๊ฐœ์˜ ์žฅ์น˜๋กœ raid10์„ ์ž‘๋™ํ•˜๋Š” ๊ธฐ๋Šฅ(์˜ˆ: ์–ด๋ ˆ์ด ์žฌ๊ตฌ์„ฑ ํ”„๋กœ์„ธ์Šค ์ค‘) ์ž˜๋ชป๋œ ๋ฒ”์œ„ ํŠธ๋ฆฌ๋ฅผ ๋ฌด์‹œํ•˜๋ ค๋ฉด "rescue=ibadroots" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”. "๋ณด๋‚ด๊ธฐ" ์ž‘์—…์˜ ๊ฐ€์†ํ™”; ์ด๋ฆ„ ๋ณ€๊ฒฝ ์ž‘์—… ์ค‘ ์ž ๊ธˆ ์ถฉ๋Œ ๊ฐ์†Œ; 4K ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ์‹œ์Šคํ…œ์—์„œ 64K ์„นํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ.

    • XFS์—์„œ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ 2038๋…„ ์ดํ›„ ๋‚ ์งœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•ˆ์ •ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์—ฐ๋œ inode ๋น„ํ™œ์„ฑํ™”๋ฅผ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ์ง€์—ฐ๋œ ์„ค์น˜ ๋ฐ ํŒŒ์ผ ์†์„ฑ ์ œ๊ฑฐ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ ๋งˆ์šดํŠธ๋œ ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•œ ๋””์Šคํฌ ํ• ๋‹น๋Ÿ‰์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(ํ• ๋‹น๋Ÿ‰์„ ๊ฐ•์ œ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ• ๋‹น๋Ÿ‰๊ณผ ๊ด€๋ จ๋œ ๊ณ„์‚ฐ์€ ๊ณ„์†๋˜๋ฏ€๋กœ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์‹œ ๋งˆ์šดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).
    • EXT4์—์„œ๋Š” delalloc ๋ฒ„ํผ ์“ฐ๊ธฐ ์„ฑ๋Šฅ์„ ๋†’์ด๊ณ  ์—ด๋ ค ์žˆ์ง€๋งŒ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์† ์กด์žฌํ•˜๋Š” ๊ณ ์•„ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ ์ž‘์—… ์ฐจ๋‹จ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ญ์ œ ์ž‘์—… ์ฒ˜๋ฆฌ๊ฐ€ jbd2 kthread ์Šค๋ ˆ๋“œ ์™ธ๋ถ€๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • F2FS๋Š” ํ๊ธฐ ์ž‘์—…(๋” ์ด์ƒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ €์žฅ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ํ•ด์ œ๋œ ๋ธ”๋ก ํ‘œ์‹œ)์„ ๋ธ”๋ก, ์„นํ„ฐ, ์„ธ๊ทธ๋จผํŠธ ๋˜๋Š” ์„น์…˜๊ณผ ๊ด€๋ จ๋œ ์ •๋ ฌ์— ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์œ„ํ•ด "discard_unit=block|segment|section" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. I/O ๋Œ€๊ธฐ ์‹œ๊ฐ„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • EROFS(ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ฝ๊ธฐ ์ „์šฉ ํŒŒ์ผ ์‹œ์Šคํ…œ) ํŒŒ์ผ ์‹œ์Šคํ…œ์€ fiemap ์ง€์›๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์••์ถ• ์—†์ด ์ €์žฅ๋œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ง์ ‘ I/O ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • OverlayFS๋Š” "immutable", "append-only", "sync" ๋ฐ "noatime" ๋งˆ์šดํŠธ ํ”Œ๋ž˜๊ทธ์˜ ์˜ฌ๋ฐ”๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • NFS๋Š” NFS ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ค‘์ง€ํ•˜๋Š” ์ƒํ™ฉ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ด์ง€๋งŒ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์—์„œ ๋งˆ์šดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • FSCACHE ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • GPT ํ…Œ์ด๋ธ”์˜ ๋น„ํ‘œ์ค€ ๋ฐฐ์น˜๋กœ EFI ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • fanotify ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ฐ˜ํ™˜๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— pidfd๊ฐ€ ํฌํ•จ๋˜๋„๋ก ํ•˜๋Š” ์ƒˆ๋กœ์šด ํ”Œ๋ž˜๊ทธ FAN_REPORT_PIDFD๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. Pidfd๋Š” PID ์žฌ์‚ฌ์šฉ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง๋œ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค(pidfd๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฐ˜๋ฉด, PID๋Š” ํ•ด๋‹น PID์™€ ์—ฐ๊ฒฐ๋œ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
    • ๊ธฐ์กด ๊ณต์œ  ๊ทธ๋ฃน์— ๋งˆ์šดํŠธ ์ง€์ ์„ move_mount() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ์— ๊ณต์œ ๋œ ๋งˆ์šดํŠธ ๊ณต๊ฐ„์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ CRIU์—์„œ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•˜๋Š” ๋ฐ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    • ํŒŒ์ผ์˜ ๊ณต๋ฐฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์บ์‹œ ์ฝ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ž ์žฌ์ ์œผ๋กœ ํŒŒ์ผ ์†์ƒ์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ˆจ๊ฒจ์ง„ ๊ฒฝ์Ÿ ์กฐ๊ฑด์— ๋Œ€ํ•œ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํŒŒ์ผ ๋ณ€๊ฒฝ์œผ๋กœ ์ด์–ด์ง€๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ฐจ๋‹จ์„ ํ†ตํ•ด ๊ตฌํ˜„๋œ ํ•„์ˆ˜(mandatory) ํŒŒ์ผ ์ž ๊ธˆ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฒฝ์Ÿ ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ์ด๋Ÿฌํ•œ ์ž ๊ธˆ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด ์ˆ˜๋…„ ์ „์— ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • LightNVM ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ์ œ๊ฑฐ๋˜์–ด ์—๋ฎฌ๋ ˆ์ด์…˜ ๊ณ„์ธต์„ ์šฐํšŒํ•˜์—ฌ SSD ๋“œ๋ผ์ด๋ธŒ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. LightNVM์€ ๊ตฌ์—ญํ™”(ZNS, ๊ตฌ์—ญํ™”๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค)๋ฅผ ์ œ๊ณตํ•˜๋Š” NVMe ํ‘œ์ค€์˜ ์ถœํ˜„ ์ดํ›„ ๊ทธ ์˜๋ฏธ๋ฅผ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์‹œ์Šคํ…œ ์„œ๋น„์Šค
    • DAMON(Data Access MONitor) ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ๊ตฌํ˜„๋˜์–ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰ ์ค‘์ธ ์„ ํƒ๋œ ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จํ•˜์—ฌ RAM์˜ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค์™€ ๊ด€๋ จ๋œ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ์ž‘์—… ์ค‘์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•ก์„ธ์Šคํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ์š”์ฒญ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DAMON์€ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ๋‚ฎ์€ CPU ๋กœ๋“œ, ๋‚ฎ์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„, ๋†’์€ ์ •ํ™•์„ฑ ๋ฐ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ผ์ •ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ์ปค๋„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์‹œ์Šคํ…œ์— ๊ณผ๋„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ™•๋ณด).
    • ์‹คํ–‰์ด ์™„๋ฃŒ๋œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜๋Š” ๊ณผ์ •์˜ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด process_mrelease ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ •์ƒ์ ์ธ ์ƒํ™ฉ์—์„œ ๋ฆฌ์†Œ์Šค ํ•ด์ œ ๋ฐ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ๋Š” ์ฆ‰๊ฐ์ ์ด์ง€ ์•Š์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ์ด์œ ๋กœ ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด oomd(systemd์—์„œ ์ œ๊ณต) ๋ฐ lmkd(Android์—์„œ ์‚ฌ์šฉ)์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ธฐ ์‘๋‹ต ์‹œ์Šคํ…œ์„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. process_mrelease๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์€ ๊ฐ•์ œ ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํšŒ์ˆ˜๋ฅผ ๋”์šฑ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹ค์‹œ๊ฐ„ ์ž‘์—…์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ๋ฐœํ•˜๋Š” PREEMPT_RT ์ปค๋„ ๋ธŒ๋žœ์น˜์—์„œ RT-Mutex ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž ๊ธˆ mutex, ww_mutex, rw_semaphore, spinlock ๋ฐ rwlock์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ํ˜•์‹์˜ ๋ณ€ํ˜•์ด ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PREEMPT_RT ๋ชจ๋“œ์˜ ์ž‘๋™์„ ๊ฐœ์„ ํ•˜๊ณ  ์ธํ„ฐ๋ŸฝํŠธ์— ๋Œ€ํ•œ ์˜ํ–ฅ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด SLUB ์Šฌ๋žฉ ํ• ๋‹น์ž์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • SCHED_IDLE ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ ์†์„ฑ์— ๋Œ€ํ•œ ์ง€์›์ด cgroup์— ์ถ”๊ฐ€๋˜์–ด ํŠน์ • cgroup์— ํฌํ•จ๋œ ๊ทธ๋ฃน์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ์ด ์†์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ ๋Œ€๊ธฐ ์ค‘์ธ ๋‹ค๋ฅธ ์ž‘์—…์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. SCHED_IDLE ์†์„ฑ์„ ๊ฐ ํ”„๋กœ์„ธ์Šค์— ๊ฐœ๋ณ„์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ SCHED_IDLE์„ cgroup์— ๋ฐ”์ธ๋”ฉํ•  ๋•Œ ์‹คํ–‰ํ•  ์ž‘์—…์„ ์„ ํƒํ•  ๋•Œ ๊ทธ๋ฃน ๋‚ด ์ž‘์—…์˜ ์ƒ๋Œ€์  ๊ฐ€์ค‘์น˜๊ฐ€ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค.
    • cgroup์˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํด๋ง, ์‹ ํ˜ธ ์ฒ˜๋ฆฌ ๋ฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์œ„ํ•ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ์ถ”๊ฐ€ ์ปค๋„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ผ๋ถ€ CPU๊ฐ€ 32๋น„ํŠธ ์ž‘์—… ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๊ณ  ์ผ๋ถ€ CPU๊ฐ€ 64๋น„ํŠธ ๋ชจ๋“œ(์˜ˆ: ARM)์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜์˜ ํ”„๋กœ์„ธ์„œ ์ฝ”์–ด์— ๋Œ€ํ•œ ์ž‘์—… ๋ฐ”์ธ๋”ฉ์˜ ๋น„๋Œ€์นญ ์Šค์ผ€์ค„๋ง์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 32๋น„ํŠธ ์ž‘์—…์„ ์˜ˆ์•ฝํ•  ๋•Œ 32๋น„ํŠธ ์ž‘์—…์„ ์ง€์›ํ•˜๋Š” CPU๋งŒ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • io_uring ๋น„๋™๊ธฐ I/O ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด์ œ ํŒŒ์ผ ์„ค๋ช…์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ณ ์ • ํŒŒ์ผ ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์—์„œ ์ง์ ‘ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ผ๋ถ€ ์œ ํ˜•์˜ ์ž‘์—… ์†๋„๋ฅผ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ํŒŒ์ผ ์„ค๋ช…์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด Unix ํ”„๋กœ์„ธ์Šค์— ์–ด๊ธ‹๋‚ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์—ด๋ ค๋ฉด.

      BIO(Block I/O Layer) ํ•˜์œ„ ์‹œ์Šคํ…œ์šฉ io_uring์€ ์ƒˆ๋กœ์šด ์žฌํ™œ์šฉ ๋ฉ”์ปค๋‹ˆ์ฆ˜(โ€œBIO ์žฌํ™œ์šฉโ€)์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ณผ์ •์—์„œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ณ  ์ดˆ๋‹น ์ฒ˜๋ฆฌ๋˜๋Š” I/O ์ž‘์—… ์ˆ˜๋ฅผ ์•ฝ 10% ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. . io_uring์€ mkdirat(), Symlinkat() ๋ฐ linkat() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ง€์›๋„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    • BPF ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ ํƒ€์ด๋จธ ์ด๋ฒคํŠธ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. UNIX ์†Œ์ผ“์šฉ ๋ฐ˜๋ณต์ž๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, setockopt์— ๋Œ€ํ•œ ์†Œ์ผ“ ์˜ต์…˜์„ ๊ฐ€์ ธ์˜ค๊ณ  ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. BTF ๋คํผ๋Š” ์ด์ œ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์„ฑ๋Šฅ์ด ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์œ ํ˜•์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” NUMA ์‹œ์Šคํ…œ์—์„œ ์—ฌ์œ  ๊ณต๊ฐ„์ด ์†Œ์ง„๋˜๋ฉด ์ œ๊ฑฐ๋œ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋Š” ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋Œ€์‹  ๋™์  ๋ฉ”๋ชจ๋ฆฌ(DRAM)์—์„œ ๋Š๋ฆฐ ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ(์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ)๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅด๋ฉด ์ด๋Ÿฌํ•œ ์ „์ˆ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋‹น ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. NUMA๋Š” ๋˜ํ•œ ์„ ํƒ๋œ NUMA ๋…ธ๋“œ ์„ธํŠธ์—์„œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ARC ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ 64๋ ˆ๋ฒจ ๋ฐ XNUMX๋ ˆ๋ฒจ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์–ด XNUMX๋น„ํŠธ ARC ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ง€์›์ด ๋”์šฑ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
    • s390 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ KFENCE ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—… ์‹œ ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ KCSAN ๊ฒฝ์Ÿ ์กฐ๊ฑด ๊ฐ์ง€๊ธฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • printk()๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅ๋œ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก์˜ ์ƒ‰์ธํ™”์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ํ•œ ๋ฒˆ์— ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • mmap()์€ VM_DENYWRITE ์˜ต์…˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฉฐ ์ปค๋„ ์ฝ”๋“œ๋Š” MAP_DENYWRITE ๋ชจ๋“œ ์‚ฌ์šฉ์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ETXTBSY ์˜ค๋ฅ˜๋กœ ์ธํ•ด ํŒŒ์ผ ์“ฐ๊ธฐ๊ฐ€ ์ฐจ๋‹จ๋˜๋Š” ์ƒํ™ฉ์˜ ์ˆ˜๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค.
    • ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ๊ฒ€์‚ฌ์ธ "์ด๋ฒคํŠธ ํ”„๋กœ๋ธŒ"๊ฐ€ ์ถ”์  ํ•˜์œ„ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ ๊ธฐ์กด ์ถ”์  ์ด๋ฒคํŠธ์— ์—ฐ๊ฒฐํ•˜์—ฌ ๊ณ ์œ ํ•œ ์ถœ๋ ฅ ํ˜•์‹์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Clang ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„์„ ๋นŒ๋“œํ•  ๋•Œ ์ด์ œ LLVM ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๊ฒฝ๊ณ ๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ ์ปค๋„์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ์˜ ์ผํ™˜์œผ๋กœ, ์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๊ณ ๊ฐ€ ์˜ค๋ฅ˜๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” "-Werror" ๋ชจ๋“œ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•œ ์ƒํƒœ์—์„œ ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. 5.15 ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ Linus๋Š” ์ปค๋„์„ ๋นŒ๋“œํ•  ๋•Œ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  "-Werror"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์ˆ˜๋ฝํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ๊ทธ๋Ÿฐ ๊ฒฐ์ •์€ ์‹œ๊ธฐ์ƒ์กฐ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ "-Werror" ํ™œ์„ฑํ™”๊ฐ€ ์ง€์—ฐ๋œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. . ์–ด์…ˆ๋ธ”๋ฆฌ ์ค‘ "-Werror" ํ”Œ๋ž˜๊ทธ์˜ ํฌํ•จ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ COMPILE_TEST๋กœ ์„ค์ •๋˜๋Š” WERROR ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ํ…Œ์ŠคํŠธ ๋นŒ๋“œ์—๋งŒ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ™” ๋ฐ ๋ณด์•ˆ
    • IMA(๋ฌด๊ฒฐ์„ฑ ์ธก์ • ์•„ํ‚คํ…์ฒ˜) ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์›๊ฒฉ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•˜์—ฌ DM(Device Mapper)์— ์ƒˆ๋กœ์šด dm-ima ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ์„œ๋น„์Šค์—์„œ ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ์ง„์œ„ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. . ์‹ค์ œ๋กœ dm-ima๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์™ธ๋ถ€ ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐ๋œ Device Mapper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ ์‹œ์ž‘๋œ DM ๋Œ€์ƒ ๊ตฌ์„ฑ์˜ ์œ ํšจ์„ฑ์€ IMA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.
    • prctl()์€ ์ƒˆ๋กœ์šด ์˜ต์…˜ PR_SPEC_L1D_FLUSH๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ปจํ…์ŠคํŠธ ์ „ํ™˜์ด ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ปค๋„์ด ์ฒซ ๋ฒˆ์งธ ์ˆ˜์ค€(L1D) ์บ์‹œ์˜ ๋‚ด์šฉ์„ ํ”Œ๋Ÿฌ์‹œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ์„ ํƒ์ ์œผ๋กœ CPU ๋ช…๋ น์˜ ์ถ”์ธก ์‹คํ–‰์œผ๋กœ ์ธํ•œ ์ทจ์•ฝ์ ์œผ๋กœ ์ธํ•ด ์บ์‹œ์— ์ •์ฐฉ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์˜ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ณดํ˜ธ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PR_SPEC_L1D_FLUSH(๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Œ)๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ๋“œ๋Š” ๋น„์šฉ์€ ์ƒ๋‹นํ•œ ์„ฑ๋Šฅ ์ €ํ•˜์ž…๋‹ˆ๋‹ค.
    • GCC์— "-fzero-call-used-regs=used-gpr" ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ปค๋„์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ•จ์ˆ˜์—์„œ ์ œ์–ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ 20์œผ๋กœ ์žฌ์„ค์ •๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•จ์ˆ˜์—์„œ ์ •๋ณด ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ต์Šคํ”Œ๋กœ์ž‡์—์„œ ROP(๋ฐ˜ํ™˜ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๊ฐ€์ ฏ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๋ธ”๋ก ์ˆ˜๋ฅผ XNUMX% ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Hyper-V ํ•˜์ดํผ๋ฐ”์ด์ €์šฉ ํด๋ผ์ด์–ธํŠธ ํ˜•ํƒœ๋กœ ARM64 ์•„ํ‚คํ…์ฒ˜์šฉ ์ปค๋„์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ๊ฐ€์ƒ ๋ธ”๋ก ์žฅ์น˜๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  Virtio๋ฅผ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ์ „์†ก ์ˆ˜๋‹จ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๋“œ๋ผ์ด๋ฒ„ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ธ "VDUSE"๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • I2C ๋ฒ„์Šค์šฉ Virtio ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๋ณ„๋„์˜ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๊ฐ€์ƒํ™” ๋ชจ๋“œ์—์„œ I2C ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฒŒ์ŠคํŠธ๊ฐ€ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ ์ œ๊ณตํ•˜๋Š” GPIO ํšŒ์„ ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก Virtio ๋“œ๋ผ์ด๋ฒ„ gpio-virtio๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • I/O MMU(๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜)๊ฐ€ ์—†๋Š” ์‹œ์Šคํ…œ์—์„œ DMA๋ฅผ ์ง€์›ํ•˜๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • KVM ํ•˜์ดํผ๋ฐ”์ด์ €์—๋Š” ์„ ํ˜• ๋ฐ ๋กœ๊ทธ ํžˆ์Šคํ† ๊ทธ๋žจ ํ˜•์‹์œผ๋กœ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ
    • ksmbd ๋ชจ๋“ˆ์€ SMB3 ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ ์„œ๋ฒ„ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ์ปค๋„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ ์ด์ „์— ์ปค๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ SMB ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„์„ ๋ณด์™„ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋Š” SMB ์„œ๋ฒ„์™€ ๋‹ฌ๋ฆฌ ์„ฑ๋Šฅ, ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ๋ฐ ๊ณ ๊ธ‰ ์ปค๋„ ๊ธฐ๋Šฅ๊ณผ์˜ ํ†ตํ•ฉ ์ธก๋ฉด์—์„œ ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. Ksmbd๋Š” ํ•„์š”์— ๋”ฐ๋ผ Samba ๋„๊ตฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ†ตํ•ฉ๋˜๋Š” ๊ณ ์„ฑ๋Šฅ ๋‚ด์žฅํ˜• Samba ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ksmbd์˜ ๊ธฐ๋Šฅ์—๋Š” ๋กœ์ปฌ ์‹œ์Šคํ…œ์˜ ๋ถ„์‚ฐ ํŒŒ์ผ ์บ์‹ฑ ๊ธฐ์ˆ (SMB ์ž„๋Œ€)์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์ง€์›์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ํŠธ๋ž˜ํ”ฝ์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์‚ฌ์šฉํ•œ ์•”ํ˜ธํ™” ๋ฐ ๊ฒ€์ฆ์˜ ์‹ ๋ขฐ์„ฑ ํ–ฅ์ƒ๊ณผ ๊ด€๋ จ๋œ RDMA("smbdirect") ๋ฐ ํ”„๋กœํ† ์ฝœ ํ™•์žฅ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.
    • CIFS ํด๋ผ์ด์–ธํŠธ๋Š” ๋” ์ด์ƒ NTLM ๋ฐ SMB1 ํ”„๋กœํ† ์ฝœ์— ์‚ฌ์šฉ๋˜๋Š” ๋ณด๋‹ค ์•ฝํ•œ DES ๊ธฐ๋ฐ˜ ์ธ์ฆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์ง€์›์€ VLAN์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€ ๊ตฌํ˜„์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง‘๊ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ณธ๋”ฉ ๋“œ๋ผ์ด๋ฒ„์—๋Š” XDP(eXpress Data Path) ํ•˜์œ„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Linux ์ปค๋„ ๋„คํŠธ์›Œํฌ ์Šคํƒ์—์„œ ์ฒ˜๋ฆฌ๋˜๊ธฐ ์ „ ๋‹จ๊ณ„์—์„œ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • mac80211 ๋ฌด์„  ์Šคํƒ์€ LPI, SP ๋ฐ VLP ๋ชจ๋“œ์—์„œ 6GHZ STA(Special Temporary Authorization)๋ฅผ ์ง€์›ํ•˜๊ณ  ์•ก์„ธ์Šค ํฌ์ธํŠธ ๋ชจ๋“œ์—์„œ ๊ฐœ๋ณ„ TWT(Target Wake Time)๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ด€๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ์™€ ๊ด€๋ จ ์žฅ์น˜(ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์„œ, ์ฃผ๋ณ€ ์žฅ์น˜ ๋“ฑ) ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์— ์‚ฌ์šฉ๋˜๋Š” MCTP(๊ด€๋ฆฌ ๊ตฌ์„ฑ ์š”์†Œ ์ „์†ก ํ”„๋กœํ† ์ฝœ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์„œ๋กœ ๋‹ค๋ฅธ IP ์ฃผ์†Œ์™€ ์—ฐ๊ฒฐ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋™์‹œ์— ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๋Š” TCP ์—ฐ๊ฒฐ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ TCP ํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ์ธ MPTCP(MultiPath TCP)์˜ ํ•ต์‹ฌ์— ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” ํ’€๋ฉ”์‹œ ๋ชจ๋“œ์˜ ์ฃผ์†Œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • SRv6(์„ธ๊ทธ๋จผํŠธ ๋ผ์šฐํŒ… IPv6) ํ”„๋กœํ† ์ฝœ๋กœ ์บก์Šํ™”๋œ ๋„คํŠธ์›Œํฌ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ netfilter์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Unix ์ŠคํŠธ๋ฆฌ๋ฐ ์†Œ์ผ“์— ๋Œ€ํ•œ ์–‘๋ง๋งต ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต
    • amdgpu ๋“œ๋ผ์ด๋ฒ„๋Š” Cyan Skillfish APU(Navi 1x GPU ์žฅ์ฐฉ)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Yellow Carp APU๋Š” ์ด์ œ ๋น„๋””์˜ค ์ฝ”๋ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ฐ๋ฐ”๋ž€ GPU ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GPU Navi 24 "Beige Goby" ๋ฐ RDNA2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ์ง€๋„ ์‹๋ณ„์ž๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ–ฅ์ƒ๋œ ๊ฐ€์ƒ ํ™”๋ฉด ๊ตฌํ˜„(VKMS)์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AMD Zen 3 ์นฉ์˜ ์˜จ๋„ ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • amdkfd ๋“œ๋ผ์ด๋ฒ„(Polaris์™€ ๊ฐ™์€ ๊ฐœ๋ณ„ GPU์šฉ)๋Š” HMM(์ด๊ธฐ์ข… ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ) ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณต์œ  ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž(SVM, ๊ณต์œ  ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ)๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜(MMU)๊ฐ€ ์žˆ๋Š” ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. , ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜), ์ฃผ ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, HMM์„ ์‚ฌ์šฉํ•˜๋ฉด GPU์™€ CPU ์‚ฌ์ด์˜ ๊ณต์œ  ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ GPU๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Intel ๋น„๋””์˜ค ์นด๋“œ์šฉ i915 ๋“œ๋ผ์ด๋ฒ„๋Š” TTM ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž์˜ ์‚ฌ์šฉ์„ ํ™•์žฅํ•˜๊ณ  GuC(๊ทธ๋ž˜ํ”ฝ ๋งˆ์ดํฌ๋กœ ์ปจํŠธ๋กค๋Ÿฌ)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „๋ ฅ ์†Œ๋น„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. Intel ARC Alchemist ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ ๋ฐ Intel Xe-HP GPU์— ๋Œ€ํ•œ ์ง€์› ๊ตฌํ˜„์„ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • nouveau ๋“œ๋ผ์ด๋ฒ„๋Š” DPCD(DisplayPort ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ eDP ํŒจ๋„์— ๋Œ€ํ•œ ๋ฐฑ๋ผ์ดํŠธ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • msm ๋“œ๋ผ์ด๋ฒ„์— Adreno 7c Gen 3 ๋ฐ Adreno 680 GPU์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • IOMMU ๋“œ๋ผ์ด๋ฒ„๋Š” Apple M1 ์นฉ์šฉ์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • AMD Van Gogh APU ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์šฉ ์‚ฌ์šด๋“œ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Realtek R8188EU ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์Šคํ…Œ์ด์ง• ๋ถ„๊ธฐ์— ์ถ”๊ฐ€๋˜์–ด Realtek RTL8188EU 8188 b/g/n ๋ฌด์„  ์นฉ์šฉ ๋“œ๋ผ์ด๋ฒ„(rtl802.11eu)์˜ ์ด์ „ ๋ฒ„์ „์„ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ocp_pt ๋“œ๋ผ์ด๋ฒ„๋Š” ์†Œํ˜• ์›์ž์‹œ๊ณ„์™€ GNSS ์ˆ˜์‹ ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•œ Meta(Facebook)์—์„œ ๊ฐœ๋ฐœํ•œ PCIe ๋ณด๋“œ์šฉ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋ณ„๋„์˜ ์ •ํ™•ํ•œ ์‹œ๊ฐ„ ๋™๊ธฐํ™” ์„œ๋ฒ„์˜ ์ž‘๋™์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Sony Xperia 10II(Snapdragon 665), Xiaomi Redmi 2(Snapdragon MSM8916), Samsung Galaxy S3(Snapdragon MSM8226), Samsung Gavini/Codina/Kyle ์Šค๋งˆํŠธํฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ARM Soะก ๋ฐ NVIDIA Jetson TX2 NX ๊ฐœ๋ฐœ์ž ํ‚คํŠธ, Sancloud BBE Lite, PicoITX, DRC02, SolidRun SolidSense, SKOV i.MX6, Nitrogen8, Traverse Ten64, GW7902, Microchip SAMA7, ualcomm Snapdragon SDM636/SM8150, Renesas R-Car H3e์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€ ๋ณด๋“œ -2G/M3e-2G, Marvell CN913x, ASpeed โ€‹โ€‹โ€‹โ€‹AST2600 (Facebook Cloudripper, Elbert ๋ฐ Fuji ์„œ๋ฒ„ ๋ณด๋“œ), 4KOpen STiH418-b2264.
    • Gopher 2b LCD ํŒจ๋„, EDT ETM0350G0DH6/ETMV570G2DHU, LOGIC Technologies LTTD800480070-L6WH-RT, Multi-Innotechnology MI1010AIT-1CP1, Innolux EJ030NA 3.0, ilitek ili9341, E Ink VB3300-KCA, Samsung ATNA33XC20์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€ 7430, ์‚ผ์„ฑ DB2401, WideChips WSXNUMX .
    • LiteX ์†Œํ”„ํŠธ์›จ์–ด SoC(FPGA์šฉ)์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋”๋„ท ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ง€์›ํ•˜๋Š” LiteETH ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๋ชจ๋“œ์—์„œ์˜ ์ž‘์—… ํฌํ•จ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์ €์ง€์—ฐ ์˜ต์…˜์ด USB ์˜ค๋””์˜ค ๋“œ๋ผ์ด๋ฒ„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์žฅ์น˜๋ณ„ ์„ค์ •์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด quirk_flags ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋™์‹œ์— ๋ผํ‹ด ์•„๋ฉ”๋ฆฌ์นด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ์€ ์™„์ „ ๋ฌด๋ฃŒ ์ปค๋„ 5.15 ๋ฒ„์ „์ธ Linux-libre 5.15-gnu๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์—๋Š” ์ž์œ ๋กญ์ง€ ์•Š์€ ๊ตฌ์„ฑ ์š”์†Œ๋‚˜ ์ฝ”๋“œ ์„น์…˜์ด ํฌํ•จ๋œ ํŽŒ์›จ์–ด ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ฒ”์œ„๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์กฐ์—…์ฒด์— ์˜ํ•ด. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ์ฒญ์†Œ ์™„๋ฃŒ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ์„ ๋กœ๊ทธ์— ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. mkspec์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ, ์Šค๋ƒ… ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ง€์›์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŽŒ์›จ์–ด.h ํ—ค๋” ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ํ‘œ์‹œ๋˜๋Š” ์ผ๋ถ€ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. "-Werror" ๋ชจ๋“œ์—์„œ ๋นŒ๋“œํ•  ๋•Œ ์ผ๋ถ€ ์œ ํ˜•์˜ ๊ฒฝ๊ณ ("format-extra-args", ์ฃผ์„, ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜ ๋ฐ ๋ณ€์ˆ˜) ์ถœ๋ ฅ์ด ํ—ˆ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. gehc-achc ๋“œ๋ผ์ด๋ฒ„ ์ •๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„ ๋ฐ ํ•˜์œ„ ์‹œ์Šคํ…œ adreno, btusb, btintel, brcmfmac, aarch64 qcom์˜ Blob ์ •๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„ prism54(์ œ๊ฑฐ๋จ) ๋ฐ rtl8188eu(r8188eu๋กœ ๋Œ€์ฒด) ์ฒญ์†Œ๊ฐ€ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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