카테고리 없음

커널(Kernel) 개념 정리

코코무 2025. 12. 9. 10:46
반응형

🗂️ 커널이란 무엇인가

운영체제(OS)의 핵심이자 가장 아래 계층, 하드웨어와 소프트웨어 사이를 중계하고 시스템 전체 자원을 통제한다.


주요 역할

1) 메모리 관리

커널은 시스템 RAM을 어떤 프로세스가 얼마나 사용할지 통제한다.

  • 각 프로세스가 사용할 메모리 영역을 분리
  • 물리 메모리 부족 시 스왑 사용 결정
  • 캐시/버퍼 메모리 관리
  • 페이지 폴트 처리
  • 한 프로세스가 다른 프로세스 메모리를 침범하지 못하도록 메모리 보호

❗메모리 사용량이 너무 높은 앱이 있어도, 커널이 메모리 충돌을 막아 시스템 전체가 죽지 않도록 관리한다.

❗메모리가 고갈되면 OOM Killer가 비효율적인 프로세스를 강제로 종료해 시스템 유지를 우선한다.

 

2) CPU 스케줄링

CPU는 한 번에 하나의 명령만 실행할 수 있다. 커널은 수백~수천 개의 프로세스가 있을 때 누구를 먼저 실행할지 결정한다.

  • 프로세스 우선순위 관리
  • 타임슬라이스 분배
  • 멀티코어 사용 최적화
  • 대기/실행/중지 상태 전환

커널이 제대로 CPU 스케줄링을 하지 못하면, 다음과 같은 증상이 나타난다.

  1. 시스템 전체 렉, 키보드와 마우스 입력 지연
  2. 특정 프로세스만 과하게 CPU를 쓰는 현상

 

3) 프로세스/스레드 관리

프로그램 자체는 실행의 대상이 아니다. 커널이 프로그램을 프로세스로 띄워서 자원을 할당해야 실행된다.

  • 프로세스 생성/종료
  • 스레드 관리
  • 프로세스 간 통신 관리: pipe, shared memory 등
  • context switching(실행 중인 프로세스를 교체)
  • fork/exec 수행

❗여러 프로그램이 동시에 실행되는 것처럼 보인다.
❗병렬 연산 및 백그라운드 기능이 가능해진다.

 

4) I/O·디바이스 통제 및 파일 시스템

커널은 모든 입출력 장치를 통제한다.

  • 디바이스 드라이버 로드
  • 파일 시스템 접근 관리
  • 블록 I/O 스케줄링
  • 버퍼링 및 캐싱
  • 데이터 손상 방지

❗프로그램은 하드웨어에 위험하기 때문에 직접 접근하지 못한다.

❗커널이 중간에서 안전하게 제어하고 결과만 전달한다.

 

5) 보안·권한·시스템콜 제공

커널은 시스템의 최종 권한 관문 역할을 수행한다.

  • 사용자/프로세스의 권한 레벨 검사
  • root 권한 관리
  • SELinux/AppArmor 정책 적용
  • 네임스페이스 같은 경리 기능
  • 시스템콜 제공: `open()', `read()', `fork()' 같은 OS 기능 API

❗앱은 커널이 허가해야만 하드웨어·파일·네트워크에 접근할 수 있다.

❗그래서 커널의 보안 취약점 = 시스템 전체 치명적 위험이다.

 

 

 

🗂️ 커널 업데이트

OS가 커널을 새 버전으로 교체하거나 패치하는 것


목적

  • 보안 취약점 패치
  • 버그 수정
  • 성능 개선
  • 새로운 하드웨어 지원
  • 새로운 기능 추가

업데이트 방식

  • 배포판 패키지 업데이트(예: `apt upgrade`, `yum update`)
  • 커널 직접 컴파일
  • 공급사 전용 툴