์๋ง์กด ํ์ฌ
๋ฐฐํฌํ์ ์ปจํ
์ด๋๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๊ตฌ์ฑ ์์๋ง ํฌํจํ์ฌ Linux ์ปค๋๊ณผ ์ต์ ์์คํ
ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ํ๋ก์ ํธ์ ๊ด๋ จ๋ ํจํค์ง ์ค์๋ ์์คํ
๊ด๋ฆฌ์ systemd, Glibc ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ด์
๋ธ๋ฆฌ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
Buildroot, GRUB ๋ถํธ๋ก๋, ๋คํธ์ํฌ ๊ตฌ์ฑ์
๋ฐฐํฌํ์ ์์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ฉฐ ๋ถํ ํ ์ ์๋ ์์คํ ์ด๋ฏธ์ง ํํ๋ก ์ ๊ณต๋ฉ๋๋ค. ๋ ๊ฐ์ ๋์คํฌ ํํฐ์ ์ด ์์คํ ์ ํ ๋น๋๋ฉฐ ๊ทธ ์ค ํ๋์๋ ํ์ฑ ์์คํ ์ด ํฌํจ๋๊ณ ์ ๋ฐ์ดํธ๋ ๋ ๋ฒ์งธ ํํฐ์ ์ ๋ณต์ฌ๋ฉ๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ๋ฐฐํฌ๋๋ฉด ๋ ๋ฒ์งธ ํํฐ์ ์ด ํ์ฑํ๋๊ณ ์ฒซ ๋ฒ์งธ ํํฐ์ ์์๋ ๋ค์ ์ ๋ฐ์ดํธ๊ฐ ๋์ฐฉํ ๋๊น์ง ์ด์ ๋ฒ์ ์ ์์คํ ์ด ์ ์ฅ๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ์ ๋ฐ์ดํธ๋ ๊ด๋ฆฌ์ ๊ฐ์ ์์ด ์๋์ผ๋ก ์ค์น๋ฉ๋๋ค.
Fedora CoreOS, CentOS/Red Hat Atomic Host์ ๊ฐ์ ์ ์ฌํ ๋ฐฐํฌํ๊ณผ์ ์ฃผ์ ์ฐจ์ด์ ์
๋ฃจํธ ํํฐ์ ์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ง์ดํธ๋๊ณ , /etc ์ค์ ํํฐ์ ์ tmpfs์ ๋ง์ดํธ๋์ด ์ฌ์์ ํ ์๋ ์ํ๋ก ๋ณต์๋ฉ๋๋ค. /etc/resolv.conf ๋ฐ /etc/containerd/config.toml๊ณผ ๊ฐ์ /etc ๋๋ ํ ๋ฆฌ์ ํ์ผ์ ์ง์ ์์ ํ๋ ๊ฒ์ ์ง์๋์ง ์์ต๋๋ค. ์ค์ ์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๋ ค๋ฉด API๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๋ณ๋์ ์ปจํ ์ด๋๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
๋๋ถ๋ถ์ ์์คํ
๊ตฌ์ฑ ์์๋ After Free ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค, ๋ ํฌ์ธํฐ ์ญ์ฐธ์กฐ ๋ฐ ๋ฒํผ ์ค๋ฒ๋ฐ์ผ๋ก ์ธํ ์ทจ์ฝ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ์์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Rust๋ก ์์ฑ๋์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋ํ ๋ "--enable-default-pie" ๋ฐ "--enable-default-ssp" ์ปดํ์ผ ๋ชจ๋๋ ์คํ ํ์ผ์ ์ฃผ์ ๊ณต๊ฐ ๋ฌด์์ํ๋ฅผ ํ์ฑํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค(
C/C++๋ก ์์ฑ๋ ํจํค์ง์ ๊ฒฝ์ฐ ์ถ๊ฐ ํ๋๊ทธ๊ฐ ํฌํจ๋ฉ๋๋ค.
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ๋ฐ "-fstack-clash-protection".
์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
๋๊ตฌ๋ ๋ณ๋๋ก ์ ๊ณต๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru