๋ฉํฐ์ปค๋ ํ๋ก์ ํธ์ ์ฒซ ๋ฒ์งธ ๊ณต๊ฐ ๋ฒ์ ์ด ์ถ์๋์์ต๋๋ค. Linux (mklinux-v7.0-mk2)๋ ์ปค๋์ ๊ฐ๋ฐ ๋ฒ์ ์ ๋๋ค. Linuxํ์ดํผ๋ฐ์ด์ ๋ ๊ฐ์ํ ์์ด ๋จ์ผ ๋ฌผ๋ฆฌ์ ์ปดํจํฐ์์ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์ปค๋ ์ธ์คํด์ค๋ฅผ ์คํํ ์ ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๊ฐ ์ปค๋ ์ธ์คํด์ค๋ ํ๋์จ์ด ๋ฆฌ์์ค์ ์ง์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์๋ก ๋ถ๋ฆฌ๋ ๊ฒฉ๋ฆฌ๋ ์์คํ ํ๊ฒฝ์ ์คํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ ์ด ์ปค๋์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. Linux 7.0 ๋ฒ์ ์๋ "CONFIG_MULTIKERNEL" ๋น๋ ์ค์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด ์ค์ ์ ๋นํ์ฑํํ๋ฉด ์ปค๋์ ๊ธฐ๋ณธ 7.0 ์ปค๋๊ณผ ์์ ํ ๋์ผํด์ง๋๋ค. ํ์ฌ๋ x86_64 CPU ์ํคํ ์ฒ๋ง ์ง์๋ฉ๋๋ค.
๋ฉํฐ์ปค๋์ ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฐ ๊ฐ์ํ์ ๊ณต์ ์ปค๋ ์ปจํ ์ด๋ ๊ฒฉ๋ฆฌ ์ฌ์ด์ ๊ฐ๊ทน์ ๋ฉ์ฐ๋ ์๋ก์ด ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค. ๊ฐ์ํ์ ๋ฌ๋ฆฌ ๋ฉํฐ์ปค๋์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ํ์๋ก ํ์ง ์์ผ๋ฉฐ, ๊ฐ๋ณ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ํ ๊ฒฉ๋ฆฌ ํ๊ฒฝ ๊ตฌ์ถ์ ๊ฐ์ํํ๊ณ , ๊ฐ์ํ์ ์ค๋ฒํค๋ ์์ด ๊ณ ์ฑ๋ฅ์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ปจํ ์ด๋์ ๋ฌ๋ฆฌ ๋ฉํฐ์ปค๋์ ๋์ ์์ค์ ๊ฒฉ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๊ฐ ๊ฒฉ๋ฆฌ ํ๊ฒฝ์์ ๋ณ๋์ ์ปค๋์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฌ ํ ํ๊ฒฝ์์์ ์ถฉ๋์ด๋ ์ทจ์ฝ์ ๊ณต๊ฒฉ์ด ๋ค๋ฅธ ํ๊ฒฝ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํฉ๋๋ค.

ํธ์คํธ ์ปค๋์ ๋์์ ์คํ๋๋ ์ฌ๋ฌ ์ปค๋ ์ธ์คํด์ค์ ์ฌ์ฉ ๊ฐ๋ฅํ CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฐ PCI ์ฅ์น๋ฅผ ๋ถ๋ฐฐํฉ๋๋ค. ๊ฐ ์ธ์คํด์ค๋ ๋ณ๋์ ์ ์ฉ CPU ์ฝ์ด์์ ์คํ๋๊ณ , ํ ๋น๋ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ ์ฉ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ์ฝ์ด์ ๋์ ์คํ์ ๊ฐ์ํ ์์ด, ์ฌ์ฉ ๊ฐ๋ฅํ CPU๋ฅผ ๋ถ๋ฐฐํ๋ SMP ํธ๋ค๋ฌ๋ฅผ ํตํด ๊ตฌํ๋ฉ๋๋ค. ์คํ ํ๊ฒฝ์ ๋ํ ๋์ ๋ฆฌ์์ค ํ ๋น์ด ์ง์๋์ด ์์ธก ๊ฐ๋ฅํ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค.
๊ฐ์ํ์ ๋ด์ฌ๋ ์ค๋ฒํค๋๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ, ๋ฉํฐ์ปค๋์ ์ฌ์ฉํ ์ฑ๋ฅ์ ๋ ๋ฆฝํ ํ๋์จ์ด์์ ์คํํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ์ ์ฌํ ์์ค์ผ๋ก ์์๋ฉ๋๋ค. ๋ฉํฐ์ปค๋์ VM ์ข ๋ฃ ๋จ๊ณ, L2 ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง, ๋ณ๋์ ์ฅ์น ๋ชจ๋ธ ๋ฐ IOMMU ๋ณํ์ ์ ๊ฑฐํฉ๋๋ค. ํ์ดํผ๋ฐ์ด์ ์ ๋น๊ตํ์ ๋, KVM ๋ฉํฐ์ปค๋์ ์ฌ์ฉํ๋ฉด ๋ค์ํ ์์คํ ํธ์ถ ๋ฐ ํจ์์ ์ฑ๋ฅ์ด 1.07๋ฐฐ์์ 2.5๋ฐฐ๊น์ง ํฅ์๋ฉ๋๋ค(fork + exit - 1.07๋ฐฐ, write() - 1.39๋ฐฐ, AF_UNIX - 1.55๋ฐฐ, Pipe - 2.18๋ฐฐ, ์ปจํ ์คํธ ์ค์์นญ - 2.50๋ฐฐ). ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ฒ๋ฆฌ๋๊ณผ ์ง์ฐ ์๊ฐ์ ๋์ผํ ์์ค์ ์ ์งํฉ๋๋ค.

์ถ์ฒ : opennet.ru
