๋ ๋ฌ ๊ฐ์ ๊ฐ๋ฐ ๋์ Linus Torvalds๋
๋น๋์นญ CPU์ ๋ํ ์ํธ ์์ฉ์ ์ฆ๊ฐ์ํค๋ 'ํ์ฉ๋ ํด๋จํ' ๋ชจ๋, pidfd_open ์์คํ
ํธ์ถ, 4/0.0.0.0 ์๋ธ๋ท์ IPv8 ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ, nftables ํ๋์จ์ด ๊ฐ์ ๊ฐ๋ฅ์ฑ, DRM ํ์ ์์คํ
์ HDR ์ง์, ACRN ํตํฉ ํ์ดํผ๋ฐ์ด์ .
ะ
์ต์ ํ๋ฅผ ํตํด ๋์คํฌ ํ๋ ๊ฐ์๋ก ์ธํด getrandom() ๋์ ์์ฑ๊ธฐ์ ์ํธ๋กํผ๊ฐ ๋ ๋๋ฆฌ๊ฒ ๋์ ๋๊ธฐ ์์ํ์ผ๋ฉฐ ์ผ๋ถ ๊ตฌ์ฑ์์๋ ํน์ ์ํฉ์์ ์ํธ๋กํผ ํ์ด ๋ก๋๋ ๋๊น์ง ๋ก๋ ์ค์ ์ ์ง๊ฐ ๊ด์ฐฐ๋ ์ ์์์ต๋๋ค. ์ฑ์ฐ๋. ์ต์ ํ๊ฐ ์ ๋ง ์ ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ getrandom() ํธ์ถ์ ๊ธฐ๋ณธ ์ฐจ๋จ ๋ชจ๋๋ฅผ ๋นํ์ฑํํ๊ณ ์ํธ๋กํผ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ ํ์ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ ๋ ผ์๊ฐ ์ผ์ด๋ฌ์ต๋๋ค. ๋ก๋ฉ ์ด๊ธฐ ๋จ๊ณ์ ๋์ ํ์ง.
์ ๋ฒ์ ์๋ 15794๋ช
์ ๊ฐ๋ฐ์๊ฐ ์์ ํ 1974๊ฐ์ ์์ ์ฌํญ์ด ํฌํจ๋์ด ์์ต๋๋ค.
ํจ์น ํฌ๊ธฐ - 92MB(๋ณ๊ฒฝ ์ฌํญ์ 13986๊ฐ ํ์ผ์ ์ํฅ์ ๋ฏธ์น๊ณ 258419์ค์ ์ฝ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
599137๊ฐ ํ์ด ์ ๊ฑฐ๋์์ต๋๋ค.) 39์ ์ ์๋ ์ ์ฒด ๋ด์ฉ์ ์ฝ 5.3%
๋ณ๊ฒฝ ์ฌํญ์ ์ฅ์น ๋๋ผ์ด๋ฒ์ ๊ด๋ จ๋์ด ์์ผ๋ฉฐ ๋ณ๊ฒฝ ์ฌํญ ์ค ์ฝ 12%๋
ํ๋์จ์ด ์ํคํ
์ฒ ๊ด๋ จ ์ฝ๋ ์
๋ฐ์ดํธ์ ๋ํ ํ๋, 11%
๋คํธ์ํฌ ์คํ ๊ด๋ จ, ํ์ผ ์์คํ
๊ด๋ จ 3%, ๋ด๋ถ ๊ด๋ จ 3%
์ปค๋ ํ์ ์์คํ
.
- ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์์คํ
์๋น์ค
- PID ์ฌ์ฌ์ฉ ์ํฉ์ ์ฒ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋ 'pidfd' ๊ธฐ๋ฅ์ ์ง์์ ์ธ ๊ฐ๋ฐ(pidfd๋ ํน์ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐ๋์ด ๋ณ๊ฒฝ๋์ง ์์ง๋ง PID๋ ํด๋น PID์ ์ฐ๊ฒฐ๋ ํ์ฌ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋ ํ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐ๋ ์ ์์) ์ด์ ์ ์ปค๋์ ์ถ๊ฐ๋์์ต๋๋ค.
idfd_send_signal()์์ ์ฌ์ฉํ pidfd๋ฅผ ์ป๊ธฐ ์ํ pidfd_send_signal() ์์คํ ํธ์ถ๊ณผ clone() ํธ์ถ์ CLONE_PIDFD ํ๋๊ทธ. CLONE_PIDFD ํ๋๊ทธ์ ํจ๊ป clone()์ ์ฌ์ฉํ๋ฉด ์๋น์ค ๊ด๋ฆฌ์ ๋๋ Android ํ๋ซํผ์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๊ฐ์ ์ข ๋ฃ ์์คํ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ CLONE_PIDFD ์์ด fork() ๋๋ clone()์ ํธ์ถํ์ฌ ์์ํฉ๋๋ค.์ปค๋ 5.3์๋ ์์คํ ํธ์ถ์ด ๋์ ๋์์ต๋๋ค.
pidfd_open() ์ด๋ฅผ ํตํด CLONE_PIDFD ํ๋๊ทธ์ ํจ๊ป clone()์ ํธ์ถํ์ฌ ์์ฑ๋์ง ์์ ์์์ ๊ธฐ์กด ํ๋ก์ธ์ค์ ๋ํด ํ์ธ ๊ฐ๋ฅํ PIDFD๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๋ํ poll() ๋ฐ epoll()์ ์ฌ์ฉํ์ฌ pidfd ํด๋ง์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ๋ก์ธ์ค ๊ด๋ฆฌ์๋ PID๊ฐ ์ ํ๋ก์ธ์ค์ ํ ๋น๋๋ ๊ฒฝ์ฐ ๊ฒฝ์ ์กฐ๊ฑด์ ๋ํ ๊ฑฑ์ ์์ด ์์ ํ๋ก์ธ์ค์ ์ข ๋ฃ๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค. pidfd์ ์ฐ๊ด๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋ ์ด๋ฅผ ์๋ฆฌ๋ ๋ฉ์ปค๋์ฆ์ ํด๋น ํ์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋ ์๋ฆฌ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. - ์์
์ค์ผ์ค๋ฌ์ ๋ก๋ ๊ณ ์ ๋ฉ์ปค๋์ฆ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค(
ํ์ฉ ํด๋จํ ), CPU์์ ํ์ฑํ๋ ์์ ์ ๋ฐ๋ผ ์ต์ ๋๋ ์ต๋ ์ฃผํ์ ๋ฒ์๋ฅผ ์ค์ํ ์ ์์ต๋๋ค. ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ต์ํ "์์ฒญ๋" ๋น๋์ ๋ฎ์ ๋์์ ์ด๋ฌํ ์์ ์ ์คํํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ํ์ง์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ ์์ ์ ์๋๋ฅผ ๋์ ๋๋ค. ์ฌ์ฉ์์ ์์ ์ ์ํฅ์ ์ฃผ์ง ์๋ ์ฐ์ ์์๊ฐ ๋ฎ์ ์์ ์ "ํ์ฉ๋" ๋น๋์ ์ํ์ ์ฌ์ฉํ์ฌ ์์๋ฉ๋๋ค. ์ ํ์ sched_setattr() ์์คํ ํธ์ถ์ sched_uclamp_util_min ๋ฐ sched_uclamp_util_max ์์ฑ์ ํตํด ์ค์ ๋ฉ๋๋ค. - ์๋์ง ๊ด๋ฆฌ ๊ธฐ์ ์ง์ ์ถ๊ฐ
์ธํ ์๋ ์ ํ , Intel Xeon ํ๋ก์ธ์๊ฐ ํ์ฌ๋ ์ผ๋ถ ์๋ฒ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ๋ค์ํ CPU ์ฝ์ด์ ๋ํ ์ฑ๋ฅ ๋ฐ ํํฐ์ ์ฒ๋ฆฌ๋ ์ค์ ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํน์ ์ฝ์ด์์ ์ํ๋๋ ์์ ์ ๋ํ ์ฑ๋ฅ ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ณ ๋ค๋ฅธ ์ฝ์ด์ ์ฑ๋ฅ์ ํฌ์ํ ์ ์์ต๋๋ค. - ์ฌ์ฉ์ ๊ณต๊ฐ์ ํ๋ก์ธ์ค
์ ๊ณต umwait ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์งง์ ์๊ฐ ๋์ ๊ธฐ๋ค๋ฆฌ๋ ๊ธฐ๋ฅ. umonitor ๋ฐ tpause ๋ช ๋ น๊ณผ ํจ๊ป ์ด ๋ช ๋ น์ Intel์ ๊ณง ์ถ์๋ "Tremont" ์นฉ์ ์ ๊ณต๋ ์์ ์ด๋ฉฐ ํ์ดํผ ์ค๋ ๋ฉ์ ์ฌ์ฉํ ๋ ์๋์ง ํจ์จ์ ์ด๊ณ ๋ค๋ฅธ ์ค๋ ๋์ ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์๋ ์ง์ฐ ๊ตฌํ์ ํ์ฉํฉ๋๋ค. - RISC-V ์ํคํ ์ฒ์ ๊ฒฝ์ฐ ๋์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- kprobes ์ถ์ ๋ฉ์ปค๋์ฆ์๋ ์ฌ์ฉ์ ๊ณต๊ฐ์ ๋ํ ์ปค๋ ํฌ์ธํฐ๋ฅผ ์ญ์ฐธ์กฐํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ ์๋ฅผ ๋ค์ด ์์คํ ํธ์ถ์ ์ ๋ฌ๋ ๊ตฌ์กฐ์ ๋ด์ฉ์ ํ๊ฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ถํ ๋จ๊ณ์์ ๊ฒ์ฌ๋ฅผ ์ค์นํ๋ ๊ธฐ๋ฅ๋ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ค์๊ฐ ์์
์ ์ํด ๊ตฌ์ฑ ํ์ผ์ PREEMPT_RT ์ต์
์ ์ถ๊ฐํ์ต๋๋ค. ์ค์๊ฐ ๋ชจ๋๋ฅผ ์ง์ํ๋ ์ฝ๋ ์์ฒด๋ ์์ง ์ปค๋์ ์ถ๊ฐ๋์ง ์์์ง๋ง ์ต์
์ด ๋ฑ์ฅํ ๊ฒ์ ์ฅ๊ธฐ์ ์ผ๋ก ์ํฝ์ด ์ถ์๋ ๊ฒ์ด๋ผ๋ ์ข์ ์ ํธ์
๋๋ค.
ํตํฉ ์ค์๊ฐ ์ ์ ํจ์น๊ฐ ๊ฑฐ์ ์๋ฃ๋์์ต๋๋ค. - ๋ ๋ง์ ์์ ํ๋๊ทธ๋ฅผ ์ง์ ํ ์ ์๋ ๋ ํ์ฅ ๊ฐ๋ฅํ ๋ฒ์ ์ clone() ์ธํฐํ์ด์ค ๊ตฌํ๊ณผ ํจ๊ป clone3() ์์คํ ํธ์ถ์ ์ถ๊ฐํ์ต๋๋ค.
- BPF ํ๋ก๊ทธ๋จ์ด ์์์ ํ๋ก์ธ์ค์ ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์๋๋ก bpf_send_signal() ํธ๋ค๋ฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- KVM ํ์ดํผ๋ฐ์ด์ ํ๊ฒฝ์ ์ฑ๋ฅ ์ด๋ฒคํธ์ ๊ฒฝ์ฐ ์๋ก์ด ์ด๋ฒคํธ ํํฐ๋ง ๋ฉ์ปค๋์ฆ์ด ์ถ๊ฐ๋์ด ๊ด๋ฆฌ์๊ฐ ๊ฒ์คํธ ์์คํ ์ธก์์ ๋ชจ๋ํฐ๋ง์ด ํ์ฉ๋๊ฑฐ๋ ํ์ฉ๋์ง ์๋ ์ด๋ฒคํธ ์ ํ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
- ๋ฃจํ ์คํ์ด ์ ํ๋์ด ์ต๋ ๋ช ๋ น ์ ์ ํ์ ์ด๊ณผํ ์ ์๋ ๊ฒฝ์ฐ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด eBPF ์ ํ๋ฆฌ์ผ์ด์ ๊ฒ์ฆ ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐ๋์์ต๋๋ค.
- PID ์ฌ์ฌ์ฉ ์ํฉ์ ์ฒ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋ 'pidfd' ๊ธฐ๋ฅ์ ์ง์์ ์ธ ๊ฐ๋ฐ(pidfd๋ ํน์ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐ๋์ด ๋ณ๊ฒฝ๋์ง ์์ง๋ง PID๋ ํด๋น PID์ ์ฐ๊ฒฐ๋ ํ์ฌ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋ ํ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐ๋ ์ ์์) ์ด์ ์ ์ปค๋์ ์ถ๊ฐ๋์์ต๋๋ค.
- ๋์คํฌ ํ์ ์์คํ
, I/O ๋ฐ ํ์ผ ์์คํ
- ์ด์ XFS ํ์ผ ์์คํ ์ ๋ค์ค ์ค๋ ๋ inode ์ฐํ(์: ํ ๋น๋ ํ์ธ ์)๋ฅผ ์ง์ํฉ๋๋ค. ์๋ก์ด ioctl BULKSTAT ๋ฐ INUMBERS๊ฐ ์ถ๊ฐ๋์ด inode ์์ฑ ์๊ฐ ๋ฐ ๊ฐ AG ๊ทธ๋ฃน(ํ ๋น ๊ทธ๋ฃน)์ ๋ํ BULKSTAT ๋ฐ INUMBERS ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ด FS ํ์์ XNUMX๋ฒ์งธ ๋ฒ์ ์ ๋ํ๋ ๊ธฐ๋ฅ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Ext4์์
์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค ๋๋ ํ ๋ฆฌ์ ๊ณต๋ฐฑ์ด ์์ต๋๋ค(๋งํฌ๋์ง ์์ ๋ธ๋ก).
์ฒ๋ฆฌ ์ ๊ณต ์ด๋ฆฐ ํ์ผ์ ๋ํ ํ๋๊ทธ "i"(๋ถ๋ณ)(ํ์ผ์ด ์ด๋ฏธ ์ด๋ ค ์์ ๋ ํ๋๊ทธ๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ ์ฐ๊ธฐ๊ฐ ๊ธ์ง๋จ) - Btrfs๋ ๋ชจ๋ ์ํคํ ์ฒ์์ crc32c์ ๋น ๋ฅธ ๊ตฌํ์ ๋ํ ์ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
- CIFS์์๋ ์คํ์ ๊ฐ๋ฐ ๊ณผ์ ์์ smbdirect ์ง์ ์ฝ๋๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค. SMB3์๋ GCM ๋ชจ๋์์ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ACE(์ก์ธ์ค ์ ์ด ํญ๋ชฉ) ํญ๋ชฉ์์ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ์ถํ๋ ์๋ก์ด ๋ง์ดํธ ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. open() ํธ์ถ ์ฑ๋ฅ์ ์ต์ ํํ์ต๋๋ค.
- checkpoint=disable ๋ชจ๋์์ ์คํํ ๋ ๊ฐ๋น์ง ์์ง๊ธฐ๋ฅผ ์ ํํ๋ ์ต์ ์ F2FS์ ์ถ๊ฐํ์ต๋๋ค. F2FS์์ ๋ธ๋ก ๋ฒ์๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ioctl์ ์ถ๊ฐํ์ฌ ์ฆ์์์ ํํฐ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ง์ I/O๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด F2FS์ ์ค์ ํ์ผ์ ๋ฐฐ์นํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ชจ๋ ์ฌ์ฉ์์ ๋ํด ํ์ผ ๊ณ ์ ๋ฐ ์ ์ฌํ ํ์ผ์ ๋ํ ๋ธ๋ก ํ ๋น์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋น๋๊ธฐ ์ ์ถ๋ ฅ io_uring์ ์ํ ์ธํฐํ์ด์ค์ ๋น๋๊ธฐ ์์ sendmsg() ๋ฐ recvmsg()์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- zstd ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์์ถ ์ง์๊ณผ ์๋ช ๋ FS ์ด๋ฏธ์ง๋ฅผ ํ์ธํ๋ ๊ธฐ๋ฅ์ด UBIFS ํ์ผ ์์คํ ์ ์ถ๊ฐ๋์์ต๋๋ค.
- Ceph FS๋ ์ด์ ํ์ผ์ ๋ํ SELinux ๋ณด์ ๋ ์ด๋ธ์ ์ง์ํฉ๋๋ค.
- NFSv4์ ๊ฒฝ์ฐ ์๋ฒ์ ์ค์ ๋ ์ฐ๊ฒฐ ์๋ฅผ ๊ฒฐ์ ํ๋ ์๋ก์ด ๋ง์ดํธ ์ต์ "nconnect="๊ฐ ๊ตฌํ๋์์ต๋๋ค. ์ด๋ฌํ ์ฐ๊ฒฐ ๊ฐ์ ํธ๋ํฝ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํตํด ๋ถ์ฐ๋ฉ๋๋ค. ๋ํ NFSv4 ์๋ฒ๋ ์ด์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ /proc/fs/nfsd/clients ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
- ๊ฐ์ํ ๋ฐ ๋ณด์
- ์ปค๋์๋ ์๋ฒ ๋๋ ์ฅ์น์ฉ ํ์ดํผ๋ฐ์ด์ ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
ACRN ๋ ์ค์๊ฐ ์์ ์ ๋ํ ์ค๋น ์ํ์ ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌ ์์คํ ์์์ ์ฌ์ฉ ์ ํฉ์ฑ์ ์ผ๋์ ๋๊ณ ์์ฑ๋์์ต๋๋ค. ACRN์ ์ต์ํ์ ์ค๋ฒํค๋๋ฅผ ์ ๊ณตํ๊ณ ์ฅ๋น์ ์ํธ ์์ฉํ ๋ ๋ฎ์ ๋๊ธฐ ์๊ฐ๊ณผ ์ ์ ํ ์๋ต์ฑ์ ๋ณด์ฅํฉ๋๋ค. CPU ๋ฆฌ์์ค, I/O, ๋คํธ์ํฌ ํ์ ์์คํ , ๊ทธ๋ํฝ ๋ฐ ์ฌ์ด๋ ์์ ์ ๊ฐ์ํ๋ฅผ ์ง์ํฉ๋๋ค. ACRN์ ์ ์ ์ ์ด ์ฅ์น, ๋์๋ณด๋, ์๋์ฐจ ์ ๋ณด ์์คํ , ์๋น์ IoT ์ฅ์น ๋ฐ ๊ธฐํ ๋ด์ฅ ๊ธฐ์ ์์ ์ฌ๋ฌ ๊ฐ์ ๊ฒฉ๋ฆฌ๋ ๊ฐ์ ๋จธ์ ์ ์คํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. - ์ฌ์ฉ์ ๋ชจ๋ Linux์์
์ถ๊ฐ ์๊ฐ ์ฌํ ๋ชจ๋ - ๊ฐ์ UML ํ๊ฒฝ์์ ์๊ฐ์ ๋ฆ์ถ๊ฑฐ๋ ๋์ผ ์ ์์ด ์๊ฐ ๊ด๋ จ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ๋๋ฒ๊น ํ ์ ์์ต๋๋ค. ๋ํ ๋งค๊ฐ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
time-travel-start: ์์คํ ์๊ณ๊ฐ ์ํฌํฌ ํ์์ผ๋ก ์ง์ ๋ ์๊ฐ๋ถํฐ ์์๋๋๋ก ํฉ๋๋ค. - ์๋ก์ด ์ปค๋ ๋ช ๋ น์ค ์ต์ "init_on_alloc" ๋ฐ "init_on_free"๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ง์ ํ๋ฉด ํ ๋น ๋ฐ ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๋กํ๊ฐ ํ์ฑํ๋์ด(malloc ๋ฐ free์ ๋ํด XNUMX์ผ๋ก ์ฑ์ฐ๊ธฐ) ์ถ๊ฐ ์ด๊ธฐํ ์ค๋ฒํค๋๋ก ์ธํด ๋ณด์์ด ํฅ์๋ฉ๋๋ค.
- ์๋ก์ด ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค
virtio-iommu ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ํ ์ด๋ธ์ ์๋ฎฌ๋ ์ด์ ํ์ง ์๊ณ virtio ์ ์ก์ ํตํด ATTACH, DETACH, MAP ๋ฐ UNMAP๊ณผ ๊ฐ์ IOMMU ์์ฒญ์ ๋ณด๋ผ ์ ์๋ ๋ฐ๊ฐ์ํ ์ฅ์น ๊ตฌํ - ์๋ก์ด ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค
virtio-pmem ๋ NVDIMM๊ณผ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฃผ์ ๊ณต๊ฐ์ ๋งคํ๋ ์ ์ฅ ์ฅ์น์ ๋ํ ์ก์ธ์ค๋ฅผ ๋ํ๋ ๋๋ค. - ์ฌ์ฉ์ ๋๋ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค์ ์ํธํ ํค๋ฅผ ์ฐ๊ฒฐํ๊ณ (์ ํํ ๋ค์์คํ์ด์ค ์ธ๋ถ์์๋ ํค์ ์ก์ธ์คํ ์ ์์) ACL์ ์ฌ์ฉํ์ฌ ํค๋ฅผ ๋ณดํธํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค.
- ์ํธํ ํ์ ์์คํ
์ผ๋ก
์ถ๊ฐ ๋งค์ฐ ๋น ๋ฅธ ๋น์ํธํ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ ์ง์xxํด์ , ์๋๋ ๋ฉ๋ชจ๋ฆฌ ์ฑ๋ฅ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- ์ปค๋์๋ ์๋ฒ ๋๋ ์ฅ์น์ฉ ํ์ดํผ๋ฐ์ด์ ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ๋คํธ์ํฌ ํ์ ์์คํ
- ์ด์ ์๋ ์ฌ์ฉํ ์ ์์๋ 4/0.0.0.0 ๋ฒ์์ IPv8 ์ฃผ์ ์ฒ๋ฆฌ๊ฐ ํ์ฑํ๋์์ต๋๋ค. ์ด ์๋ธ๋ท ์๊ฐ
์์ง ์ถ๊ฐ๋ก 16๋ง ๊ฐ์ IPv4 ์ฃผ์๋ฅผ ๋ฐฐํฌํฉ๋๋ค. - nftables์ฉ Netfilter์์
์ถ๊ฐ ์ถ๊ฐ๋ ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ํจํท ํํฐ๋ง์ ์ํ ํ๋์จ์ด ๊ฐ์ ๋ฉ์ปค๋์ฆ ์ง์ํ๋ฆ ๋ธ๋ก API . ๋ชจ๋ ์ฒด์ธ์ด ํฌํจ๋ ์ ์ฒด ๊ท์น ํ ์ด๋ธ์ ๋คํธ์ํฌ ์ด๋ํฐ ์ธก๋ฉด์ ๋ฐฐ์นํ ์ ์์ต๋๋ค. ํ์ฑํ๋ NFT_TABLE_F_HW ํ๋๊ทธ๋ฅผ ํ ์ด๋ธ์ ๋ฐ์ธ๋ฉํ์ฌ ์ํ๋ฉ๋๋ค. ๊ฐ๋จํ ๋ ์ด์ด 3 ๋ฐ ๋ ์ด์ด 4 ํ๋กํ ์ฝ ๋ฉํ๋ฐ์ดํฐ, ํ์ฉ/๊ฑฐ๋ถ ์์ , IP๋ณ ๋งคํ, ์ ์ก์/์์ ์ ๋คํธ์ํฌ ํฌํธ ๋ฐ ํ๋กํ ์ฝ ์ ํ์ ์ง์ํฉ๋๋ค. -
์ถ๊ฐ๋จ br_netfilter ์๋ฎฌ๋ ์ด์ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ ๋คํธ์ํฌ ๋ธ๋ฆฌ์ง์ ๋ํ ์ฐ๊ฒฐ ์ถ์ ์ง์์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. - nf_tables์์
์ถ๊ฐ iptables์ ์ ์ฌํ ๊ธฐ๋ฅ์ ๋ณต์ ํ๋ SYNPROXY ๋ชจ๋์ ๋ํ ์ง์๊ณผ IPv4 ํค๋์ ๊ฐ๋ณ ์ต์ ์ ๋ํ ๊ท์น์ ์ฒดํฌ์ธํ๋ ๊ธฐ๋ฅ๋ ๊ตฌํ๋์์ต๋๋ค. - setockopt() ๋ฐ getsockopt() ์์คํ ํธ์ถ์ BPF ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ฌํ ํธ์ถ์ ๊ณ ์ ํ ์ก์ธ์ค ํธ๋ค๋ฌ๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ๋ํ ๊ฐ RTT ๊ฐ๊ฒฉ(์๋ณต ์๊ฐ, ํ ์๊ฐ)์ ๋ํด ํ ๋ฒ์ฉ BPF ํ๋ก๊ทธ๋จ์ ๋ํ ํธ์ถ์ ๊ตฌ์ฑํ ์ ์๋ ์๋ก์ด ํธ์ถ ์ง์ (ํํฌ)์ด ์ถ๊ฐ๋์์ต๋๋ค.
- IPv4 ๋ฐ IPv6์ ๊ฒฝ์ฐ
์ถ๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ ํ์ฅ์ฑ์ ๋์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์๋ก์ด Nexthop ๋ผ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ํ ์คํธ์ ๋ฐ๋ฅด๋ฉด ์ ์์คํ ์ ์ฌ์ฉํ ๋ ๋จ 743์ด ๋ง์ 4.3๊ฐ์ ๊ฒฝ๋ก ์ธํธ๊ฐ ์ปค๋์ ๋ก๋๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. - ๋ธ๋ฃจํฌ์ค์ ๊ฒฝ์ฐ
๊ตฌํ LE ping์ ์ง์ํ๋ ๋ฐ ํ์ํ ๊ธฐ๋ฅ
- ์ด์ ์๋ ์ฌ์ฉํ ์ ์์๋ 4/0.0.0.0 ๋ฒ์์ IPv8 ์ฃผ์ ์ฒ๋ฆฌ๊ฐ ํ์ฑํ๋์์ต๋๋ค. ์ด ์๋ธ๋ท ์๊ฐ
- ะะฑะพััะดะพะฒะฐะฝะธะต
-
์ถ๊ฐ๋จ ํ์ฌ์ x86 ํธํ ํ๋ก์ธ์ ์ง์์ ์ค์ , VIA Technologies์ ์ํ์ด ์ง์์ฒด ๊ฐ์ ๊ณต๋ ํ๋ก์ ํธ์ ๊ฒฐ๊ณผ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. ZX CPU ์ ํ๊ตฐ์ x86-64 Isaiah ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์ด ๊ธฐ์ ๊ฐ๋ฐ์ ๊ณ์ํ๊ณ ์์ต๋๋ค.๋น์ ์ผํ์ฐ๋ฅด ; - DRM(Direct Rendering Manager) ํ์ ์์คํ ๊ณผ amdgpu ๋ฐ i915 ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ์๋ HDMI ํฌํธ๋ฅผ ํตํด HDR(High Dynamic Range) ๋ฉํ๋ฐ์ดํฐ ๊ตฌ๋ฌธ ๋ถ์, ์ฒ๋ฆฌ ๋ฐ ์ ์ก์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์ด HDR ํจ๋ ๋ฐ ํ๋ฉด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ถ๊ฐ ๋ฐ๊ธฐ ๋ฒ์ ํ์ ;
- amdgpu ๋๋ผ์ด๋ฒ๋ ๊ธฐ๋ณธ ๋๋ผ์ด๋ฒ, ํ๋ฉด ์ํธ ์์ฉ ์ฝ๋(DCN5700), GFX ๋ฐ ์ปดํจํ
์ง์(GFX2)์ ํฌํจํ๋ AMD NAVI GPU(RX10)์ ๋ํ ์ด๊ธฐ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
SDMA 5(์์คํ DMA0), ์ ์ ๊ด๋ฆฌ ๋ฐ ๋ฉํฐ๋ฏธ๋์ด ์ธ์ฝ๋/๋์ฝ๋(VCN2). amdgpu๋ ๋ํ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ Vega12 ๋ฐ Vega20 GPU ๊ธฐ๋ฐ ์นด๋์ ๋ํ ์ง์์ ๊ฐ์ ํฉ๋๋ค. - amdkfd ๋๋ผ์ด๋ฒ์ VegaM GPU ๊ธฐ๋ฐ ์นด๋์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค(Fiji, Tonga, Polaris์ ๊ฐ์ ๊ฐ๋ณ GPU์ฉ).
- Icelake ์นฉ์ฉ Intel ๋น๋์ค ์นด๋์ฉ DRM ๋๋ผ์ด๋ฒ
๊ตฌํ ์๋ก์ด ๋ค์ค ์ธ๊ทธ๋จผํธ ๊ฐ๋ง ๋ณด์ ๋ชจ๋. YCbCr4:2:0 ํ์์ผ๋ก DisplayPort๋ฅผ ํตํด ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ก์ด ํ์จ์ด๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.๊ตฌC SKL, BXT, KBL, GLK ๋ฐ ICL์ฉ. ๋น๋๊ธฐ ๋ชจ๋์์ ํ๋ฉด ์ ์์ ๋๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค.์ถ๊ฐ๋จ Ironlake(gen5) ๋ฐ gen4(Broadwater - Cantiga) ์นฉ์ ๋ํ ๋ ๋๋ง ์ปจํ ์คํธ ์ ์ฅ ๋ฐ ๋ณต์์ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ ๋ฐฐ์น ์์ ์์ ๋ค๋ฅธ ๋ฐฐ์น ์์ ์ผ๋ก ์ด๋ํ ๋ ์ฌ์ฉ์ ๊ณต๊ฐ์์ GPU ์ํ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค. - Nouveau ๋๋ผ์ด๋ฒ๋ NVIDIA Turing TU116 ์นฉ์ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ARM Komeda ํ๋ฉด ๊ฐ์๊ธฐ(Mali D71)์ฉ DRM/KMS ๋๋ผ์ด๋ฒ์ ๊ธฐ๋ฅ์ด ํ์ฅ๋์์ผ๋ฉฐ, ์ค์ผ์ผ๋ง, ๋ถํ /๋ณํฉ ๋ ์ด์ด, ํ์ , ์ง์ฐ๋ ์ฐ๊ธฐ, AFBC, SMMU ๋ฐ ์์ ์ธ์ฝ๋ฉ ํ์ Y0L2, P010, YUV420_8/10BIT๊ฐ ์ง์๋ฉ๋๋ค. ์ถ๊ฐ๋์์ต๋๋ค;
- MSM ๋๋ผ์ด๋ฒ๋ Qualcomm ํ๋ก์ธ์์ ์ฌ์ฉ๋๋ A540 GPU Adreno ์๋ฆฌ์ฆ์ ๋ํ ์ง์๊ณผ Snapdragon 8998์ฉ MSM835 DSI ์ปจํธ๋กค๋ฌ์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
- LCD ํจ๋ Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS์ฉ ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 ๋ฐ VXT VL050-8048NT-C01; -
์ถ๊ฐ๋จ ๋์ฝ๋ฉ ๊ฐ์ ๋๊ตฌ๋ฅผ ํ์ฑํํ๊ธฐ ์ํ ๋๋ผ์ด๋ฒ
Amlogic Meson SoC์์ ์ ๊ณต๋๋ ๋น๋์ค; - v3d ๋๋ผ์ด๋ฒ(Raspberry Pi์ ์ฌ์ฉ๋๋ Broadcom Video Core V GPU์ฉ)๊ฐ ๋ํ๋ฌ์ต๋๋ค.
์ง์ ์ปดํจํ ์ ฐ์ด๋ ํ๊ฒฌ; -
์ถ๊ฐ๋จ ์ต์ Apple MacBook ๋ฐ MacBookPro ๋ ธํธ๋ถ ๋ชจ๋ธ์ ์ฌ์ฉ๋๋ SPI ํค๋ณด๋ ๋ฐ ํธ๋ํจ๋์ฉ ๋๋ผ์ด๋ฒ; -
์ถ๊ฐ๋จ ํ๋กํผ ๋๋ผ์ด๋ฒ์ ๊ด๋ จ๋ ioctl ํธ์ถ์ ๋ํ ์ถ๊ฐ ๋ณดํธ ๋ฐ ๋๋ผ์ด๋ฒ ์์ฒด๋ ์ ์ง ๊ด๋ฆฌ๋์ง ์์ ๊ฒ์ผ๋ก ํ์๋ฉ๋๋ค.
(โ๊ณ ์โ) ์ด๋ ํ ์คํธ ์ข ๋ฃ๋ฅผ ์๋ฏธํฉ๋๋ค. ๋๋ผ์ด๋ฒ๋ ์ฌ์ ํ ์ปค๋์ ์ ์ฅ๋์ด ์์ง๋ง ์ฌ๋ฐ๋ฅธ ์๋์ ๋ณด์ฅ๋์ง ์์ต๋๋ค. ํ ์คํธ๋ฅผ ์ํด ์๋ํ๋ ์ฅ๋น๋ฅผ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ผ์ด๋ฒ๋ ์ค๋๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ์ ๋ชจ๋ ์ธ๋ถ ๋๋ผ์ด๋ธ๋ USB ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. -
์ถ๊ฐ๋จ ํ๋ก์ธ์ ์ฃผํ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ์ผ๋ก ์ ์ดํ ์ ์๋ Raspberry Pi ๋ณด๋์ฉ cpufreq ๋๋ผ์ด๋ฒ - ์๋ก์ด ARM SoC Mediatek mt8183(4x Cortex-A73 + 4x Cortex-A53), TI J721E(2x Cortex-A72 + 3x Cortex-R5F + 3 DSP + MMA) ๋ฐ Amlogic G12B(4x Cortex-A73 + 2x Cortex- A53 ) ๋ฐ ๋ณด๋:
-
ํจ๋ฆฌ์ฆ ๋ฆฌ๋ธ๋ 5 , - ์ด์คํผ๋ BMC,
- ๋ง์ดํฌ๋ก์ํํธ ์ฌ๋ฆผํธ์ค BMC,
- ์ฝํธ๋ก SMARC,
- ๋ ธ๋ธํ ๋ฏธ์ด์บฃ96(i.MX7),
- ST ๋ง์ดํฌ๋ก ์ด๋ฒค์ ธ96,
- ๊ตฌ๊ธ ์ฒด์(ํ์ปด SDM845),
- ํ์ปด ๋๋๊ณค๋ณด๋ 845c(ํ์ปด SDM845),
- ํ๊ทธ์ X99 TV ๋ฐ์ค(Rockchip RK3399),
- Khadas Edge/Edge-V/Captain(Rockchip RK3399),
- ํ์ดํธํ RZ/G2M,
- NXP LS1021A-TSN.
-
-
๋์์ ๋ผํด ์๋ฉ๋ฆฌ์นด ์์ ์ํํธ์จ์ด ์ฌ๋จ(Latin American Free Software Foundation)
ะฒะฐัะธะฐะฝั
๋๋ผ์ด๋ฒ ๋ฐ ํ์ ์์คํ
amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, skylake์ฉ ์ฌ์ด๋ ๋๋ผ์ด๋ฒ ๋ฐ ๋ง์ดํฌ๋ก์ฝ๋ ๋ฌธ์์ Blob ์ ๋ฆฌ ์ฝ๋๊ฐ ์
๋ฐ์ดํธ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru