์ค๋ผํด ํ์ฌ
Unbreakable Enterprise Kernel 6์ ์ปค๋์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์ด์
- 64๋นํธ ARM ์ํคํ ์ฒ(aarch64) ๊ธฐ๋ฐ ์์คํ ์ ๋ํ ์ง์ ํ์ฅ.
- Cgroup v2์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ํ ์ง์์ด ๊ตฌํ๋์์ต๋๋ค.
- ktask ํ๋ ์์ํฌ๋ ์๋นํ CPU ๋ฆฌ์์ค๋ฅผ ์๋นํ๋ ์ปค๋์ ์์ ์ ๋ณ๋ ฌํํ๊ธฐ ์ํด ๊ตฌํ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ktask๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ๋ฒ์๋ฅผ ์ง์ฐ๊ฑฐ๋ inode ๋ชฉ๋ก์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์์ ์ ๋ณ๋ ฌํ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- kswapd์ ๋ณ๋ ฌ ๋ฒ์ ์ด ํฌํจ๋์ด ํ์ด์ง ์ค์์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์ง์ (๋๊ธฐ) ์ค์ ์๋ฅผ ์ค์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ์๊ฐ ๊ฐ์ํ๋ฉด kswapd๋ ์ฌ์ฉ๋์ง ์์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ๊ฒ์ํ์ฌ ํด์ ํ ์ ์์ต๋๋ค.
- Kexec ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ปค๋์ ๋ก๋ํ ๋(์ด๋ฏธ ๋ก๋๋ ์์คํ ์์ ์ปค๋ ๋ก๋) ์ปค๋ ์ด๋ฏธ์ง ๋ฐ ๋์งํธ ์๋ช ๋ ํ์จ์ด์ ๋ฌด๊ฒฐ์ฑ ํ์ธ์ ์ง์ํฉ๋๋ค.
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์คํ ์ ์ฑ๋ฅ์ด ์ต์ ํ๋๊ณ , ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์บ์ ํ์ด์ง ์ญ์ ํจ์จ์ฑ์ด ํฅ์๋์์ผ๋ฉฐ, ํ ๋น๋์ง ์์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์ ๋ํ ์ ๊ทผ(ํ์ด์ง ํดํธ) ์ฒ๋ฆฌ๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
- NVDIMM์ ๋ํ ์ง์์ด ํ์ฅ๋์ด ์ด์ ์ง์ ๋ ์๊ตฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ธฐ์กด RAM์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- DTrace 2.0 ๋์ ๋๋ฒ๊น
์์คํ
์ผ๋ก์ ์ ํ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค.
๋ฒ์ญ eBPF ์ปค๋ ํ์ ์์คํ ์ ์ฌ์ฉํฉ๋๋ค. DTrace๋ ์ด์ ๊ธฐ์กด Linux ์ถ์ ๋๊ตฌ๊ฐ eBPF ์์์ ์๋ํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ eBPF ์์์ ์คํ๋ฉ๋๋ค. - OCFS2(Oracle Cluster File System) ํ์ผ ์์คํ ์ด ๊ฐ์ ๋์์ต๋๋ค.
- Btrfs ํ์ผ ์์คํ ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. ๋ฃจํธ ํํฐ์ ์์ Btrfs๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ฅ์น๋ฅผ ํฌ๋งทํ ๋ Btrfs๋ฅผ ์ ํํ๋ ์ต์ ์ด ์ค์น ํ๋ก๊ทธ๋จ์ ์ถ๊ฐ๋์์ต๋๋ค. Btrfs๋ฅผ ์ฌ์ฉํ์ฌ ํํฐ์ ์ ํ์ด์ง ํ์ผ์ ๋ฐฐ์นํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. Btrfs๋ ZStandard ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์์ถ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
- ๋น๋๊ธฐ I/O๋ฅผ ์ํ ์ธํฐํ์ด์ค์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ I/O ํด๋ง์ ์ง์ํ๊ณ ๋ฒํผ๋ง๊ณผ ๋ฒํผ๋ง ์์ด ๋ชจ๋ ์๋ํ ์ ์๋ ๊ธฐ๋ฅ์ผ๋ก ์ฃผ๋ชฉํ ๋งํฉ๋๋ค. ์ฑ๋ฅ ์ธก๋ฉด์์ io_uring์ SPDK์ ๋งค์ฐ ์ ์ฌํ๋ฉฐ ํด๋ง์ด ํ์ฑํ๋ ๊ฒฝ์ฐ libaio๋ณด๋ค ํจ์ฌ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค. ์ฌ์ฉ์ ๊ณต๊ฐ์์ ์คํ๋๋ ์ต์ข ์ ํ๋ฆฌ์ผ์ด์ ์์ io_uring์ ์ฌ์ฉํ๊ธฐ ์ํด ์ปค๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋์ ์์ค์ ๋ฐ์ธ๋ฉ์ ์ ๊ณตํ๋ liburing ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค๋น๋์์ต๋๋ค.
- ์ถ๊ฐ๋ ๋ชจ๋ ์ง์
์๋์ํผ ๋๋ผ์ด๋ธ์ ๋น ๋ฅธ ์ํธํ๋ฅผ ์ํด. - ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์์ถ ์ง์ ์ถ๊ฐ
Z์คํ ๋ค๋ (zstd). - ext4 ํ์ผ ์์คํ ์ ์ํผ๋ธ๋ก ํ๋์ 64๋นํธ ํ์์คํฌํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- XFS์๋ ๋ฐํ์ ์ ํ์ผ ์์คํ ์ ๋ฌด๊ฒฐ์ฑ์ ๋ํด ์๋ฆฌ๊ณ ์ฆ์ fsck ์คํ ์ํ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค.
- TCP ์คํ์ ๊ธฐ๋ณธ๊ฐ์ "
์กฐ๊ธฐ ์ถ๋ฐ ์๊ฐ ํจํค์ง๋ฅผ ๋ณด๋ผ ๋ "๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ" ๋์ ". UDP์ ๋ํด GRO(์ผ๋ฐ ์์ ์คํ๋ก๋) ์ง์์ด ํ์ฑํ๋ฉ๋๋ค. ์ ๋ก ๋ณต์ฌ ๋ชจ๋์์ TCP ํจํท ์์ ๋ฐ ์ ์ก์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. - ์ปค๋ ์์ค(KTLS)์์์ TLS ํ๋กํ ์ฝ ๊ตฌํ์ด ํฌํจ๋์ด ์์ผ๋ฉฐ ์ด์ ์ ์ก๋ ๋ฐ์ดํฐ๋ฟ๋ง ์๋๋ผ ์์ ๋ ๋ฐ์ดํฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฉํ๋ฒฝ์ ๋ฐฑ์๋๋ก ํ์ฑํ๋ฉ๋๋ค.
nftables. ์ ํ์ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.bpํํฐ . - XDP(eXpress Data Path) ํ์ ์์คํ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ ์์ค์์ DMA ํจํท ๋ฒํผ์ ์ง์ ์ก์ธ์คํ ์ ์๋ ๊ธฐ๋ฅ๊ณผ ๋คํธ์ํฌ ์คํ์ด skbuff ๋ฒํผ๋ฅผ ํ ๋นํ๊ธฐ ์ ๋จ๊ณ์์ Linux์ BPF ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ต๋๋ค.
- UEFI ๋ณด์ ๋ถํ
๋ชจ๋๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ์ ๋ฐ ํ์ฑํ๋จ
์ ๊ธ ์ด๋ ์ปค๋์ ๋ํ ๋ฃจํธ ์ฌ์ฉ์ ์ก์ธ์ค๋ฅผ ์ ํํ๊ณ UEFI ๋ณด์ ๋ถํ ์ฐํ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋จํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ ๊ธ ๋ชจ๋๋ /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, ๋๋ฒ๊ทธ ๋ชจ๋ kprobes, mmiotrace, Tracefs, BPF, PCMCIA CIS(์นด๋ ์ ๋ณด ๊ตฌ์กฐ), ์ผ๋ถ ์ธํฐํ์ด์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํฉ๋๋ค. CPU ACPI ๋ฐ MSR ๋ ์ง์คํฐ, kexec_file ๋ฐ kexec_load ํธ์ถ ์ฐจ๋จ, ์ ์ ๋ชจ๋ ๊ธ์ง, PCI ์ฅ์น์ ๋ํ DMA ์ฌ์ฉ ์ ํ, EFI ๋ณ์์์ ACPI ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ธ์ง, ์ธํฐ๋ฝํธ ๋ฒํธ ๋ฐ ์ง๋ ฌ ํฌํธ์ฉ I/O ํฌํธ์ ๋๋ค. - ์ธํฐ๋ฝํธ, ์์คํ ํธ์ถ ๋ฐ ์ปจํ ์คํธ ์ ํ ์ค์ ์์ธก ๋ช ๋ น์ด ์คํ์ ์ ์์ ์ผ๋ก ํ์ฑํ ๋ฐ ๋นํ์ฑํํ ์ ์๋ IBRS(Enhanced Indirect Branch Restricted Speculation) ๋ช ๋ น์ด์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. Enhanced IBRS๊ฐ ์ง์๋๋ ๊ฒฝ์ฐ Retpoline ๋์ Spectre V2 ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๋ฐ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ์ฌ๋์ด ์ธ ์ ์๋ ๋๋ ํ ๋ฆฌ์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ด ํฅ์๋์์ต๋๋ค. ์ด๋ฌํ ๋๋ ํฐ๋ฆฌ์์๋ ๊ณ ์ ํ๋๊ทธ๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ ์์ ์์ ์ผ์นํ์ง ์๋ ์ฌ์ฉ์๊ฐ ์์ ํ FIFO ํ์ผ ๋ฐ ํ์ผ ์์ฑ์ด ๊ธ์ง๋ฉ๋๋ค.
- ARM ์์คํ ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์คํ ์ ์ปค๋ ์ฃผ์ ๊ณต๊ฐ ๋ฌด์์ํ(KASLR)๊ฐ ํ์ฑํ๋ฉ๋๋ค. Aarch64์๋ ํฌ์ธํฐ ์ธ์ฆ์ด ํ์ฑํ๋์ด ์์ต๋๋ค.
- "ํจ๋ธ๋ฆญ TCP๋ฅผ ํตํ NVMe"์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- virtio-pmem ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์ด NVDIMM๊ณผ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฃผ์ ๊ณต๊ฐ ๋งคํ ์คํ ๋ฆฌ์ง ์ฅ์น์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ถ์ฒ : opennet.ru