๋ ๋ฌ ๊ฐ์ ๊ฐ๋ฐ ๋์ Linus Torvalds๋
์ ๋ฒ์ ์๋ 15033๋ช
์ ๊ฐ๋ฐ์๊ฐ ์์ ํ 1961๊ฐ์ ์์ ์ฌํญ์ด ํฌํจ๋์ด ์์ต๋๋ค.
ํจ์น ํฌ๊ธฐ - 39MB(๋ณ๊ฒฝ ์ฌํญ์ด 11590๊ฐ ํ์ผ์ ์ํฅ์ ๋ฏธ์น๊ณ 570560์ค์ ์ฝ๋๊ฐ ์ถ๊ฐ๋จ,
297401๊ฐ ํ์ด ์ ๊ฑฐ๋์์ต๋๋ค.) 41์ ์ ์๋ ์ ์ฒด ๋ด์ฉ์ ์ฝ 5.7%
๋ณ๊ฒฝ ์ฌํญ์ ์ฅ์น ๋๋ผ์ด๋ฒ์ ๊ด๋ จ๋์ด ์์ผ๋ฉฐ ๋ณ๊ฒฝ ์ฌํญ ์ค ์ฝ 16%๋
ํ๋์จ์ด ์ํคํ
์ฒ ๊ด๋ จ ์ฝ๋ ์
๋ฐ์ดํธ์ ๋ํ ํ๋, 13%
๋คํธ์ํฌ ์คํ ๊ด๋ จ, ํ์ผ ์์คํ
๊ด๋ จ 4%, ๋ด๋ถ ๊ด๋ จ 4%
์ปค๋ ํ์ ์์คํ
.
- ๋์คํฌ ํ์ ์์คํ
, I/O ๋ฐ ํ์ผ ์์คํ
- ์๋ก์ด exFAT ๋๋ผ์ด๋ฒ ๊ตฌํ์ด ์ถ๊ฐ๋์์ต๋๋ค.
์ค๋ฆฝ ์ผ์ฑ์ด ์๋๋ก์ด๋ ์ค๋งํธํฐ์ฉ์ผ๋ก ๊ฐ๋ฐํ ์ต์ "sdfat"(2.x) ์ฝ๋ ๊ธฐ๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด์ ์ ์ปค๋์ ์ถ๊ฐ๋ ๋๋ผ์ด๋ฒ๋ ๊ธฐ์กด Samsung ์ฝ๋(๋ฒ์ 1.2.9)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ผ๋ฉฐ ์ฑ๋ฅ์ด ์ ๋๋ผ์ด๋ฒ๋ณด๋ค ์ฝ 10% ์ ๋ ๋ค์ก์ต๋๋ค. Microsoft ์ดํ ์ปค๋์ exFAT ์ง์์ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก์์ ๊ธฐ์ตํด ๋ด ์๋ค.ะพะฟัะฑะปะธะบะพะฒะฐะปะฐ ๊ณต๊ฐ ์ฌ์ ๋ฐ exFAT ํนํ๋ฅผ Linux์์ ๋ก์ดํฐ ์์ด ์ฌ์ฉํ ์ ์๋๋ก ํ์ต๋๋ค. - Btrfs๋ ์๋ณ์๋ก ํ์ ์น์ ์ ์ญ์ ํ ์ ์๋ ์๋ก์ด ioctl() ๋ช ๋ น์ธ BTRFS_IOC_SNAP_DESTROY_V2๋ฅผ ๊ตฌํํฉ๋๋ค. ์ธ๋ผ์ธ ๋ฒ์ ๋ณต์ ๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํฉ๋๋ค. ์ฌ๋ฐฐํฌ ์์ ์ทจ์ ์ง์ ์ด ํ๋๋์ด '์์ก ์ทจ์' ๋ช ๋ น ์คํ ์ ์ค๋ ๋๊ธฐ ์๊ฐ์ด ๋จ์ถ๋์์ต๋๋ค. ๋ฒ์์ ๋ํ ๋ฐฑ๋งํฌ ๊ฒฐ์ ์ด ๊ฐ์ํ๋์์ต๋๋ค(์: ํ ์คํธ ์คํฌ๋ฆฝํธ ์คํ ์๊ฐ์ด XNUMX์๊ฐ์์ ๋ช ๋ถ์ผ๋ก ๋จ์ถ๋์์ต๋๋ค). ํธ๋ฆฌ์ ๊ฐ inode์ ํ์ผ ๋ฒ์๋ฅผ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ํ์ ํํฐ์ ์ ์ธ ๋์ NOCOW๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉ๋๋ ์ฐจ๋จ ์ฒด๊ณ๊ฐ ๋ค์ ์ค๊ณ๋์์ต๋๋ค. ๋ฒ์์ ๋ํ fsync ์คํ ํจ์จ์ฑ์ด ํฅ์๋์์ต๋๋ค.
- XFS์๋ ํ์ฑ ํํฐ์ ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ ๊ฒ์ฌ ๋ฐ fsck๊ฐ ํฅ์๋์์ต๋๋ค. btree ๊ตฌ์กฐ๋ฅผ ์ฌ๊ตฌ์ถํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ์๋์์ผ๋ฉฐ, ์ด๋ ํฅํ xfs_repair๋ฅผ ์ฌ์์ ํ๊ณ ํํฐ์ ์ ๋ง์ดํธ ํด์ ํ์ง ์๊ณ ๋ ๋ณต๊ตฌ ๊ฐ๋ฅ์ฑ์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋ ๊ฒ์ ๋๋ค.
- SMB3 ์ ์ฅ์์ ์ค์ ํํฐ์ ์ ๋ฐฐ์นํ๊ธฐ ์ํ ์คํ์ ์ง์์ด CIFS์ ์ถ๊ฐ๋์์ต๋๋ค. SMB3.1.1 ์ฌ์์ ์ ์๋ readdir์ ๋ํ POSIX ํ์ฅ์ ๊ตฌํํ์ต๋๋ค. ์บ์=์๊ฒฉ ๋ชจ๋๊ฐ ํ์ฑํ๋๊ณ ํ๋กํ ์ฝ ๋ฒ์ 64 ์ด์์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ 2.1KB ํ์ด์ง์ ๋ํ ์ฐ๊ธฐ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค.
- FS EXT4๋ bmap ๋ฐ iopoll์์ iomap์ ์ฌ์ฉํ๋๋ก ์ด์ ๋์์ต๋๋ค.
- F2FS๋ zstd ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์์ถ์ ๋ํ ์ ํ์ ์ง์์ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก LZ4 ์๊ณ ๋ฆฌ์ฆ์ด ์์ถ์ ์ฌ์ฉ๋ฉ๋๋ค. "chattr -c commit" ๋ช ๋ น์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ฅ์ฐฉ ์๊ฐ ํ์๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์์ถ๋ ๋ธ๋ก ์์ ๋ํ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด ioctl F2FS_IOC_GET_COMPRESS_BLOCKS๋ฅผ ์ถ๊ฐํ์ต๋๋ค. statx๋ฅผ ํตํ ์์ถ ๋ฐ์ดํฐ ์ถ๋ ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Ceph ํ์ผ ์์คํ ์๋ ์๋ฒ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ (๋น๋๊ธฐ ๋ชจ๋์์ ์๋) ํ์ผ ์์ฑ ๋ฐ ์ญ์ ์์ (๋งํฌ ํด์ )์ ๋ก์ปฌ์์ ์ํํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ฌํ ๋ณ๊ฒฝ์ผ๋ก ์ธํด rsync ์ ํธ๋ฆฌํฐ๋ฅผ ์คํํ ๋ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋ ์ ์์ต๋๋ค.
- virtiofs๋ฅผ ์ต์์ ํ์ผ ์์คํ ์ผ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด OVERLAYFS์ ์ถ๊ฐ๋์์ต๋๋ค.
-
์ฌ์์ฑ VFS์ ๊ฒฝ๋ก ํ์ ์ฝ๋, ์ฌ๋ณผ๋ฆญ ๋งํฌ ๊ตฌ๋ฌธ ๋ถ์ ์ฝ๋๊ฐ ์ฌ์์ ๋์์ผ๋ฉฐ ๋ง์ดํธ ์ง์ ํ์์ด ํตํฉ๋์์ต๋๋ค. - scsi ํ์ ์์คํ
์์ ๊ถํ ์๋ ์ฌ์ฉ์์๊ฒ
ํ์ฉ ๋ ZBC ๋ช ๋ น ์คํ. - dm_writecache์์
๊ตฌํ ๋ธ๋ก์ ์ต๋ ์๋ช ์ ์ค์ ํ๋ max_age ๋งค๊ฐ๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์บ์๋ฅผ ์ ์ง์ ์ผ๋ก ์ง์ฐ๋ ๊ธฐ๋ฅ. - dm_integrity์์
์ถ๊ฐ "ํ๊ธฐ" ์์ ์ ์ง์ํฉ๋๋ค. - null_blk์์
์ถ๊ฐ ํ ์คํธ ์ค ์คํจ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํ ์ค๋ฅ ๋์ฒด ์ง์. -
์ถ๊ฐ๋จ ๋ธ๋ก ์ฅ์น ํฌ๊ธฐ ๋ณ๊ฒฝ์ ๋ํ udev ์๋ฆผ์ ๋ณด๋ด๋ ๊ธฐ๋ฅ.
- ์๋ก์ด exFAT ๋๋ผ์ด๋ฒ ๊ตฌํ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋คํธ์ํฌ ํ์ ์์คํ
- ๋ทํํฐ ํฌํจ
๋ณ๊ฒฝ , ์๋ธ๋ท, ๋คํธ์ํฌ ํฌํธ, ํ๋กํ ์ฝ ๋ฐ MAC ์ฃผ์์ ์กฐํฉ์ ํ์ธํด์ผ ํ๋ ๋๊ท๋ชจ ์ผ์น ๋ชฉ๋ก(nftables ์ธํธ)์ ์ฒ๋ฆฌ ์๋๊ฐ ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
์ต์ ํ์ ๋ ฅ IP ๋ฐ ๋คํธ์ํฌ ํฌํธ ๋ฒ์(nft_set_rbtree ๋ฐ nft_set_hash)์ ๊ฐ์ ํํฐ๋ง ๊ท์น์ ์ฌ์ฉ๋๋ ์์ ํ๋ ์ํ ๋ฒ์์ ํจํท์ ๋ด์ฉ์ ์ผ์น์ํค๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ nft_set_pipapo(PIle PAcket POlicies) ๋ชจ๋์ ํฌํจ๋ฉ๋๋ค. ๊ฐ๊ฒฉ ์ผ์น ๋ฐ ๊ฐ์ ์ง์ ๋ฐ์์ ์กฐ์ํฉ๋๋ค. ). AMD Epyc 256 ํ๋ก์ธ์๊ฐ ์ฅ์ฐฉ๋ ์์คํ ์์ 2๋นํธ AVX7402 ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ฒกํฐํ๋ pipapo ๋ฒ์ ์ ํฌํธ ํ๋กํ ์ฝ ์กฐํฉ์ ํฌํจํ์ฌ 420๊ฐ์ ๋ ์ฝ๋๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ๋ 30%์ ์ฑ๋ฅ ํฅ์์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. 1000๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ถ์ํ ๋ ์๋ธ๋ท๊ณผ ํฌํธ ๋ฒํธ์ ์กฐํฉ์ ๋น๊ตํ์ ๋ ์ฆ๊ฐ์จ์ IPv87์ ๊ฒฝ์ฐ 4%, IPv128์ ๊ฒฝ์ฐ 6%์์ต๋๋ค. -
์ถ๊ฐ๋จ MPLS, IP ๋ฐ NSH์ ๊ฐ์ ๋ค์ํ L3 ํ๋กํ ์ฝ์ UDP ํฐ๋๋ก ์บก์ํํ ์ ์๋ bareudp ๋ชจ๋. - ์๋ก ๋ค๋ฅธ IP ์ฃผ์์ ์ฐ๊ฒฐ๋ ์๋ก ๋ค๋ฅธ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋์์ ํจํท์ ์ ๋ฌํ๋ TCP ์ฐ๊ฒฐ ์์ ์ ๊ตฌ์ฑํ๊ธฐ ์ํ TCP ํ๋กํ ์ฝ์ ํ์ฅ์ธ MPTCP(MultiPath TCP) ๊ตฌ์ฑ ์์์ ํตํฉ์ด ๊ณ์๋์์ต๋๋ค.
-
์ถ๊ฐ๋จ 802.11(Wi-Fi)์์ ์ด๋๋ท ํ๋ ์์ ์บก์ํํ๊ธฐ ์ํ ํ๋์จ์ด ๊ฐ์ ๋ฉ์ปค๋์ฆ์ ์ง์ํฉ๋๋ค. - ์ฅ์น๋ฅผ ํ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค์์ ๋ค๋ฅธ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค๋ก ์ด๋ํ๋ฉด sysfs์ ์๋ ํด๋น ํ์ผ์ ์ก์ธ์ค ๊ถํ๊ณผ ์์ ๊ถ์ด ์กฐ์ ๋ฉ๋๋ค.
- ๋ฃจํธ๊ฐ ์๋ ์ฌ์ฉ์์ ๋ํด SO_BINDTODEVICE ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํจ์น์ ์ธ ๋ฒ์งธ ๋ถ๋ถ์ด ์น์ธ๋์ด ethtool ํดํท์ ioctl()์์ netlink ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณํํ์ต๋๋ค. ์๋ก์ด ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฅ์ ๋ ์ฝ๊ฒ ์ถ๊ฐํ๊ณ , ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ๊ณ , ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์๋ฆผ์ ๋ณด๋ผ ์ ์์ผ๋ฉฐ, ์ปค๋๊ณผ ์ฌ์ฉ์ ๊ณต๊ฐ ๊ฐ์ ์ํธ ์์ฉ์ ๋จ์ํํ๊ณ , ๋๊ธฐํํด์ผ ํ๋ ๋ช ๋ช ๋ ๋ชฉ๋ก์ ์๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
- ํน์ ํ๋์จ์ด ๊ฐ์๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ ์ถ์ ์์ ์ ์ํํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ทํํฐ์์
์ถ๊ฐ ๋ค์ด์ค๋ ํจํท(์์ )์ ๋ํด ์ด์ ์ ์กด์ฌํ๋ ํํฌ๋ฅผ ๋ณด์ํ ๋๊ฐ๋ ํจํท(์ก์ )์ ๋ถ๋ฅ์๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํ ํํฌ์ ๋๋ค.
- ๋ทํํฐ ํฌํจ
- ๊ฐ์ํ ๋ฐ ๋ณด์
- ํฌ์ธํฐ ์ธ์ฆ์ ํ๋์จ์ด ๊ตฌํ์ด ์ถ๊ฐ๋์์ต๋๋ค(
ํฌ์ธํฐ ์ธ์ฆ ), ์ด๋ ๋ฐํ ์งํฅ ํ๋ก๊ทธ๋๋ฐ(ROP) ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ํน์ ARM64 CPU ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค. ์ด ๊ธฐ์ ์์๋ ๊ณต๊ฒฉ์๊ฐ ์์ ์ ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์นํ๋ ค๊ณ ์๋ํ์ง ์๊ณ ๋ก๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ฏธ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๊ณ ๋ช ๋ น ์กฐ๊ฐ์ ์ฌ์ฉํ์ฌ ์๋ํฉ๋๋ค. ์ ์ด ๋ณต๊ท ๋ช ๋ น์ผ๋ก. ๋ณด์์ ์ปค๋ ์์ค์์ ๋ฐํ ์ฃผ์๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋์งํธ ์๋ช ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค. ์๋ช ์ ํฌ์ธํฐ ์์ฒด์ ์ฌ์ฉ๋์ง ์์ ์ต์์ ๋นํธ์ ์ ์ฅ๋ฉ๋๋ค. ์ํํธ์จ์ด ๊ตฌํ๊ณผ ๋ฌ๋ฆฌ ๋์งํธ ์๋ช ์ ์์ฑ ๋ฐ ํ์ธ์ ํน์ CPU ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. -
์ถ๊ฐ๋จ ์ฌ์ฉ์ ๊ณต๊ฐ์์ ํ์ด์ง ์ค๋ฅ(ํ ๋น๋์ง ์์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์ ๋ํ ์ก์ธ์ค)๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋ userfaultfd() ์์คํ ํธ์ถ์ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฐ๊ธฐ๋ฅผ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์์ด๋์ด๋ userfaultfd()๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ธฐ ๊ธ์ง๋ก ํ์๋ ํ์ด์ง์ ๋ํ ์ก์ธ์ค ์๋ฐ์ ๊ฐ์งํ๊ณ ์ด๋ฌํ ์ฐ๊ธฐ ์๋์ ์๋ตํ ์ ์๋ ํธ๋ค๋ฌ๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๋๋ค(์: ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋ผ์ด๋ธ ์ค๋ ์ท ์์ฑ ์ค ๋ณ๊ฒฝ ์ฌํญ ์ฒ๋ฆฌ, ์ํ ๋ฉ๋ชจ๋ฆฌ ๋คํ๋ฅผ ๋์คํฌ์ ๋คํํ ๋ ์บก์ฒ, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌํ, ๋ฉ๋ชจ๋ฆฌ ๋ณ๊ฒฝ ์ฌํญ ์ถ์ ). ๊ธฐ๋ฅ์ฑ๋๋ฑํ SIGSEGV ์ ํธ ์ฒ๋ฆฌ๊ธฐ์ ํจ๊ป mprotect()๋ฅผ ์ฌ์ฉํ์ง๋ง ๋์ ๋๊ฒ ๋ ๋น ๋ฅด๊ฒ ์๋ํฉ๋๋ค. - SELinux์์๋ ๊ท์น์ ์ฒ๋ฆฌํ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ ๊ฒ์ฌ๋ฅผ ๋นํ์ฑํํ ์ ์๋ "checkreqprot" ๋งค๊ฐ๋ณ์๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ต๋๋ค(๊ท์น์ ์ง์ ๋ ๊ท์น์ ๊ด๊ณ์์ด ์คํ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ฌ์ฉ ํ์ฉ). Kernfs ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ์์ ๋๋ ํ ๋ฆฌ์ ์ปจํ ์คํธ๋ฅผ ์์๋ฐ์ ์ ์์ต๋๋ค.
- ๊ตฌ์กฐ
ํฌํจ๋จ ๋ชจ๋KRSI , ์ปค๋์ ๋ชจ๋ LSM ํํฌ์ BPF ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ ํตํด BPF ํ๋ก๊ทธ๋จ ํํ๋ก LSM ๋ชจ๋(Linux ๋ณด์ ๋ชจ๋)์ ์์ฑํ์ฌ ๊ฐ์ฌ ๋ฌธ์ ๋ฐ ํ์ ์ก์ธ์ค ์ ์ด๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. -
์ค์ RNG ๋ช ๋ น์ด๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ํธ์ถํ๋ ๋์ CRNG ๊ฐ์ ์ผ๊ด ์ฒ๋ฆฌํ์ฌ /dev/random์ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค. RNG ๋ช ๋ น์ ์ ๊ณตํ๋ ARM64 ์์คํ ์์ getrandom ๋ฐ /dev/random์ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค. - ํ์ ๊ณก์ ๊ตฌํ Curve25519
๊ต์ฒด๋จ ๋์๊ด์ ์ต์ HACL , ์ด๋ฅผ ์ํด์ฃผ์ด์ง ๊ณต์์ ์ธ ์ ๋ขฐ์ฑ ๊ฒ์ฆ์ ์ํ์ ์ฆ๋ช . -
์ถ๊ฐ๋จ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์ ๋ํด ์๋ฆฌ๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๊ฒ์คํธ ์์คํ ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ํธ์คํธ ์์คํ ์ ์ ์กํ ์ ์์ผ๋ฉฐ ํธ์คํธ๋ ํ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. - vfio/pci์์
์ถ๊ฐ SR-IOV(๋จ์ผ ๋ฃจํธ I/O ๊ฐ์ํ)๋ฅผ ์ง์ํฉ๋๋ค.
- ํฌ์ธํฐ ์ธ์ฆ์ ํ๋์จ์ด ๊ตฌํ์ด ์ถ๊ฐ๋์์ต๋๋ค(
- ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์์คํ
์๋น์ค
- 80~100์
์ฆ๊ฐ ์์ค ํ ์คํธ์ ์ต๋ ์ค ๊ธธ์ด์ ๋ํ ์ ํ. ๋์์ ๊ฐ๋ฐ์๋ ํ ์ค์ 80์ ์ด๋ด๋ฅผ ์ ์งํ๋ ๊ฒ์ด ๊ถ์ฅ๋์ง๋ง ์ด๋ ๋ ์ด์ ์๊ฒฉํ ์ ํ์ด ์๋๋๋ค. ๋ํ ๋ผ์ธ ํฌ๊ธฐ ์ ํ์ ์ด๊ณผํ๋ฉด checkpatch๊ฐ '--strict' ์ต์ ๊ณผ ํจ๊ป ์คํ๋๋ ๊ฒฝ์ฐ์๋ง ๋น๋ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ๋ณํ๋ก ์ธํด ๊ฐ๋ฐ์์ ์ฃผ์๊ฐ ์ฐ๋งํด์ง์ง ์๋๋ก ํ ์ ์์ต๋๋ค.์์ฅ ์กฐ์ ๊ณต๋ฐฑ์ด ์์ด์ ์ฝ๋ ์ ๋ ฌ์ด ๋ ์์ ๋ก์์ง๊ณ ,๋ฐฉ์งํ ๊ฒ์ด๋ค ๊ณผ๋ํ ์ค๋ฐ๊ฟ,๋ฐฉํดํ๋ ์ฝ๋ ์ดํด ๋ฐ ๊ฒ์. -
์ถ๊ฐ๋จ ํน์ํ ๋ถํธ๋ก๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ 64๋นํธ CPU์์ ์คํ๋๋ 32๋นํธ ํ์จ์ด์์ 64๋นํธ ์ปค๋์ ๋ก๋ํ ์ ์๋ EFI ํผํฉ ๋ถํ ๋ชจ๋๋ฅผ ์ง์ํฉ๋๋ค. -
ํ์ฑํ๋จ ๋ถํ ์ ๊ธ์ ์๋ณํ๊ณ ๋๋ฒ๊น ํ๊ธฐ ์ํ ์์คํ (โ๋ถํ ์ ๊ธ ")๋ ์์ ๋ช ๋ น์ ์คํํ ๋ ๋ฐ์ดํฐ๊ฐ ๋ ๊ฐ์ CPU ์บ์ ๋ผ์ธ์ ํต๊ณผํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ ๋ ฌ๋์ง ์์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ์ฐจ๋จ์ผ๋ก ์ธํด ์๋นํ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํฉ๋๋ค(ํ๋์ ์บ์ ๋ผ์ธ์ ์ํ๋ ๋ฐ์ดํฐ์ ๋ํ ์์์ ์์ ๋ณด๋ค 1000์ฃผ๊ธฐ ๋๋ฆผ). "split_lock_Detect" ๋ถํ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ์ปค๋์ ์ด๋ฌํ ์ ๊ธ์ ์ฆ์ ๊ฐ์งํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ๋ฐํํ๊ฑฐ๋ ์ ๊ธ์ ์ ๋ฐํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ SIGBUS ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค. - ์์
์ค์ผ์ค๋ฌ๋ ์จ๋ ์ผ์ ์ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค(
์ด์๋ ฅ ) ์์ ์ ๋ฐฐ์นํ ๋ ๊ณผ์ด์ ๊ณ ๋ คํ์ฌ ๊ตฌํ๋์์ต๋๋ค. ์ ๊ณต๋ ํต๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๊ฑฐ๋ฒ๋๋ ๊ณผ์ด ์ ์ต๋ CPU ์ฃผํ์๋ฅผ ์กฐ์ ํ ์ ์์ผ๋ฉฐ ์์ ์ค์ผ์ค๋ฌ๋ ์ด์ ์คํํ ์์ ์ ์์ฝํ ๋ ๋น๋ ๊ฐ์๋ก ์ธํ ์ปดํจํ ์ฑ๋ฅ ๊ฐ์๋ฅผ ๊ณ ๋ คํฉ๋๋ค(์ด์ ์๋ ์ค์ผ์ค๋ฌ๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ตํ์ต๋๋ค). ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํจํ ๋ฆฌ์์ค์ ๋ํ ๊ณผ์ฅ๋ ๊ฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋์ ํน์ ์ง์ฐ์ด ๋ฐ์ํ๋ ๋น๋). - ์์
์ค์ผ์ค๋ฌ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
๋ถ๋ณ ์งํ ๋ก๋ ์ถ์ ์ ํตํด ํ์ฌ CPU ์๋ ๋น๋์ ๊ด๊ณ์์ด ๋ก๋๋ฅผ ์ ํํ๊ฒ ์์ธกํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ ํตํด ์ ์ ๋ฐ CPU ์ฃผํ์์ ๋์ ๋ณํ ์กฐ๊ฑด์์ ์์ ๋์์ ๋ณด๋ค ์ ํํ๊ฒ ์์ธกํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 1MHz์์ CPU ๋ฆฌ์์ค์ 3/1000์ ์๋นํ ์์ ์ ์ฃผํ์๊ฐ 2MHz๋ก ๋จ์ด์ง๋ฉด ๋ฆฌ์์ค์ 3/500๋ฅผ ์๋นํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ์ด์ ์ ์ ์ฒด ์ฉ๋์์ ์คํ ์ค์ด๋ผ๋ ์๋ชป๋ ๊ฐ์ ์ ๋ง๋ค์์ต๋๋ค. ๋น๋๋ฅผ ์ค์ฌ ์ค์ผ์ค๋ฌ์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ฉด schedutil cpufreq ๊ด๋ฆฌ์์์ ์๋ชป๋ ๊ฒฐ์ ์ด ๋ด๋ ค์ง๊ฒ ๋ฉ๋๋ค. - ์ฑ๋ฅ ๋ชจ๋ ์ ํ์ ๋ด๋นํ๋ Intel P-state ๋๋ผ์ด๋ฒ๊ฐ ๋ค์์ ์ฌ์ฉํ๋๋ก ์ ํ๋์์ต๋๋ค.
์ค์ผ์ค ์ ํธ๋ฆฌํฐ . - ์ปค๋์ด ์ค์๊ฐ์ผ๋ก ์คํ๋ ๋ BPF ํ์ ์์คํ ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ(PREEMPT_RT)์ด ๊ตฌํ๋์์ต๋๋ค. ์ด์ ์๋ PREEMPT_RT๊ฐ ํ์ฑํ๋๋ฉด BPF๋ฅผ ๋นํ์ฑํํด์ผ ํ์ต๋๋ค.
- ์๋ก์ด ์ ํ์ BPF ํ๋ก๊ทธ๋จ์ธ BPF_MODIFY_RETURN์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ ์ปค๋์ ํจ์์ ์ฐ๊ฒฐ๋์ด ์ด ํจ์์์ ๋ฐํ๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ์ถ๊ฐ๋จ
๊ธฐํ clone3() ์์คํ ํธ์ถ์ ์ฌ์ฉํ์ฌ ์์ cgroup๊ณผ ๋ค๋ฅธ cgroup์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ์์ ํ๋ก์ธ์ค๊ฐ ์ ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ฅผ ์์ฑํ ํ ์ฆ์ ์ ํ์ ์ ์ฉํ๊ณ ๊ณ์ ์ ํ์ฑํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋น์ค ๊ด๋ฆฌ์๋ ๋ณ๋์ cgroup์ ์ ์๋น์ค๋ฅผ ์ง์ ํ ๋นํ ์ ์์ผ๋ฉฐ, "๋๊ฒฐ๋" cgroup์ ๋ฐฐ์น๋ ์ ํ๋ก์ธ์ค๋ ์ฆ์ ์ค์ง๋ฉ๋๋ค. - Kbuild์์
์ถ๊ฐ ์ปค๋์ ๋น๋ํ ๋ Clang/LLVM ํดํท์ผ๋ก ์ ํํ๊ธฐ ์ํ ํ๊ฒฝ ๋ณ์ "LLVM=1"์ ์ง์ํฉ๋๋ค. binutils ๋ฒ์ ์ ๋ํ ์๊ตฌ ์ฌํญ์ด ์ํฅ๋์์ต๋๋ค(2.23). - /sys/kernel/debug/kunit/ ์น์ ์ด kunit ํ ์คํธ ๊ฒฐ๊ณผ์ ํจ๊ป debugfs์ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ ์ ๊ด๋ฆฌ ์์คํ ์๋์ ๋ํ ๋๋ฒ๊ทธ ์ ๋ณด ์ถ๋ ฅ์ ํ์ฑํํ๋ ์ปค๋ ๋ถํ ๋งค๊ฐ๋ณ์ pm_debug_messages(/sys/power/pm_debug_messages์ ์ ์ฌ)๋ฅผ ์ถ๊ฐํ์ต๋๋ค(์ต๋ ์ ์ ๋ชจ๋ ๋ฐ ๋๊ธฐ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ ๋ ์ ์ฉํจ).
- ๋น๋๊ธฐ I/O ์ธํฐํ์ด์ค๋ก
io_uring ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค์ ์ฐฉ() ะธ์์ ๋ฒํผ ์ ํ . - perf ํดํท์ ์ฌ์ฉํ์ฌ cgroup ํ๋กํ์ผ๋ง์ด ๊ฐ์ ๋์์ต๋๋ค. ์ด์ ์๋ perf๊ฐ ํน์ cgroup์ ์์
๋ง ํ๋กํ์ผ๋งํ ์ ์์๊ณ ํ์ฌ ์ํ์ด ์ํ cgroup์ ์ฐพ์ ์ ์์์ต๋๋ค. perf๋ ์ด์ ๊ฐ ์ํ์ ๋ํ cgroup ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ฏ๋ก ๋ ์ด์์ cgroup์ ํ๋กํ์ผ๋งํ๊ณ ๋ค์์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ์ ์ฉํ ์ ์์ต๋๋ค.
๋ณด๊ณ ์์ cgroup. - cgroup ๊ด๋ฆฌ๋ฅผ ์ํ ์์ฌ FS์ธ cgroupfs์๋ ํ์ฅ๋ ์์ฑ(xattrs)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์ ๊ณต๊ฐ์ ํธ๋ค๋ฌ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋จ๊ธธ ์ ์์ต๋๋ค.
- cgroup ๋ฉ๋ชจ๋ฆฌ ์ปจํธ๋กค๋ฌ์์
์ถ๊ฐ ๊ทธ๋ฃน ๊ตฌ์ฑ์์๊ฒ ์ ๊ณต๋๋ ์ต์ RAM ์์ ๊ท์ ํ๋ "memory.low" ๊ฐ์ ์ฌ๊ท์ ๋ณดํธ๋ฅผ ์ง์ํฉ๋๋ค. "memory_recursiveprot" ์ต์ ์ ์ฌ์ฉํ์ฌ cgroup ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ง์ดํธํ๋ฉด ํ์ ๋ ธ๋์ ์ค์ ๋ "memory.low" ๊ฐ์ด ๋ชจ๋ ํ์ ๋ ธ๋์ ์๋์ผ๋ก ๋ฐฐํฌ๋ฉ๋๋ค. -
์ถ๊ฐ๋จ CPU์ ์ฃผ๋ณ ์ฅ์น ๊ฐ์ ๊ฐ์ ์ฃผ์(SVA, ๊ณต์ ๊ฐ์ ์ฃผ์ ์ง์ )๋ฅผ ๊ณต์ ํ๊ธฐ ์ํ Uacce(Unified/User-space-access-intended Accelerator Framework) ํ๋ ์์ํฌ๋ฅผ ํตํด ํ๋์จ์ด ๊ฐ์๊ธฐ๊ฐ ๋ฉ์ธ CPU์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
- 80~100์
- ํ๋์จ์ด ์ํคํ
์ฒ
- ARM ์ํคํ ์ฒ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ํซํ์น ๊ธฐ๋ฅ์ด ๊ตฌํ๋ฉ๋๋ค.
- RISC-V ์ํคํ ์ฒ์ ๊ฒฝ์ฐ CPU ํซ ํ๋ฌ๊ทธ โโ๋ฐ ์ ๊ฑฐ(CPU ํซ ํ๋ฌ๊ทธ)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. 32๋นํธ RISC-V์ ๊ฒฝ์ฐ eBPF JIT๊ฐ ๊ตฌํ๋ฉ๋๋ค.
- 32๋นํธ ARM ์์คํ ์ ์ฌ์ฉํ์ฌ KVM ๊ฒ์คํธ ํ๊ฒฝ์ ์คํํ๋ ๊ธฐ๋ฅ์ด ์ ๊ฑฐ๋์์ต๋๋ค.
- ์ฑ๋ฅ ํฅ์์ ๋ฌ์ฑํ๊ธฐ ์ํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ฐ๊ฒฌ๋์ง ์์ s390 ์ํคํ ์ฒ์ ๋ํ "๋๋ฏธ" NUMA ๊ตฌํ์ ์ ๊ฑฐํ์ต๋๋ค.
- ARM64์ ๊ฒฝ์ฐ ARMv8.4์ ์ ์๋ AMU(Activity Monitors Unit) ํ์ฅ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ผ๋ฉฐ ์์ ์ค์ผ์ค๋ฌ์์ ์ฃผํ์ ์ค์ผ์ผ๋ง ์์ ์์๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฑ๋ฅ ์นด์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ะะฑะพััะดะพะฒะฐะฝะธะต
-
์ถ๊ฐ๋จ virtio ์ฌ์์ ์ค์ํ๋ ๋ฐ์ดํฐ ๊ตํ ์ฑ๋์ ์ฌ์ฉํ๋ vDPA ์ฅ์น๋ฅผ ์ง์ํฉ๋๋ค. vDPA ๋๋ฐ์ด์ค๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ฅ๋น์ด๊ฑฐ๋ ์ํํธ์จ์ด๋ก ์๋ฎฌ๋ ์ดํธ๋ ๊ฐ์ ๋๋ฐ์ด์ค์ผ ์ ์์ต๋๋ค. - GPIO ํ์ ์์คํ
์์
์ถ์ฐ ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ์๋ก์ด ioctl() ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด GPIO ๋ผ์ธ์ ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก์ธ์ค์ ์๋ฆด ์ ์์ต๋๋ค. new ๋ช ๋ น์ ์ฌ์ฉํ๋ ์์ ์ gpio-watch ์ ํธ๋ฆฌํฐ. - Intel ๋น๋์ค ์นด๋์ฉ i915 DRM ๋๋ผ์ด๋ฒ
ํฌํจ ๋ Tigerlake(โGen12โ) ์นฉ์ ๋ํ ๊ธฐ๋ณธ ์ง์๊ณผ OLED ๋ฐฑ๋ผ์ดํธ ์ ์ด์ ๋ํ ์ด๊ธฐ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. Ice Lake, Elkhart Lake, Baytrail ๋ฐ Haswell ์นฉ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. - amdgpu ๋๋ผ์ด๋ฒ์์
์ถ๊ฐ ASIC์ฉ USBC ์นฉ์ ํ์จ์ด๋ฅผ ๋ก๋ํ๋ ๊ธฐ๋ฅ. AMD Ryzen 4000 "Renoir" ์นฉ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. ์ด์ OLED ํจ๋ ์ ์ด๊ฐ ์ง์๋ฉ๋๋ค. debugfs์ ํ์จ์ด ์ํ ํ์๊ฐ ์ ๊ณต๋ฉ๋๋ค. - ๊ฒ์คํธ ์์คํ ์์ OpenGL 4๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด VMware ๊ฐ์ํ ์์คํ ์ฉ vmwgfx DRM ๋๋ผ์ด๋ฒ์ ์ถ๊ฐ๋์์ต๋๋ค(์ด์ ์๋ OpenGL 3.3์ด ์ง์๋จ).
- TI Keystone ํ๋ซํผ ๋์คํ๋ ์ด ์์คํ ์ ์ํ ์๋ก์ด DRM ๋๋ผ์ด๋ฒ tidss๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- LCD ํจ๋์ฉ ๋๋ผ์ด๋ฒ ์ถ๊ฐ: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech RK101II01D-CT, Frida FRD350H54004.
- ์ ์ ๊ด๋ฆฌ ์์คํ
์ผ๋ก
์ถ๊ฐ Atom ๊ธฐ๋ฐ Intel Jasper Lake(JSL) ํ๋ซํผ์ ์ง์ํฉ๋๋ค. - Rockchip RK3399, Pine64 PineTab ํ๋ธ๋ฆฟ ๋ฐ ์ค๋งํธํฐ ๊ธฐ๋ฐ Pinebook Pro ๋
ธํธ๋ถ์ ๋ํ ์ง์ ์ถ๊ฐ
PinePhone Allwinner A64 ๊ธฐ๋ฐ. - ์๋ก์ด ์ค๋์ค ์ฝ๋ฑ ๋ฐ ์นฉ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc. - ARM ๋ณด๋ ๋ฐ ํ๋ซํผ์ ๋ํ ์ง์ ์ถ๊ฐ Qualcomm Snapdragon 865(SM8250), IPQ6018, NXP i.MX8M Plus, Kontron "sl28", 11 i.MX6 TechNexion Pico ๋ณด๋ ์ต์ , ์ธ ๊ฐ์ง ์๋ก์ด Toradex Colibri ์ต์ , ST ๊ธฐ๋ฐ Samsung S7710 Galaxy Xcover 2 -Ericsson u8500, DH Electronics DHCOM SoM ๋ฐ PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.
-
์ถ์ฒ : opennet.ru