πŸ™‹β€β™€οΈ Shell & Kernel (μ‰˜κ³Ό 컀널)

κ°±μŠ€νƒ€Β·2023λ…„ 9μ›” 14일
0

1. 질의 배경

λ¦¬λˆ…μŠ€μ˜ ꡬ쑰λ₯Ό κ³΅λΆ€ν•˜λ‹€κ°€ Application μ•ˆμ— Shell, Shell μ•ˆμ— Kernel, Kernel μ•ˆμ— HW(CPU, RAM)이 μžˆλ‹€κ³  λ°°μ› λ‹€.

ꡬ체적으둜 Kernelκ³Ό Shell이 무엇인지 잘 λͺ¨λ₯΄κ² κ³ ,

이것듀이 λ¦¬λˆ…μŠ€μ˜ ꡬ쑰λ₯Ό μ–΄λ–»κ²Œ κ΅¬μ„±ν•˜λŠ”μ§€ 잘 λͺ¨λ₯΄κ² λ‹€.

2. 운영체제

μ—­ν•  : μ‚¬μš©μžμ™€ 컴퓨터 μ‚¬μ΄μ˜ μΈν„°νŽ˜μ΄μŠ€, μžμ›κ΄€λ¦¬ (CPU μŠ€μΌ€μ€„λ§, ν”„λ‘œμ„ΈμŠ€, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬, I/O λ””λ°”μ΄μŠ€ λ“± 관리)

μ’…λ₯˜ : MacOS, Windows, Linux λ“±

컀널과 μ‰˜μ„ μ΄μ•ΌκΈ°ν•˜μ§€ μ•Šκ³  μ™œ κ°‘μžκΈ° 운영체제?

컀널과 μ‰˜μ€ 운영체제의 핡심적인 역할을 ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λΌμ„œ!

3. μ‰˜κ³Ό 컀널

μ‰˜μ€ 껍데기, μ£Όλ³€μ΄λΌλŠ” λœ»μ„ κ°€μ§€κ³  컀널은 μ•Œλ§Ήμ΄, ν•΅μ‹¬μ˜ λœ»μ„ κ°€μ§„λ‹€.

Unix 아킀텍쳐λ₯Ό 보면, 이 뜻이 잘 μ™€λ‹ΏλŠ”λ‹€.

μ‰˜μ€ OS의 μ™ΈλΆ€ 계측에 μœ„μΉ˜ν•œ 반면, 컀널은 OS의 λ‚΄λΆ€ 계측에 μœ„μΉ˜ν•΄μžˆλ‹€.

즉, μ‰˜μ€ μ‚¬μš©μžμ™€ 컀널을 μ—°κ²°ν•΄μ£ΌλŠ” μΈν„°νŽ˜μ΄μŠ€ 역할을 ν•˜λŠ” 반면,

컀널은 μ‰˜λ‘œλΆ€ν„° 전달받은 λͺ…령을 기계가 이해할 수 μžˆλŠ” μ–Έμ–΄λ‘œ λ³€ν™˜ν•˜μ—¬ CPU, I/O, λ©”λͺ¨λ¦¬ λ“± λ‹€μ–‘ν•œ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•œλ‹€.

μ •λ¦¬ν•˜μžλ©΄

1. μ‰˜ = 껍데기 = μ™ΈλΆ€ 계측 = μ‚¬μš©μžμ™€ 컀널 μ—°κ²°
2. 컀널 = 핡심 = λ‚΄λΆ€ 계측 = μ‰˜κ³Ό ν•˜λ“œμ›¨μ–΄ μ—°κ²°

4. μ‹œμŠ€ν…œ 콜 (System Call)

μ‚¬μš©μžλŠ” μ‹œμŠ€ν…œ 손상 λ°©μ§€λ₯Ό μœ„ν•΄ μ ‘κ·Όν•  수 μžˆλŠ” μ˜μ—­μ΄ μ œν•œλ˜μ–΄ μžˆμ–΄ ν•˜λ“œμ›¨μ–΄μ— μ—‘μ„ΈμŠ€ν•˜κΈ° μœ„ν•΄μ„  μ‹œμŠ€ν…œ μ½œμ΄λΌλŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Όν•œλ‹€.

μ‹œμŠ€ν…œ μ½œμ€ Mode bit 기반으둜 0은 컀널 λͺ¨λ“œ, 1은 μ‚¬μš©μž λͺ¨λ“œλ‘œ λ‚˜λ‰œλ‹€.

컀널 λͺ¨λ“œμ—μ„œλŠ” λͺ¨λ“  ν•˜λ“œμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈμ— μ ‘κ·Όν•  수 μžˆλ‹€. λ”°λΌμ„œ μ‹œμŠ€ν…œ 콜이 μ΄λ£¨μ–΄μ§ˆ λ•Œλ§ˆλ‹€ μ‚¬μš©μžλͺ¨λ“œμ—μ„œ 컀널 λͺ¨λ“œλ‘œ μ „ν™˜λ˜μ–΄μ•Όν•œλ‹€.

μœ„μ˜ λ‹€μ΄μ–΄κ·Έλž¨μ—μ„œ λ³΄μ΄λŠ” 것과 같이, μœ μ €μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μœ μ € λͺ¨λ“œμ—μ„œ μž‘λ™λ˜κ³ , μš΄μ˜μ²΄μ œλŠ” 컀널 λͺ¨λ“œμ—μ„œ μž‘λ™λœλ‹€.

μœ μ € μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν•˜λ“œμ›¨μ–΄μ— μ ‘κ·Όν•˜κΈ° μœ„ν•΄μ„œλŠ” μ‹œμŠ€ν…œ μ½œμ„ 톡해 컀널 λͺ¨λ“œλ‘œ μ „ν™˜λ˜μ–΄μ•Όν•œλ‹€.

μ‹œμŠ€ν…œμ΄ Turn ON 되면 CPUλŠ” 컀널 λͺ¨λ“œ(λ””ν΄νŠΈ)에 μžˆλ‹€.

(OSλ₯Ό 메인 λ©”λͺ¨λ¦¬μ— λ‘œλ”©ν•˜λŠ”λ°, OSκ°€ 컀널 λͺ¨λ“œμ— 있기 λ•Œλ¬Έ)

log IN λ‹€μŒμ—, CPUλŠ” μœ μ € λͺ¨λ“œλ‘œ μ „ν™˜ν•˜μ—¬ μœ μ € μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž‘λ™μ‹œν‚¨λ‹€.


(사진 좜처 : https://filmora.wondershare.kr/video-editing-software/pc-video-edit-program-filmora.html)

μ΄λ•Œ Window OSμ—μ„œ μ˜ν™”λ₯Ό λ³΄λŠ” 상황을 μƒμƒν•΄λ³΄μž.

μ˜ν™”λ₯Ό μž¬μƒν•˜κΈ° μœ„ν•΄ ν•΄λ‹Ή μ˜ν™”λ₯Ό ν΄λ¦­ν•΄μ•Όν•œλ‹€.

ν•˜μ§€λ§Œ μ˜ν™”λŠ” 메인 λ©”λͺ¨λ¦¬μ— 있고, 메인 λ©”λͺ¨λ¦¬λŠ” ν•˜λ“œμ›¨μ–΄μ΄κΈ°μ— CPUλŠ” μœ μ € λͺ¨λ“œμ—μ„œ ν•˜λ“œμ›¨μ–΄μ— μ ‘κ·Όν•  수 μ—†λ‹€.

λ”°λΌμ„œ OPEN() μ‹œμŠ€ν…œ μ½œμ„ μƒμ„±ν•˜μ—¬ CPUλ₯Ό 컀널 λͺ¨λ“œλ‘œ μ „ν™˜ν•œλ‹€.

이제 OSκ°€ 컀널 λͺ¨λ“œμ— μžˆμœΌλ‹ˆ 메인 λ©”λͺ¨λ¦¬μ—μ„œ ν•΄λ‹Ή νŒŒμΌμ„ μ—΄ 수 μžˆλ‹€.

νŒŒμΌμ„ μ—΄κ³  λ‚œ 이후에 λ‹€μ‹œ μœ μ € λͺ¨λ“œλ‘œ μ „ν™˜ν•œλ‹€.

그러면 μ˜ν™”λ₯Ό μœ μ € λͺ¨λ“œμ—μ„œ 보게 λœλ‹€.

μœ μ €κ°€ νŒŒμΌμ„ λ‹«κ³  μ‹Άλ‹€λ©΄, CLOSE() μ‹œμŠ€ν…œ μ½œμ„ 톡해 νŒŒμΌμ„ 닫을 수 μžˆλ‹€.

5. 좜처

  1. https://kimwooseok.com/cs/2021/07/22/CS-Kernel/
  2. https://sasca37.tistory.com/286
  3. https://cstaleem.com/user-mode-vs-kernel-mode-trap-vs-interrupt
profile
λ°°μ›Œμ„œ λ‚¨μ€„κ±°μ—μš”!

0개의 λŒ“κΈ€