운영체제
Kernel커널
커널(Kernel)은 운영체제의 핵심 구성 요소로, 하드웨어와 사용자 프로그램 사이에서 중재자 역할을 한다. 메모리 관리, 프로세스 스케줄링, 파일 시스템, 장치 드라이버 등 시스템의 기본 기능을 담당하며 컴퓨터가 켜진 순간부터 메모리에 상주한다.
커널의 위치
주요 기능
| 기능 | 설명 |
|---|---|
| 프로세스 관리 | 생성·종료·스케줄링·컨텍스트 스위칭 |
| 메모리 관리 | 가상 메모리, 페이징, 메모리 할당 |
| 파일 시스템 | 파일·디렉토리 생성·읽기·쓰기·삭제 |
| 네트워크 | TCP/IP 스택, 소켓 관리 |
| 장치 드라이버 | 하드웨어 추상화 (디스크, NIC, GPU 등) |
| 보안·권한 | 사용자 권한, 접근 제어 |
커널 아키텍처 유형
모놀리식 커널 (Monolithic Kernel)
모든 기능이 단일 커널 공간에서 실행.
마이크로커널 (Microkernel)
최소 기능만 커널에, 나머지는 사용자 공간으로.
하이브리드 커널
모놀리식 + 마이크로커널 혼합.
예: Windows NT, macOS (XNU)
주요 커널 비교
| 커널 | OS | 유형 | 특징 |
|---|---|---|---|
| Linux | Linux 계열 | 모놀리식 | 오픈소스, 서버·Android 기반 |
| XNU | macOS, iOS | 하이브리드 | BSD + Mach 마이크로커널 |
| NT | Windows | 하이브리드 | WDM 드라이버 모델 |
| Zircon | Fuchsia | 마이크로커널 | Google 차세대 OS |
시스템 콜 (System Call)
사용자 프로그램이 커널 기능을 요청하는 인터페이스.
주요 시스템 콜 분류
| 분류 | 예시 |
|---|---|
| 프로세스 제어 | fork, exec, exit, wait |
| 파일 관리 | open, read, write, close |
| 장치 관리 | ioctl, read, write |
| 정보 관리 | getpid, alarm, sleep |
| 통신 | socket, send, recv, pipe |
커널 모드 vs 사용자 모드
| 항목 | 커널 모드 | 사용자 모드 |
|---|---|---|
| 메모리 접근 | 전체 | 제한된 영역만 |
| 하드웨어 접근 | 직접 가능 | 시스템 콜 통해서만 |
| 권한 | Ring 0 | Ring 3 |
| 오류 발생 시 | 시스템 크래시 가능 | 해당 프로세스만 종료 |
커널 버전과 최신 동향
Linux 커널
세계에서 가장 많이 사용되는 오픈소스 모놀리식 커널. 리누스 토르발스가 1991년 작성.
- •버전: 6.x (2026 기준)
- •코드 규모: 약 3,400만 줄 (2024년)
- •기여자: 전 세계 수천 명 (Intel, Google, Red Hat 등 기업 참여)
eBPF (Extended Berkeley Packet Filter)
최신 Linux 커널의 핵심 혁신. 커널 코드를 수정하지 않고 커널 공간에서 샌드박스 프로그램을 실행하는 기술.
- •활용: 네트워킹 성능 개선, 보안 관찰, 트레이싱
- •대표 프로젝트: Cilium (쿠버네티스 네트워킹), Falco (보안 감시)
실시간 커널 (RT Kernel)
응답 시간을 마이크로초 단위로 보장하는 커널. 로봇, 산업 제어, 항공 분야에서 사용.
관련 개념
- •세마포어 (Semaphore) — 커널이 제공하는 동기화 메커니즘
- •데드락 (Deadlock) — 커널이 탐지·처리하는 문제
- •네트워크 (Network) — 커널의 네트워크 스택
참고문헌
- •Tanenbaum. Modern Operating Systems — Chapter 1
- •Silberschatz et al. Operating System Concepts — Chapter 2
- •Love, R. Linux Kernel Development
