모든 운영체제—Windows, macOS, Linux, Android를 막론하고—에는 커널(Kernel)이라 불리는 핵심 프로그램이 있으며, 이는 시스템 전체를 총괄하는 '관리자' 역할을 합니다. 커널은 곧 OS의 심장입니다. 커널은 다른 모든 것을 제어하는 컴퓨터 프로그램으로, 컴퓨터에서 일어나는 모든 작업은 반드시 커널을 거쳐야 합니다. 이 글에서는 운영체제에서 커널이 무엇인지, 그리고 커널에는 어떤 종류가 있는지 살펴보겠습니다.
운영체제(OS)에서 커널이란?
커널은 OS의 핵심 프로그램일 뿐만 아니라, 부트로더(bootloader)가 실행된 후 가장 먼저 로드되는 프로그램이기도 합니다. 이후 하드웨어와 소프트웨어(애플리케이션) 사이의 모든 통신을 담당합니다. 예를 들어 프로그램을 실행하면 사용자 인터페이스가 커널에 요청을 전달하고, 커널은 CPU와 메모리에 처리 능력, 메모리 공간 등 필요한 자원을 할당하여 해당 애플리케이션이 화면 앞단에서 원활하게 동작하도록 돕습니다.

커널을 '번역기'에 비유할 수 있습니다. 소프트웨어의 입출력(I/O) 요청을 CPU와 GPU가 이해할 수 있는 명령어 집합으로 변환하는 것이죠. 쉽게 말해 커널은 소프트웨어와 하드웨어 사이의 중간 계층으로, 모든 것을 가능하게 만드는 존재입니다. 커널이 관리하는 항목은 다음과 같습니다.
- CPU/GPU
- 메모리
- 입출력(I/O) 장치
- 자원 관리
- 메모리 관리
- 장치 관리
- 시스템 호출(System Call)
사용자 프로세스는 오직 시스템 호출(system call)을 통해서만 커널 공간(kernel space)에 접근할 수 있습니다. 프로그램이 직접 접근을 시도하면 오류(fault)가 발생합니다.
커널 보안과 보호
커널은 하드웨어를 보호하는 역할도 수행합니다. 보호 장치가 없다면 어떤 프로그램이든 컴퓨터에서 임의의 작업을 수행할 수 있으며, 그 결과 시스템 충돌, 데이터 손상 등 심각한 문제가 발생할 수 있습니다.
현대의 컴퓨터는 하드웨어 수준에서 보안이 구현됩니다. 예를 들어 Windows는 신뢰할 수 있는 출처에서 서명 인증을 받지 않은 드라이버는 로드하지 않습니다. Secure Boot(보안 부팅)와 Trusted Boot(신뢰 부팅)가 대표적인 예입니다.
Secure Boot(보안 부팅): PC 업계 관계자들이 함께 개발한 보안 표준으로, 시스템 시작 과정에서 승인되지 않은 애플리케이션의 실행을 차단하여 악성 프로그램으로부터 시스템을 보호합니다. 이 기능은 PC 제조사가 신뢰하는 소프트웨어만으로 부팅이 이루어지도록 보장합니다. PC가 시작될 때마다 펌웨어는 펌웨어 드라이버(Option ROM)와 운영체제를 포함한 모든 부팅 소프트웨어의 서명을 검사하고, 서명이 확인되면 PC가 부팅되며 펌웨어는 운영체제에 제어권을 넘겨줍니다.
Trusted Boot(신뢰 부팅): VTPM(Virtual Trusted Platform Module)을 활용해 Windows 10 커널을 로드하기 전에 디지털 서명을 검증합니다. 이어서 부팅 드라이버, 시작 파일, ELAM 등 Windows 시작 프로세스의 나머지 모든 구성 요소도 순차적으로 확인합니다. 파일이 조금이라도 변경되었다면 부트로더가 이를 감지하고 손상된 구성 요소로 판단하여 로드를 거부합니다. 요약하자면, 부팅 과정의 모든 요소에 대한 신뢰 체인(chain of trust)을 제공하는 기능입니다.
커널의 종류
커널은 보안이 확보된 통신 경로를 통해 하드웨어와 직접 소통할 수도 있습니다. 따라서 기업은 자사 하드웨어와 연동되는 전용 커널을 개발할 수 있습니다. 세탁기를 예로 들어볼까요? 노브를 돌리고 시간을 설정하는 수준의 기능이라면 기본적인 커널만으로도 충분합니다. 다만 커널 자체도 시간이 지나면서 점점 복잡해졌고, 그 결과 여러 종류의 커널이 등장하게 되었습니다.
- 모놀리식 커널(Monolithic Kernel): OS와 커널이 하나의 메모리 공간에서 함께 실행되는 구조입니다. 보안이 크게 중요하지 않은 환경에 적합하고 접근 속도가 빠른 장점이 있지만, 디바이스 드라이버에 버그가 생기면 시스템 전체가 다운될 수 있습니다.
- 마이크로커널(Microkernel): 모놀리식 커널을 필요한 기능만 남기고 축소한 형태로, 커널 자체가 대부분의 작업을 처리하며 별도의 GUI가 필요 없습니다. 보안이 중요하고 시스템 충돌 가능성을 최소화해야 하는 환경에 적합합니다.
- 하이브리드 커널(Hybrid Kernel): 가장 널리 사용되는 형태로, Windows와 Apple의 macOS가 대표적입니다. 모놀리식 커널과 마이크로커널의 장점을 결합한 구조로, 드라이버는 커널 밖으로 분리하되 시스템 서비스는 커널 내부에 유지합니다. Windows 부팅 시 드라이버가 로드되는 방식과 유사합니다.
- 나노 커널(Nano Kernel): 커널은 필요하지만 대부분의 기능이 커널 외부에 구성되어야 하는 경우 사용됩니다.
- 엑소 커널(Exokernel): 프로세스 보호와 리소스 처리 기능만 제공하는 최소한의 커널입니다. 주로 내부 프로젝트를 실험·테스트할 때 활용되며, 이후 더 적합한 커널 유형으로 전환하는 방식으로 사용됩니다.
커널은 위에서 다룬 내용보다 훨씬 방대한 주제입니다. 깊이 파고들수록 커널의 정의는 더 넓어지고 깊어집니다. 이 글이 커널의 기본 개념을 이해하는 데 도움이 되기를 바랍니다.