변수의 기록

(os) 커널이란 무엇인가? (예시 포함 아주 쉽게 설명) 본문

CS지식/운영체제 (Operating System)

(os) 커널이란 무엇인가? (예시 포함 아주 쉽게 설명)

불광동 물주먹 2025. 4. 15. 01:09

1. 커널이란 무엇인가?

  • OS 안에 존재하는 놈이다. OS의 심장이자 가장 권한이 센 놈.
  • 우리가 흔히 말하는 "Linux", "Windows" 같은 건 운영체제 전체고,
  • 그 안에 있는 가장 중요한 핵심 부분이 커널(Kernel).

즉, --> 커널 ⊂ OS


 2. 커널은 어디서 돌아가나?

커널 모드(Kernel Mode)

  • CPU에는 모드가 두 개 있음:
    • 유저 모드(User Mode): 우리가 평소 실행하는 애플리케이션 (브라우저, 게임 등)
    • 커널 모드(Kernel Mode): 운영체제 커널, 드라이버, 시스템 콜 처리 등

유저 모드에서는 메모리, 하드웨어, CPU 자원에 직접 접근 불가
커널 모드에서만 직접 명령어 실행, 메모리 조작, I/O 제어 가능


 3.커널이 하는 일 (진짜 중요함)


 

영역 역할
프로세스/스레드 관리 누가 언제 CPU 쓰는지 결정 (스케줄링)
메모리 관리 가상 메모리, 페이지 테이블, TLB 제어
파일 시스템 관리 파일 열기, 읽기, 쓰기 요청 처리
디바이스 I/O 관리 SSD, 키보드, 네트워크카드와의 통신
시스템 콜 처리 유저 프로그램이 요청한 작업 처리
보안/권한 관리 접근 권한, 사용자 분리 등

 4. 유저 → 커널로 어떻게 요청?

시스템 콜(System Call)

예시:

 
read(fd, buf, len);  // 유저 모드 함수 호출
→ 내부적으로 커널에 read 요청
→ 커널이 하드웨어에서 읽어서 buf에 채워줌

이 과정에서 모드 전환 (User → Kernel) 이 일어남.
보통은 int 0x80, syscall 명령 같은 걸 통해 전환됨 (CPU가 제공).


5. 요약

  • 커널은 OS 안에 있는 가장 중요한 중추
  • 유저 프로그램은 커널 없이는 하드웨어 접근 불가
  • 커널은 모든 자원(CPU, 메모리, I/O) 을 통제하고 조율
  • CPU가 하드웨어와 직접 말하는 건 커널의 명령을 통해서만 이루어짐
  • 커널은 항상 커널 모드에서 돌아가고, 유저는 유저 모드에 갇혀 있음