2025-09-30 23:45

Tags: 운영체제

커널(Kernel)

  • 하드웨어와 소프트웨어 사이의 중재자 역할을 수행한다.
  • 프로세스, 메모리, 파일, 입출력 장치 등 컴퓨터의 모든 핵심 자원을 관리하고 통제한다.

가. 프로세스 관리 (Process Management)

  • 실행 중인 모든 프로그램을 ‘프로세스’라고 부른다.
  • CPU는 하나인데 여러 프로세스를 동시에 실행하는 것처럼 보이게 하는 것이 바로 커널의 역할이다.
    • 이를 위해 커널은 각 프로세스에 CPU 사용 시간을 매우 짧은 단위로 잘게 쪼개어 나눠주는 **프로세스 스케줄링]**을 수행
      • 마치 유능한 비서가 여러 손님과의 미팅 시간을 분 단위로 쪼개어 관리하는 것과 같다.
    • 또한 프로세스의 생성, 종료, 프로세스 간의 통신(IPC, Inter-Process Communication)을 관리하며
    • 시스템이 원활하게 멀티태스킹을 수행하도록 돕는다.

나. 메모리 관리 (Memory Management)

  • 메모리(RAM)는 프로그램과 데이터가 실행 중에 머무는 작업 공간이다.
  • 커널은 각 프로세스가 필요로 하는 메모리 공간을 할당]하고, 사용이 끝나면 회수(Deallocate)한다.
  • 또한, 다른 프로세스의 메모리 영역을 침범하지 못하도록 철저히 격리한다.
  • 가장 중요한 기술 중 하나는 가상 메모리(Virtual Memory) 관리다.
    • 실제 물리 메모리보다 더 큰 공간을 각 프로세스에게 있는 것처럼 제공하여,
    • 프로그래머가 메모리 부족 걱정 없이 프로그램을 개발하고, 시스템이 더 효율적으로 메모리를 사용하도록 만든다.

다. 파일 시스템 관리 (File System Management)

  • 하드디스크나 SSD 같은 저장 장치에 데이터를 체계적으로 저장하고 검색할 수 있도록 하는 것이 파일 시스템이다.
    • 커널은 파일을 생성하고, 읽고, 쓰고, 지우는 모든 요청을 처리한다.
  • 또한 디렉터리(폴더) 구조를 관리하고, 파일 접근 권한을 제어하여 데이터의 무결성과 보안을 유지한다.
    • 사용자가 보기에는 간단한 파일 복사 작업이지만, 내부적으로는 커널이 수많은 디스크 입출력 작업을 조율하고 있는 것이다.

라. 장치 관리 (Device Management)

  • 컴퓨터에 연결된 키보드, 마우스, 모니터, 네트워크 카드 등 모든 입출력(I/O) 장치는 커널을 통해 제어된다.
  • 커널은 각 하드웨어 제조사가 제공하는 디바이스 드라이버(Device Driver) 를 통해 해당 장치와 통신한다.
    • 응용 프로그램이 “키보드 입력을 받아라”라고 요청하면,
    • 커널은 키보드 디바이스 드라이버를 통해 실제 하드웨어 신호를 받아들여 프로그램에 전달해 준다.
  • 이 덕분에 프로그램은 하드웨어의 종류와 상관없이 일관된 방식으로 장치를 사용할 수 있다.
특징일체형 커널 (Monolithic)마이크로커널 (Microkernel)하이브리드 커널 (Hybrid)
핵심 철학모든 것을 커널 하나에 통합최소 기능만 커널에 유지속도와 안정성의 절충
성능매우 빠름상대적으로 느림빠름
안정성낮음 (하나의 오류가 시스템 전체에 영향)높음 (오류가 해당 서비스에만 국한됨)비교적 높음
확장성/유지보수어려움쉬움비교적 쉬움
크기작음중간
대표 OSLinux, UNIX 계열QNX, MinixWindows, macOS