๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿคท๐Ÿผ‍โ™€๏ธ Etc.../- linux, aws, docker, k8s

[Linux] ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ์˜ ์ปค๋„ (Linux Kernel)๊ณผ ๋ฆฌ๋ˆ…์Šค์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ

by Wonit 2020. 9. 24.

์ด๋ฒˆ ๊ธ€์— ์ฃผ์ œ๋Š” ๋ฆฌ๋ˆ…์Šค์˜ ์šด์˜์ฒด์ œ์  ํŠน์ง•๊ณผ ์ปค๋„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

์‚ฌ์‹ค ์ปค๋„์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ์ด ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

 

์ปค๋„์—๋Š” 3๊ฐ€์ง€์˜ ํŠน์„ฑ์ด ์žˆ๋Š”๋ฐ,

  1. ๋ณด์•ˆ
  2. ์ž์› ๊ด€๋ฆฌ
  3. ์ถ”์ƒํ™”

์ด๋Ÿฌํ•œ ํŠน์„ฑ๋“ค์„ ๋ชจ์•„๋†“๊ณ  ์ •๋ฆฌํ•ด๋†“์€ ๊ฒƒ์„ ๋œปํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ปค๋„์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ํ•˜๋ ค๋ฉด ๊ทธ ๋‚ด์šฉ์˜ ์ˆ˜์ค€์€ ๊ฐ€ํžˆ ๋ฒ”์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„๋Ÿ‰์ด๋‹ค.


๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ํŒŒํŠธ์˜ ์ฃผ์ œ์ธ DevOps์— ๊ด€ํ•œ Linux์—๋Š” ๋งž์ง€ ์•Š์œผ๋ฏ€๋กœ ์ปค๋„๊ณผ ์šด์˜์ฒด์ œ์— ๊ด€๋ จ๋œ ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ํ™•์ธํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.


์ž ๊ทธ๋Ÿผ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ์™€ ๋‹ค์–‘ํ•œ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๋ณด์ž.

 

๋ฌผ๋ก  ํ•ด๋‹น ๋‚ด์šฉ์„ ๊ฑด๋„ˆ ๋›ฐ์–ด๋„ ๋˜์ง€๋งŒ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ณ  ์–ด๋– ํ•œ ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ์•Œ๊ฒŒ ๋œ๋‹ค๋ฉด ์ด๋ฅผ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๊ณผ ๋น„๊ตํ•˜๋ฉด ์ถ”ํ›„์— ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ŠคํŽ™ํŠธ๋Ÿผ์ด ํ›จ์”ฌ ๋†’์•„์ง€๊ฒŒ ๋œ๋‹ค.

์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์  ๊ฐœ๋…

๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์ „์— ์šด์˜์ฒด์ œ์— ๋Œ€ํ•ด์„œ ์ž ๊น ์•Œ์•„๋ณด์ž.

์šด์˜์ฒด์ œ๋Š” ํ•˜๋“œ์›จ์–ด ์ž์›๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์ง€์›ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ ์šด์˜์ฒด์ œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ปค๋„์ธ๋ฐ ์ปค๋„์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

์ปค๋„(Kernel)

์ปค๋„์€ ๋ณธ์งˆ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.


์šฐ๋ฆฌ๊ฐ€ ์ปดํ“จํ„ฐ ๊ณตํ•™์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜๋ฉด ๊ฐ€์žฅ ์ฒ˜์Œ ๋งŒ์ง€๊ฒŒ ๋˜๋Š” C์–ธ์–ด์— ์žˆ๋Š” main() ํ•จ์ˆ˜๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋ฐ”๋กœ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ๋“ค๊ณผ์˜ ํŠน์ง•์„ ์ฐพ์œผ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ๋ฐ”๋กœ Memory Resident์ด๋‹ค.


์˜ํ™” ๋ ˆ์ง€๋˜ํŠธ ์ด๋ธ”์— ๋‚˜์˜ค๋Š” ๊ทธ ๋ ˆ์ง€๋˜ํŠธ์˜ ๋œป์ธ๋ฐ, ๋ ˆ์ง€๋˜ํŠธ ์ด๋ธ”์˜ ์ฃผ์ธ๊ณต์ด ์žˆ๋Š” ๋ฐฐ๊ฒฝ์ด ๋งˆ์น˜ ์ง€์˜ฅ๊ฐ™๋‹ค ํ•˜์—ฌ ์ง€์˜ฅ์˜ ๊ฑฐ์ฃผ์ž๋ผ๊ณ  ํ•˜๋Š” ์˜ํ™”์™€ ๊ฐ™์ด ์ปค๋„์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๊ณ  ์žˆ๋‹ค.

Memory Resident Vs Disk Resident

์œ„์˜ ๊ทธ๋ฆผ์€ ์‚ฌ์‹ค ์ •ํ™•ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ง€๋˜ํŠธ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ฆผ์€ ์•„๋‹ˆ๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ง€๋˜ํŠธ๋ผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ์ž๋™์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ๋“ค์„ ๋œปํ•˜๋Š”๋ฐ ๊ทธ๋ƒฅ ๊ฐ„๋‹จํžˆ ๋ญ”๊ฐ€ ๋Œ€์กฐ์ ์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์—†์„๊นŒ? ํ•˜๋ฉฐ ๊ทธ๋ฆผ์„ ๋„ฃ์–ด๋ณด์•˜๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ง€๋˜ํŠธ

์œ„์—์„œ ๋ง ํ–ˆ๋“ฏ์ด ์šฐ๋ฆฌ๊ฐ€ ํ•„์š”์— ์˜ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ญ์ƒ ์ƒ์ฃผํ•˜๊ณ  ์žˆ๋Š” ์ž‘์—…์ด ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๋œปํ•œ๋‹ค.

๋””์Šคํฌ ๋ ˆ์ง€๋˜ํŠธ

๋””์Šคํฌ ๋ ˆ์ง€๋˜ํŠธ๋Š” ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋žจ๋“ค๊ณผ ๊ฐ™์ด ํ•„์š”ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๋œปํ•œ๋‹ค.


๋ฆฌ๋ˆ…์Šค์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ

์œ ๋‹‰์Šค์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•œ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋ฐฐ์šฐ๋Š”๋ฐ ์™œ ์œ ๋‹‰์Šค์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๋‚˜์˜ฌ๊นŒ?

 

๊ทธ ์ด์œ ๋Š” ๋ฆฌ๋ˆ…์Šค๊ฐ€ ๋ฐ”๋กœ ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์ด๋Ÿฌํ•œ ์œ ๋‹‰์Šค์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๋ฆฌ๋ˆ…์Šค์—๋„ ๊ทธ๋Œ€๋กœ ์ ์šฉ๋œ๋‹ค.

Ubuntu Linux ls command exec

์ด๋Ÿฐ ๋ฆฌ๋ˆ…์Šค์˜ ํŒŒ์ผ์—๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

์—ฌ๊ธฐ ๋ช…๋ น์–ด๋ฅผ ๋ณด๋ฉด ls -l์„ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ ์ฒ˜์Œ์œผ๋กœ ๋‚˜์˜ค๋Š” ๋ฌธ์ž d, b, -, c, i๊ฐ€ ํŒŒ์ผ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋ฌธ์ž ํŒŒ์ผ ์ข…๋ฅ˜
- ์ผ๋ฐ˜ ํŒŒ์ผ (Regular File)
d ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ (Directory File)
b ๋ธ”๋ก ๋””๋ฐ”์ด์Šค ํŒŒ์ผ (Block Device File, ex  /dev/sha)
c ๋ฌธ์ž ๋””๋ฐ”์ด์Šค ํŒŒ์ผ (Character Device File, ์ž…์ถœ๋ ฅ ์žฅ์น˜)
l ์‹ฌ๋ณผ๋ฆญ ๋งํฌ (Symbolic Link File)

๋ฆฌ๋ˆ…์Šค์—๋Š” ํŒŒ์ผ์— ๊ด€๋ จ๋œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด๋“ค์ด ์žˆ๋‹ค.

 

๋‹ค์Œ์— ์ž์„ธํžˆ ์•Œ์•„๋ณผ ๊ฒƒ์ด์ง€๋งŒ ๋‹ค์Œ์— ์žˆ์„ ์‹ค์Šต์„ ์œ„ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋จผ์ € ํŒŒ์•…ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ฉฐ ์˜ค๋Š˜ ๊ธ€์„ ๋งˆ์ณ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

๋””๋ ‰ํ† ๋ฆฌ์— ๊ด€๋ จ๋œ ๋ช…๋ น์–ด

ls, pwd, mkdir, cd, mv

 

ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ๋ช…๋ น์–ด

cat, more, cp, rm, head, tail

 

ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒ€์ƒ‰์— ๊ด€๋ จ๋œ ๋ช…๋ น์–ด

grep, find

๋Œ“๊ธ€