커널 (Kernel)

TL;DR

컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것(CPU, Memory, Devices, ...) 을 통제한다.

대부분의 시스템에서 부팅할 때, 부트로더 이후에 로드하는 프로그램 중의 하나이다. 커널은 소프트웨어로부터의 입출력 요청과 같은 부팅과정을 관리한다.

역할

  • 보안: 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
  • 자원 관리: 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원할하게 한다.
  • 추상화: 운영 체제의 복잡한 내부를 감추고 깔끔하고 일관성 있는 인터페이스를 제공하기 위해 하드웨어 추상화를 한다. 이는 프로그래머가 여러 장비에서 작동하는 프로그램을 개발하는 것을 돕는다.

종류

  • 단일형 커널: 커널의 다양한 서비스 및 고수준의 하드웨어 추상화를 하나로 묶은 것, OS개발자 입장에서 유지 보수가 어렵지만 성능이 좋다.
    • 단일형 커널의 예: Linux, Unix, 윈도9X 계열
  • 마이크로 커널: 하드웨어 추상화에 대한 간결한 작은 집합을 제공하고, 더 많은 기능은 서버 응용 소프트웨어를 통해 제공
    • 마이크로 커널의 예: 미닉스
  • 하이브리드 커널: 모노리틱 커널과 마이크로 커널의 혼합형
  • 나노 커널
    • 커널 코드의 양이 매우 작은 커널
    • OS 하위의 하이퍼바이저 레이어
    • 하드웨어 추상화 계층(HAL)

참고