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가 하드웨어와 직접 말하는 건 커널의 명령을 통해서만 이루어짐
- 커널은 항상 커널 모드에서 돌아가고, 유저는 유저 모드에 갇혀 있음