
Linux Kernel โ 1 Why study kernel? ๐ง
๋ฆฌ๋ ์ค๋ฅผ ์์์ผ ํ๋ ์ด์
1. ์๋ฒ ๋ฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์์ ํ์ ์ด์์ฒด์
์ฃผ์ ์น ์๋ฒ, ํด๋ผ์ฐ๋ ์ธํ๋ผ(AWS, Azure, GCP)์ ์ด์์ฒด์ ๋ ๋๋ถ๋ถ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ
์์คํ ๊ด๋ฆฌ, ๋ฐฑ์๋ ๊ฐ๋ฐ, ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ํ๊ฒฝ ๋์์ ์์ด ๋ฆฌ๋ ์ค ๋ช ๋ น์ด ๋ฐ ์ด์ ์ดํด๊ฐ ํ์์
2. ์คํ์์ค ๊ธฐ๋ฐ์ผ๋ก ํ์ต ๋ฐ ์ปค์คํฐ๋ง์ด์ง ์ฉ์ด
์ปค๋๋ถํฐ ์ฌ์ฉ์ ์์ญ๊น์ง ๊ณต๊ฐ๋์ด ์์ด ๊ตฌ์กฐ ์ดํด ๋ฐ ์ค์ต์ ์ ํฉ
๋ณด์ ๋ถ์, ์์คํ ํ๋ก๊ทธ๋๋ฐ, ์๋ฒ ๋๋ ์์คํ ๋ฑ ์ ์์ค ๊ฐ๋ฐ์ ๊ฐ์
3. ๋ช ๋ น์ด ๊ธฐ๋ฐ ์๋ํ ๋ฐ ๊ณ ๊ธ ์ด์ ๊ธฐ๋ฅ ์ ๊ณต
Bash, crontab, systemd, ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ ๋ฑ ์๋ํ ๊ธฐ๋ฅ ํ์ฉ ๊ฐ๋ฅ
๋คํธ์ํฌ ๋ถ์, ์์คํ ๋ชจ๋ํฐ๋ง, ๋ก๊ทธ ๋ถ์ ๋ฑ ๊ณ ๊ธ ์ด์ฉ์ ํ์ํ ๋๊ตฌ CLI ๊ธฐ๋ฐ ์ ๊ณต
๋ฆฌ๋ ์ค๊ฐ ์ธ๊ธฐ ์๋ ์ด์
1. ์คํ ์์ค
๋ฆฌ๋ ์ค๋ ์คํ ์์ค ๋ผ์ด์ ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์์ค์ฝ๋์ ๋ํ ์ ๊ทผ๊ณผ ์์ ์ด ์์ ๋ก์ ํฌ๋ช ์ฑ ๋ฐ ๊ธฐ์ ์ ์ ์ฐ์ฑ์ด ํ๋ณด๋จ.
2. ๋ฌด๋ฃ
๋๋ถ๋ถ์ ๋ฐฐํฌํ์ ์์ ์ ยท๋น์์ ์ ์ฉ๋์ ๊ด๊ณ์์ด ๋ฌด์์ผ๋ก ์ ๊ณต๋์ด, ๋น์ฉ ๋ถ๋ด ์์ด ์์คํ ๊ตฌ์ถ ๊ฐ๋ฅ.
3. ์์ ์ , ๊ฒ์ฆ๋จ
์์ญ ๋ ๊ฐ ๋ค์ํ ์๋ฒ ๋ฐ ์๋ฒ ๋๋ ํ๊ฒฝ์์ ์ด์๋ ์ค์ ์ ํตํด ์์คํ ์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด ๊ฒ์ฆ๋จ.
4. ์ปค๋ฎค๋ํฐ
์ ์ธ๊ณ์ ์ผ๋ก ํ๋ฐํ ๊ฐ๋ฐ์ ๋ฐ ์ฌ์ฉ์ ์ปค๋ฎค๋ํฐ๊ฐ ์กด์ฌํ๋ฉฐ, ๊ธฐ์ ์๋ฃ ๊ณต์ ์ ๋ฌธ์ ํด๊ฒฐ์ด ์ ์ํ๊ฒ ์ด๋ฃจ์ด์ง.
5. ๋ค์ํ CPU, ํ๋์จ์ด ์ง์
x86, ARM, RISC-V ๋ฑ ๋ค์ํ ํ๋์จ์ด ์ํคํ ์ฒ๋ฅผ ๊ณต์์ ์ผ๋ก ์ง์ํ๋ฉฐ, ์ด์์ฑ๊ณผ ํธํ์ฑ์ด ๋ฐ์ด๋จ.
์ฐ์ด๋ ๊ณณ
1. ์๋๋ก์ด๋
์๋๋ก์ด๋๋ ๋ฆฌ๋ ์ค ์ปค๋์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ชจ๋ฐ์ผ ์ด์์ฒด์ ๋ก์ ์ ์ธ๊ณ ์ค๋งํธํฐ์ ํต์ฌ ํ๋ซํผ์ผ๋ก ์ฌ์ฉ๋จ.
2. ์๋์ฐจ
์ฐจ๋์ฉ ์ธํฌํ ์ธ๋จผํธ ์์คํ ๋ฐ ์์จ์ฃผํ ํ๋ซํผ ๋ฑ์ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ OS๊ฐ ํ์ฌ๋์ด ์์ ์ ์ ์ด ๋ฐ ๊ธฐ๋ฅ ํ์ฅ์ด ๊ฐ๋ฅํจ.
3. IoT
์ผ์, ์ํ ๋๋ฐ์ด์ค ๋ฑ ๋ค์ํ IoT ๊ธฐ๊ธฐ์ ๊ฒฝ๋ํ๋ ๋ฆฌ๋ ์ค๊ฐ ์ฌ์ฉ๋์ด ์ค์๊ฐ ์ ์ด์ ๋คํธ์ํฌ ํต์ ์ ์ํํจ.
4, ์๋ฒ, NAS
์น์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ, NAS ์ฅ๋น ๋ฑ ๋ค์ํ ์๋ฒ ํ๊ฒฝ์์ ๋ฆฌ๋ ์ค๊ฐ ๊ธฐ๋ณธ ์ด์์ฒด์ ๋ก ๋๋ฆฌ ์ฑํ๋จ.
5. ์๋ฒ ๋๋ (IP ์นด๋ฉ๋ผ, TV)
๊ฐ์ ์ ํ ๋ฐ ๋ณด์ ์ฅ๋น์ ๋ด์ฅ๋ ์์คํ ์ํํธ์จ์ด์ ๋ฆฌ๋ ์ค๊ฐ ์ ์ฉ๋์ด, ํ๋์จ์ด ์ ์ด ๋ฐ ์ฌ์ฉ์ ๊ธฐ๋ฅ ๊ตฌํ์ ํ์ฉ๋จ.
6. ๋คํธ์ํฌ ์ฅ์น
๋ผ์ฐํฐ, ๋ฐฉํ๋ฒฝ, ์ค์์น ๋ฑ ๋คํธ์ํฌ ์ฅ๋น์ ํ์จ์ด ๋ฐ ์ ์ด ์ํํธ์จ์ด์ ๋ฆฌ๋ ์ค๊ฐ ๋ด์ฅ๋์ด ๊ณ ์ฑ๋ฅ ํต์ ํ๊ฒฝ์ ์ ๊ณตํจ.
7. ์๋ฃ๊ธฐ๊ธฐ
์ ๋ฐ ์ ์ด์ ๊ณ ์ ๋ขฐ์ฑ์ด ์๊ตฌ๋๋ ์๋ฃ ์ฅ๋น์๋ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ ์์คํ ์ด ์ฌ์ฉ๋์ด ์์ ์ ์ธ ์ด์ฉ์ ์ง์ํจ.
์ปค๋๊ณผ ์ด์์ฒด์ ์์ ์ฐจ์ด
1. ์ด์์ฒด์ ๊ฐ ๋ ํฐ ๊ฐ๋
์ด์์ฒด์ ๋ ์ปค๋, ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ, ์์คํ ์ ํธ๋ฆฌํฐ, ์์ฉํ๋ก๊ทธ๋จ ๋ฑ์ ๋ชจ๋ ํฌํจํ๋ ์์ ๊ฐ๋
ํ๋์จ์ด์ ์ปดํจํฐ ์ฌ์ฉ์๋ฅผ ์ฐ๊ฒฐํ๋ ์ ์ฒด์ ์ธ ์์คํ ๊ตฌ์ฑ ์์
2. ์ปค๋
์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ
ํ๋์จ์ด์ ์ํํธ์จ์ด ๊ฐ์ ํต์ ์ ๋ด๋นํ๋ ์ค๊ฐ์ ์ญํ ์ ์ํํจ
์ปค๋์ ์ ์กด์ฌ ํ๋๊ฐ?
1. ์ปดํจํฐ๋ ๋ถํ ๋ง ํด์๋ ์๋ฌด ์์ ๋ ์ํํ ์ ์์
ํ๋์จ์ด๋ง์ผ๋ก๋ ๋์ ๋ถ๊ฐ๋ฅํ๋ฉฐ, ์ด์์ฒด์ ๊ฐ ํ์ํจ
2. ์ด์์ฒด์ ๊ฐ ์์ผ๋ฉด I/O ์ฅ์น์์ ์ํธ์์ฉ ๋ถ๊ฐ๋ฅ
์ ๋ ฅยท์ถ๋ ฅ ์ฅ์น ์ ์ด๋ฅผ ์ํ ์์คํ ์ด ํ์ํจ
3. CPU, GPU, ๋ฉ๋ชจ๋ฆฌ, ํ๋๋์คํฌ ๋ฑ๊ณผ ๊ฐ์ ์ฃผ์ ์์
ํค๋ณด๋, ๋ง์ฐ์ค, ๋ชจ๋ํฐ, ๋์นด๋, ์คํผ์ปค ๋ฑ ์ฃผ๋ณ๊ธฐ๊ธฐ๋ฅผ
ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ปค๋์ด ํ์์ ์
4. ์ปค๋ ์์ด ๋ธ๋ผ์ฐ์ ์คํ ๋ฐ ๊ฒ์๊ณผ ๊ฐ์ ๊ณ ๊ธ ์์ ์ ๋ถ๊ฐ๋ฅ
์ํํธ์จ์ด๊ฐ ํ๋์จ์ด๋ฅผ ์ง์ ์ ์ดํ ์ ์๊ธฐ ๋๋ฌธ์
5. ๋ค์ํ CPU, ๋ฉ๋ชจ๋ฆฌ, ์ฅ์น๋ค์ ๊ด๋ฆฌํ๋ ์ญํ ์ํ
์ปค๋์ ํ๋์จ์ด ์์์ ์ถ์ํํ์ฌ ์ํํธ์จ์ด๊ฐ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ค์ฌ์ ์ญํ ์ ํจ
์ปค๋ ๋ด๋ถ์ ์ค์ ๋ก ๊ตฌํ๋ ์ฃผ์ ๊ธฐ๋ฅ ํญ๋ชฉ
์๋ ๊ธฐ๋ฅ๋ค์ ์ปค๋ ์์ค์ฝ๋๋ก ๊ตฌํ๋์ด ์์ผ๋ฉฐ, ๋ถ์ ๋์์ด ๋จ
Task(Process) Management
CPU๋ฅผ ์ถ์ํํ์ฌ Task ๋จ์๋ก ์์ ์ ๊ณต
Memory Management
๋ฉ๋ชจ๋ฆฌ๋ฅผ Page, Segment๋ก ์ถ์ํํ์ฌ ์์ ์ ๊ณต
File System
๋์คํฌ๋ฅผ File๋ก ์ถ์ํํ์ฌ ์์ ์ ๊ณต
Network Management
๋คํธ์ํฌ ์ฅ์น๋ฅผ Socket์ผ๋ก ์ถ์ํ
Device Driver Management
๋ค์ํ ์ธ๋ถ ์ฅ์น์ ๋ํ ์ ๊ทผ ๊ธฐ๋ฅ ์ ๊ณต
Interrupt Handling
ํ๋์จ์ด ์ธํฐ๋ฝํธ ์์ฒญ ์ฒ๋ฆฌ
I/O Communication
์ ์ถ๋ ฅ ์ฅ์น์์ ์ค๊ฐ ๊ธฐ๋ฅ ์ํ
์ปค๋ ์์คํ ๊ตฌ์กฐ
์์คํ ์ ๊ณ์ธต์ ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ๊ณ์ธต์ ์ญํ ์ ๋ค์๊ณผ ๊ฐ์

User Space (Application)
์ฌ์ฉ์๊ฐ ์ง์ ์คํํ๋ ์์ฉ ํ๋ก๊ทธ๋จ ์์ญ
Kernel
ํ๋ก์ธ์ค, ๋ฉ๋ชจ๋ฆฌ, ์ฅ์น ๊ด๋ฆฌ ๋ฑ ํต์ฌ ๊ธฐ๋ฅ ๋ด๋น
Hardware
์ค์ ์ฅ์น(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋๋ฐ์ด์ค)๋ก ๊ตฌ์ฑ๋ ๋ฌผ๋ฆฌ์ ์์
– User Space์ Kernel ๊ฐ์๋ System Call์ ํตํด ์ํธ์์ฉ์ด ์ด๋ฃจ์ด์ง
– ์์ฉ ํ๋ก๊ทธ๋จ์ด ํ๋์จ์ด ์์์ ์ง์ ์ ์ดํ์ง ์๊ณ ์ปค๋์ ํตํด ๊ฐ์ ์ ์ผ๋ก ์์ฒญ