Skip to content

Latest commit

Β 

History

History
89 lines (63 loc) Β· 5.73 KB

Kernel.md

File metadata and controls

89 lines (63 loc) Β· 5.73 KB

컀널(Kernel)

μ»€λ„μ΄λž€?

운영 체제의 ν•΅μ‹¬μœΌλ‘œμ¨ H/W와 ν”„λ‘œμ„ΈμŠ€μ˜ μš΄μš©μ„ μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄

  • 운영 체제의 λ‹€λ₯Έ λΆ€λΆ„ 및 μ‘μš© ν”„λ‘œκ·Έλž¨ μˆ˜ν–‰μ— ν•„μš”ν•œ μ—¬λŸ¬ 가지 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•œλ‹€.
  • μš°λ¦¬κ°€ μ•„λŠ” 운영 체제의 κΈ°λŠ₯은 보톡 컀널이 λ‹΄λ‹Ήν•œλ‹€.

μš΄μ˜μ²΄μ œμ™€ μ»€λ„μ˜ 차이

  • 컀널은 항상 컴퓨터 μžμ›λ“€λ§Œ 바라보고 μžˆλ‹€.
  • 컀널은 μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ€ μ „ν˜€ μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ„ μœ„ν•΄ μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž¨μ΄ ν•„μš”ν•˜λ‹€. ex) Linux의 μ‰˜(Shell)
컀널 운영 체제
κΈ°λ³Έ 운영 체제의 μ€‘μš”ν•œ λΆ€λΆ„ μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž¨
μΈν„°νŽ˜μ΄μŠ€ S/W와 H/W κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€ H/W와 μ‚¬μš©μž κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€
μœ ν˜• νšμΌν™”λœ 컀널과 마이크둜 컀널 단일 및 닀쀑 ν”„λ‘œκ·Έλž˜λ° 일괄 처리 μ‹œμŠ€ν…œ, λΆ„μ‚° 운영 체제, μ‹€μ‹œκ°„ 운영 체제 λ“±
λͺ©μ  λ©”λͺ¨λ¦¬ 관리, ν”„λ‘œμ„ΈμŠ€ 관리, μž‘μ—…κ΄€λ¦¬, λ””μŠ€ν¬ 관리 μ»€λ„μ˜ κΈ°λŠ₯ 외에도 컴퓨터외 보호 및 λ³΄μ•ˆ λ“±

μ»€λ„μ˜ 쑴재 이유

  • μ»΄ν“¨ν„°μ˜ 전원을 켜면 μš΄μ˜μ²΄μ œλŠ” 이와 λ™μ‹œμ— μˆ˜ν–‰λœλ‹€.
    S/Wκ°€ 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ μˆ˜ν–‰λ˜κΈ° μœ„ν•΄μ„œλŠ” λ©”λͺ¨λ¦¬μ— κ·Έ ν”„λ‘œκ·Έλž¨μ΄ μ˜¬λΌκ°€ μžˆμ–΄μ•Όν•œλ‹€.
    ν•˜μ§€λ§Œ, 운영체제처럼 규λͺ¨κ°€ 큰 ν”„λ‘œκ·Έλž¨μ΄ λͺ¨λ‘ λ©”λͺ¨λ¦¬μ— μ˜¬λΌκ°„λ‹€λ©΄ λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ λ‚­λΉ„κ°€ 심해진닀.
    λ”°λΌμ„œ, 운영 체제 쀑 항상 ν•„μš”ν•œ λΆ€λΆ„λ§Œμ„ 전원이 켜짐과 λ™μ‹œμ— λ©”λͺ¨λ¦¬μ— μ˜¬λ €λ†“κ³  그렇지 μ•Šμ€ 뢀뢄은 ν•„μš”ν•  λ•Œ λ©”λͺ¨λ¦¬μ—μ„œ μ˜¬λ €μ„œ μ‚¬μš©ν•œλ‹€.
    이 λ•Œ λ©”λͺ¨λ¦¬μ— μƒμ£Όλ˜λŠ” 운영체제의 뢀뢄을 컀널이라고 ν•œλ‹€.
    컀널은 운영 체제의 핡심 뢀뢄이며, 운영 μ²΄μ œλŠ” 컀널 뿐만 μ•„λ‹ˆλΌ 각쒅 μ‹œμŠ€ν…œμ„ μœ„ν•œ μœ ν‹Έλ¦¬ν‹°λ₯Ό κ΄‘λ²”μœ„ν•˜κ²Œ ν¬ν•¨ν•˜λŠ” κ°œλ…μ΄λ‹€.

μ»€λ„μ˜ μ—­ν• 

  • μ»€λ„μ˜ κ°€μž₯ 큰 역할은 μ»΄ν“¨ν„°μ˜ 물리적 μžμ›κ³Ό 좔상화 μžμ›μ„ κ΄€λ¦¬ν•˜λŠ” 것이닀.
  • 컀널은 운영 μ²΄μ œκ°€ ν•˜λ“œμ›¨μ–΄μ— μžˆλŠ” μžμ›μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ 닀리 역할을 ν•œλ‹€.
  • 컀널은 H/W와 S/W 사이에 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜μ—¬ ν•˜λ“œμ›¨μ–΄ μžμ›μ— μ ‘κ·Όν•˜κ³  관리할 수 있게 ν•œλ‹€.
  • 컀널은 ν•˜λ“œμ›¨μ–΄μ˜ I/Oλ₯Ό κ΄€λ¦¬ν•˜κ³  μ†Œν”„νŠΈμ›¨μ–΄μ˜ μš”μ²­(System Call)을 컴퓨터 ν•˜λ“œμ›¨μ–΄(CPU, Memory, Devices)κ°€ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ μš”μ²­μ„ λ³€ν™˜ν•œλ‹€.

μ»€λ„μ˜ μ£Όμš” κΈ°λŠ₯

  • ν”„λ‘œμ„ΈμŠ€ 관리: CPUλ₯Ό μ–΄λŠ ν”„λ‘œμ„ΈμŠ€μ— μ–΄λ–»κ²Œ 할당할지 κ²°μ •ν•œλ‹€.
  • λ©”λͺ¨λ¦¬ 관리: λ©”λͺ¨λ¦¬ 곡간을 μ–΄λ–»κ²Œ μ‚¬μš©ν• μ§€ κ²°μ •ν•œλ‹€.
  • λ„€νŠΈμ›Œν¬: λ„€νŠΈμ›Œν¬μ˜ 데이터 μž…μΆœλ ₯을 λ°›μ•„ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ£Όκ±°λ‚˜ λ„€νŠΈμ›Œν¬ μž₯치λ₯Ό 톡해 μ†‘μˆ˜μ‹ ν•œλ‹€.
  • 파일 μ‹œμŠ€ν…œ 관리: 기둝된 데이터λ₯Ό 물리적인 μž₯μΉ˜μ— μ €μž₯ν•˜κ±°λ‚˜ μ½μ–΄μ£ΌλŠ” κΈ°λŠ₯을 ν•œλ‹€.
  • μž₯치 λ“œλΌμ΄λ²„: 컴퓨터에 μ—°κ²°λœ μž₯μΉ˜λ“€μ„ λ“œλΌμ΄λ²„λΌλŠ” 맀개체λ₯Ό 톡해 μ œμ–΄ν•˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ œμ–΄ν•  수 있게 ν•΄μ€€λ‹€.

μ‹œμŠ€ν…œ 콜(System Call)μ΄λž€?

운영 체제의 컀널이 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€μ— λŒ€ν•΄, μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μš”μ²­μ— 따라 컀널에 μ ‘κ·Όν•˜κΈ° μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€

  • μš°λ¦¬κ°€ 일반적으둜 μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ€ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄λ‹€. μœ μ € 레벨의 ν•¨μˆ˜λ“€ λ§ŒμœΌλ‘œλŠ” λ§Žμ€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° νž˜λ“€κΈ° λ•Œλ¬Έμ—, μ»€λ„μ˜ 도움을 λ°˜λ“œμ‹œ λ°›μ•„μ•Ό ν•œλ‹€.
  • μ΄λŸ¬ν•œ μž‘μ—…μ€ μ‘μš© ν”„λ‘œκ·Έλž¨μœΌλ‘œ λŒ€ν‘œλ˜λŠ” μœ μ € ν”„λ‘œμ„ΈμŠ€μ—μ„œλŠ” μˆ˜ν–‰ν•  수 μ—†κΈ° λ•Œλ¬Έμ—, 컀널 λͺ¨λ“œλ‘œ μ „ν™˜μ„ ν•΄μ•Όλ§Œ ν•΄λ‹Ή μž‘μ—…μ„ μˆ˜ν–‰ν•  κΆŒν•œμ΄ 생긴닀.
  • 컀널 λͺ¨λ“œμ—μ„œ μ‹œμŠ€ν…œ μ½œμ„ 톡해 μ€‘μš”ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄μžˆλ‹€.

컀널 곡간과 μœ μ € 곡간

  • 운영 μ²΄μ œμ—μ„œ 컀널과 μ‘μš© ν”„λ‘œκ·Έλž¨μ€ CPU의 κΆŒν•œ μˆ˜μ€€μ΄λ‚˜ ν•˜λ“œμ›¨μ–΄ μ ‘κ·Ό λŠ₯λ ₯이 λ‹€λ₯΄λ‹€.
  • 컀널은 CPU μ‹œμŠ€ν…œμ˜ λ¬Όλ¦¬μ£Όμ†Œκ°€ μΌμΉ˜ν•˜λŠ” 링컀 ꡬ쑰λ₯Ό 가지고 νŠΉμ • λ©”λͺ¨λ¦¬ μœ„μΉ˜μ—μ„œ λ™μž‘ν•œλ‹€.
    이 λ•Œ μ»€λ„μ˜ λͺ¨λ“  μ£Όμ†ŒλŠ” 물리 μ£Όμ†Œλ‘œ κ³ μ •λ˜μ–΄ 컴파일되고 λ‘œλ“œλ˜μ–΄ μ‹€ν–‰λœλ‹€.
    λ”°λΌμ„œ 컀널은 λΆ€νŒ… κ³Όμ •μ—μ„œ μ „μ²΄λ©”λ‘œλ¦¬ λ¦¬μ†ŒμŠ€ 쀑에 일정 뢀뢄을 μ μœ ν•˜μ—¬ λ™μž‘ν•˜κ³  μΈν„°λŸ½νŠΈ λ“± λͺ¨λ“  ν•˜λ“œμ›¨μ–΄ 접근이 κ°€λŠ₯ν•˜λ‹€.
  • μ‘μš© ν”„λ‘œκ·Έλž¨μ€ 컀널이 μ œκ³΅ν•˜λŠ” μžμ›μ„ μ‚¬μš©ν•˜λ―€λ‘œ λ©”λ‘œλ¦¬μ—μ„œ 상황에 따라 λ‹€λ₯Έ μœ„μΉ˜λ₯Ό μ μœ ν•˜κ³  μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ— 물리 μ£Όμ†Œλ₯Ό ν™•μ •ν•  수 μ—†λ‹€.
    λ˜ν•œ, κΆŒν•œ μˆ˜μ€€μ΄ μ‚¬μš©μž 곡간(User space)μ—μ„œ λ™μž‘ν•˜λ©° νŠΉμ •ν•œ 기계어 λͺ…λ Ήμ–΄ 싀행이 λΆˆκ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— 컀널에 μ˜μ‘΄ν•΄μ•Όλ§Œ ν•œλ‹€.
  • μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ μ»€λ„μ˜ μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” 방법이 μ‹œμŠ€ν…œ μ½œμ΄λ‹€.

νŠΉμ • μž‘μ—…μ—μ„œ κΆŒν•œμ΄ ν•„μš”ν•œ 이유

  • 해컀가 ν”Όν•΄λ₯Ό μž…νžˆκΈ° μœ„ν•΄ μ•…μ˜μ μœΌλ‘œ μ‹œμŠ€ν…œ μ½œμ„ μ‚¬μš©ν•˜λŠ” κ²½μš°λ‚˜ 초보 μ‚¬μš©μžκ°€ ν•˜λ“œμ›¨μ–΄ λͺ…λ Ήμ–΄λ₯Ό 잘 λͺ°λΌμ„œ μ•„λ¬΄λ ‡κ²Œλ‚˜ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν–ˆμ„ 경우, μ‹œμŠ€ν…œ 전체λ₯Ό λ§κ°€λœ¨λ¦΄ κ°€λŠ₯성이 있기 λ•Œλ¬Έμ΄λ‹€.
  • λ”°λΌμ„œ, μ΄λŸ¬ν•œ λͺ…령어듀은 νŠΉλ³„ν•˜κ²Œ 컀널 λͺ¨λ“œμ—μ„œλ§Œ μ‹€ν–‰ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆκ³ , μœ μ € λͺ¨λ“œμ—μ„œ μ‹œμŠ€ν…œ μ½œμ„ ν˜ΈμΆœν•  κ²½μš°μ—λŠ” μš΄μ˜μ²΄μ œμ—μ„œ λΆˆλ²•μ μΈ 접근이라 μ—¬κΈ΄λ‹€.

μ‹œμŠ€ν…œ 콜의 μœ ν˜•

  • ν”„λ‘œμ„ΈμŠ€ μ œμ–΄(process control)
  • 파일 μ‘°μž‘(file manipulation)
  • μž₯치 관리(device management)
  • 정보 μœ μ§€(information maintenance)
  • 톡신(communication)