๋คํธ์ํฌ์ ์์คํ ์ MAC ์ฃผ์(NIC ๋คํธ์ํฌ ์นด๋) ์ ๋ณด๋ฅผ ๋ณด์ด๋ - arp
ARP ํ๋กํ ์ฝ์ ํด๋น IP๋ฅผ ๊ทธ ์ฃผ์์ ๋ง๋ ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์, ์ฆ MAC ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์ค๋ ํ๋กํ ์ฝ์ด๋ค.
ARP ํ๋กํ ์ฝ์ ARP ํ
์ด๋ธ์ ๊ด๋ฆฌํด์ค๋ค. ์ธ๋ถ WAN์์๋ ํธ์คํธ A๊ฐ ์ธ๋ถ์ ํธ์คํธ C(์๋ฅผ ๋ค์ด์, ์ฌ๋ฌ๋ถ์ด www.naver.comํ๋ฉด ์ฌ๋ฌ๋ถ์ ์ปดํจํฐ๊ฐ ์ธ๋ถ์ Navercom ๋๋ฉ์ธ์ ์น ์๋ฒ www์ ์ ์ํ๋ ๊ฒฝ์ฐ)๋ฅผ ์ฐพ์๊ฐ ๋์๋ www.naver.com์ IP ์ฃผ์๋ก ์ฐ๊ฒฐ๋๊ฒ ๋๋๋ฐ, ์ด ๋ค์ด๋ฒ์ ์น ์๋ฒ www ํธ์คํธ ์ ๋คํธ์ํฌ ์ฃผ์๋ง ์ฐธ์กฐํด์ ๋ผ์ฐํฐ๊ฐ ๋ค์ด๋ฒ์ ์ด๋ฅด๋ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ ๋ค, ๋ค์ด๋ฒ ๋๋ฉ์ธ์์ ๋ผ์ฐํฐ๋ www ํธ์คํธ MAC ์ฃผ์๋ฅผ arp ๋ธ๋ก๋์บ์คํธ๋ก ์์๋ธ ๋ค ์ฐ๊ฒฐ์์ผ์ค๋ค.
๋ณด์์์๋ ํด์ปค๊ฐ ์์ ์ ๊ฒ์ดํธ์จ์ด ๋ฑ์ MAC ์ฃผ์๋ก ํด๋ก ํด์ ์ค๊ฐ๋ ๋ก์ปฌ ๋คํธ์ํฌ์ ๋ชจ๋ ํธ์คํธ๋ค์ ํจํท์ ์์ ํ๋ฏ๋ก ์๋ฒ ๋ฑ์์ MAC ์ฃผ์ ๋ณ๊ฒฝ๊ด๋ฆฌ๊ฐ ์ค์ํ๋ค. ๋ก์ปฌ LAN์์๋ ์๋ก ๋ธ๋ก๋์บ์คํธ๋ฅผ ํตํด์ ๊ฐ ํธ์คํธ๊ฐ ์ด์ํ ํธ์คํธ์ IP ์ฃผ์์ MAC ์ฃผ์๋ฅผ ์์๋ธ ๋ค ์์ ์ ARP Cache ๋ฉ๋ชจ๋ฆฌ์ ํ
์ด๋ธ ํํ๋ก ์ ์ฅํ๊ณ ์๋ค๊ฐ ๋ค๋ฅธ ํธ์คํธ๋ฅผ ์ฐพ์๊ฐ ๋ ์ด MAC ์ฃผ์๋ก ์ฐพ์๊ฐ๋ค.
โพ ๋ด๋ถ ๋ก์ปฌ LAN์์ ํธ์คํธ A๋ ํธ์คํธ B๋ฅผ MAC ์ฃผ์(arp ํ๋กํ ์ฝ์ ํตํด์ )๋ก ์๊ฒ ๋๊ณ ,
โพ ์ธ๋ถ WAN์์ ํธ์คํธ A๋ ํธ์คํธ C๊น์ง ๊ฐ๋ ๊ฒฝ๋ก๋ฅผ ํธ์คํธ C์ ๋คํธ์ํฌ ์ฃผ์๋ก ์๊ฒ ๋๋ค.
โพ ๋ก์ปฌ LAN์์๋ arp๋ฅผ ๋ธ๋ก๋์บ์คํธ๋ก ๋ฟ๋ ค์ ๋ชจ๋ ํธ์คํธ๋ค์ MAC๋ฅผ ์๋ก ์๊ฒ ๋๊ณ ,
โพ ์ธ๋ถ WAN์์๋ ๋ผ์ฐํฐ๋ผ๋ฆฌ BGP ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ์๋๋ฅผ ์๊ฒ ๋๋ค.
์ปดํจํฐ์์ IP ์ฃผ์๋ ์ํํธ์จ์ด์ ์ธ ์ฃผ์์ฌ์ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค
NIC์ MAC ์ฃผ์๋ ํ๋์จ์ด์ ์ธ ์ฃผ์์ฌ์ ๋ณ๊ฒฝ์ด ์ ๋๋ค.
=>MAC ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
์ปค๋(kernel)
์ปค๋์ Linux ์ด์์ฒด์ ์ ํต์ฌ์ธ๋ฐ ์์คํ
๋ฆฌ์์ค(CPU, RAM, HDD, ...)๋ฅผ ํ๋์จ์ด์ ์ํํธ์จ์ด์๊ฒ ํ ๋นํ๊ณ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. ์ฌ๋์ ๋๊ฐ ๋ชจ๋ ์ ๊ฒฝ๊ณผ ๊ทผ์ก ์ฒด๊ณ๋ฅผ ํต์ ํ๋ฏ์ด ์ปค๋์ ์ด์์ฒด์ ์๊ฒ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋๋ก ์ง์ํ๊ณ , ํ๋์จ์ด ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ ํตํด์ ํ๋์จ์ด์ ๋ํํ๊ณ , ์ํํธ์จ์ด์ ๋ฆฌ์์ค๋ฅผ ํ ๋นํด์ ์ํํธ์จ์ด๋ฅผ ์๋์ํจ๋ค.
์ปค๋์ ์ ์ดํดํ๊ฒ ๋๋ฉด ์์ ๋ง์ ์ปค์คํฐ๋ง์ด์ฆ(customized)๋ ์๋ก์ด ์ปค๋์ ์์ฑํ ์๋ ์๋ค. "Linux๋ Kernel์ด๋ค"๋ผ๊ณ ๋ ํ๋ค. ํ์ฌ๋ ์ด์์ฒด์ ๊ฐ ๊ทธ๋ํฝ์ ๋ง์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ด๋ จ๋ ํจํค์ง๋ ๋ง์์ 3~4GB๊น์ง ์ปค์ ธ ์๋ ์ํฉ์ด์ง๋ง, ์ฌ๋ฌ ์ปค๋๋ค์ด ๋ชจ์ฌ์ Linux๋ผ๋ ์ด์์ฒด์ ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ์ด ์ปค๋์ ์ฌ์ฉ์๊ฐ ์กฐ์ ํ๋ฉด 1.4MB์ ํ๋กํผ๋์คํฌ ํ ์ฅ์ ๋ค์ด๊ฐ๋ Linux ์ด์์ฒด์ ๋ ๊ฐ๋ฅํ๋ค.
Linux์์์ ์์ถ์์ค๋ฅผ ๋ณด๋ฉด tarball์ด๋ผ๊ณ ๋์ค๋๋ฐ ~.tar.gz(~.tar.Z) ํ์ผ์ ๋งํ๋ค. ์ด ํ์ผ์ ์ฌ๋ฌ ํ์ผ/๋๋ ํฐ๋ฆฌ๊ฐ ๋ฌถ์ฌ์(~.tar) ์์ถ๋ ๊ฒ(~.gz)์ด๋ค. ์ปค๋์ ์์ ์ด์ง(binary) ํ์ผ๋ก์จ /boot ๋๋ ํฐ๋ฆฌ์ ์๋ฆฌํ๋ค.
/boot ๋๋ ํฐ๋ฆฌ์ ์ํ๋ ์ปค๋ ํ์ผ๋ค์ ๋ฃ์ด๋๋ฉด ๋ถํ
์ ํ๋ก์ธ์ค๋ฅผ ํตํด์ ํด๋น ์ปค๋๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์ฌ๋ฌ ํ๋ก๊ทธ๋จ์์ ๊ณตํต์ผ๋ก ์์ ์์ด ์ฌ์ฉ๋๋ ์คํฌ๋ฆฝํธ ํ์ผ) ๋ชจ๋๋ก ์์คํ
์ ๊ฐ๋์ํฌ ์ ์๋ค.
์ปค๋์ ๋ชจ๋๋ผ(modular) ์ปค๋(๋ง์ดํฌ๋ก(Micro) ์ปค๋๋ก๋ ๋ถ๋ฆผ) - ๊ทธ๋ํฝ, ๋ฉํฐ๋ฏธ๋์ด, ๊ทธ๋ฆฌ๊ณ ์คํผ์ค ํ๋ก๊ทธ๋จ ๋ฑ ์ฉ๋์ด ํฐ ํ๋ก๊ทธ๋จ์ ์คํํ ๋์๋ ์ด๋ค๊ณผ ๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋๋ค์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ํ๊บผ๋ฒ์ ๋ก๋ํ๊ณ ์คํ์ํค๋ฉด ์์คํ
์ ๋ถ๋ด์ด ๋ ์ ์์ผ๋ฏ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์ ์ธ๋ถ ๋๋ ํฐ๋ฆฌ์ ๋๊ณ ํ์ํ ๋๋ง๋ค ๋ก๋์์ผ์ ์ฌ์ฉํ๋ค. )๊ณผ
๋ชจ๋
ธ๋ฆฌ์ฉ(monolithic) ์ปค๋ - DNS๋ DHCP ์๋น์ค์ ๊ฐ์ด ๋น๊ต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์ด ํฌ์ง ์์ ํ๋ก๊ทธ๋จ์ ์คํํ ๋์๋ ์ด๋ค๊ณผ ๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ํ๊บผ๋ฒ์ ๋ก๋ ํ ๋ค ์คํํ๋ค. ๋น์ฐํ ์ฒ๋ฆฌ์๋๊ฐ ๋ ๋น ๋ฅด๋ค)
๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค. /lib/modules ๋๋ ํฐ๋ฆฌ๋ Linux ์ปค๋์ด ์ฌ์ฉํ๋ ๋๋ถ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ผ๋ถ๋ ๋จธ์ ์ด ๋ถํ
๋ ๋ ๋ก๋ ๋๊ฒ ๋๋ค.
์ปค๋ ์์
์ ์ด์ฉ๋๋ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์๋๋ฐ ์๋ก์ด Linux ์ปค๋์ ์์ฑํ๊ฑฐ๋, IoT ๋ฑ์์ Arduino์ Rassberry Pie์ ๊ฐ์ ์ด๋ฏธ๋ ์ปดํจํฐ์์ ๋ชจ๋์ ๋ก๋/์ธ๋ก๋ํ ๋ ์ด๋ค ๋ช
๋ น์ด๊ฐ ํ์์ด๋ค.
lsmod(list module)๋ ์ปค๋์ ์ด๋ ๋ชจ๋์ ๋ก๋์์ผ์ ์๋ก์ด ์ปค๋๋ก ๋ฆฌ์ปดํ์ผ(recompile) ํ ๋ ์ฌ์ฉ๋๋ ๋ช
๋ น์ด์ด๋ค.
insmod(insert module) ๋ช
๋ น์ด๋ ์คํ๋๊ณ ์๋ ์ปค๋์ ์๋ก์ด ๋ชจ๋์ ๋ก๋์ํค๋๋ฐ 'insmod ํ์ผ_๋ช
' ํ์์ผ๋ก ์ฌ์ฉํ๋ค.
modprobe(module probe) ๋ช
๋ น์ด๋ ๋ก๋ํ๊ณ ์ ํ๋ ๋ชจ๋์ ์ข
์์ ๋ชจ๋์ด ์๋ ๊ฒฝ์ฐ ํ์ฌ ์คํ์ค์ธ ์ปค๋์ ๋ชจ๋ ๋๋ ํฐ๋ฆฌ(/lib/modules/ ์๋)์์ ์ด ์ข
์์ ์ธ ๋ชจ๋๋ค์ ์ฐพ์์ ํด๋น ๋ชจ๋์ ๋ก๋ฉํ ๋ ์๋์ผ๋ก ํจ๊ป ๋ก๋์์ผ ์ค๋ค. 'modprobe ์ต์
๋ชจ๋_๋ช
' ํ์์ผ๋ก ์ฌ์ฉํ๋ค.
/etc/modprobe.conf ํ์ผ์ modprobe ์์
์ ์ผ๊ด์ ์ผ๋ก ์ํํ๊ธฐ ์ํด์ /etc ๋๋ ํฐ๋ฆฌ์ modprobe.conf ํ์ผ์ ์์ฑํด๋๊ณ , ๊ฐ ์ค์ ๋ก๋ํ ๋ชจ๋์ ์ํ alias, options, install, remove, include, ๊ทธ๋ฆฌ๊ณ modprobe ์ง์์ด๋ฅผ ์ง์ ํด๋๋ฉด modprobe ๋ช
๋ น์ด๊ฐ ์ด ํ์ผ์ ์ฝ๊ณ ์ง์์ ๋ฐ๋ผ์ ํด๋น ๋ชจ๋์ ๋ก๋/์ธ๋ก๋ํด์ค๋ค.
rmmod(remove module) ๋ช
๋ น์ด๋ ์คํ ์ค์ธ Linux ์ปค๋์์ ํน์ ๋ชจ๋์ ์ธ๋ก๋ ํ ๋ ์ฌ์ฉ๋๋๋ฐ insmod์ ๋ค๋ฅด๊ฒ ์ ๊ฑฐํ ๋ชจ๋ ๋ช
๋ง ์ง์ ํ๋ฉด ๋๋ค.
๋ชจ๋์ ๋ก๋/์ธ๋ก๋ํ๋ ๋ฒ์ ์์๋ณด์์ผ๋ฏ๋ก ์ด์ ์ปค๋ ๋ฆฌ๋น๋(rebuild)๋ฅผ ์์๋ณด๊ณ ์ค์ ์ปค๋์ ์
๊ทธ๋ ์ด๋ ํด๋ณด์. ์ปค๋ ์
๊ทธ๋ ์ด๋๋ฅผ ์ปค๋ ์ปดํ์ผ๋ก๋ ๋ถ๋ฅธ๋ค. ์ฌ๋ฌ ์์ค๋ฅผ ํตํด์ ์ปค๋ ์์ค๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์๊ณ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ปค๋์ ์ด์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ํ๋ ์ปค๋์ ์ฌ์ฉ ์ค์ธ ์์คํ
์ ๋ง์ถฐ ๋ฆฌ๋น๋ํด์ ์ฌ์ฉํ๋ฉด ์์คํ
ํจ์จ์ด ์ข์์ง ๊ฒ์ด๋ค.
์๋ก์ด ์ปค๋์ ๋น๋ํด์ ์ค๋๋ ์ปค๋๊ณผ ๊ณต์กด์ํค๊ฑฐ๋ ์ค๋๋ ์ปค๋์ ์ ์ปค๋๋ก ๋์ฒดํด์ ์์คํ
์ ์ด์ํ ์ ์์ง๋ง ํ์ฌ ์ด์ ์ค์ ์๋ ์ปค๋์ด ์๋น์ค์ ํ์ํ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋ค์ด์๊ณ ์ ์คํ๋๊ณ ์๋ค๋ฉด ๊ตฌํ์ฌ ์๋ก์ด ์ปค๋๋ก ๋ฆฌ๋น๋ํ ํ์๋ ์๋ค. ํ์ง๋ง ์์คํ
์ด ์๋ก ์ค์นํ ํ๋์จ์ด๋ฅผ ์ธ์ํ์ง ๋ชปํ๊ฑฐ๋ ์ผ๋ถ ๊ธฐ๋ฅ์ ํ์ฅ์ํค๊ณ ์ ํ๋ค๋ฉด ์ปค๋์ ์
๊ทธ๋ ์ด๋ํด์ผ ํ ๊ฒ์ด๋ค.
ํ์ฌ ์ปค๋์ด 2.6.32๋ผ๋ฉด ์ ์ฒด ์ปค๋์ ์๋ฅผ ๋ค์ด์ 3.0.1๋ก ๋ชจ๋ ์ฌ๋ฆฌ์ง ์๊ณ patch-2.6.32. tar.bz2 ํ์ผ์ ๋ค์ด๋ฐ์์ 2.6.32์์ ์ฑ๋ฅ๊ฐ์ ์ด ํ์ํ ์ปค๋๋ง 2.6.32๋ก ์
๋ฐ์ดํธํด์ฃผ๋ ๊ฒ์ด ์ข๋ค. ์๊ฐ๊ณผ ๋คํธ์ํฌ ๋์ญํญ, ๊ทธ๋ฆฌ๊ณ ํ์ฌ ์๋ฒ ์๋น์ค๊ฐ ์คํ๋์ง ์๊ณ ์ ์ฒด์ ์ผ๋ก ์ฑ๋ฅ์ด ์ ํ๋์๋ค๊ณ ๋๋ผ๋ฉด ์๋กญ๊ฒ ์ ์ฒด ์ปค๋์ 3.0.1์ผ๋ก ์
๊ทธ๋ ์ด๋ํด์ผ ํ ๊ฒ์ด๋ค.
์ปดํ์ผ(Compile)์ ๋ณดํต ๋ ๊ฐ์ง ๊ฐ๋
์ผ๋ก ์ฌ์ฉ๋๋๋ฐ
โช Kernel compile : Hardware compile ๋ฆฌ๋
์ค ๋ฒ์ (์ปค๋)์ ์ฌ๋ฆฌ๋ ์์
โช Software compile : ์ด๋ ์ํํธ์จ์ด๋ฅผ ๋ํดํธ๋ก ์ค์นํ์ง ์๊ณ ๋ค๋ฅธ ์ํํธ์จ์ด์ ์ฐ๊ณํด์ ํ๊ฒฝ์ค์ ์ ํด์ ์ค์นํ๋ ๋ฐฉ๋ฒ
=>APM(Apache(Web Server) + PHP(Web Programming Language) + MySQL(Database))