Windows 운영체제에는 커널 모드(Kernel Mode)와 사용자 모드(User Mode)라는 두 가지 실행 모드가 존재합니다. 하지만 이 둘의 차이를 정확히 아는 사용자는 많지 않습니다. 사실 대부분의 사용자는 이러한 모드의 존재 자체를 모른 채 이미 두 모드를 사용해 왔습니다. 컴퓨터를 좀 더 깊이 이해하고 싶다면, 지금부터 차근차근 살펴보시기 바랍니다.
사용자 모드와 커널 모드 개요
Windows가 실행 중인 컴퓨터에는 두 가지 모드가 있습니다. 바로 사용자 모드와 커널 모드입니다. CPU(마이크로프로세서)는 실행 중인 코드의 종류에 따라 자동으로 두 모드 사이를 전환합니다. 일반 응용 프로그램은 사용자 모드에서 실행되도록 설계되며, 운영체제의 핵심 구성 요소는 커널 모드에서 실행됩니다. 대부분의 드라이버는 커널 모드에서 작동하지만, 사용자 모드에서 실행되는 드라이버도 일부 존재합니다.
Windows의 커널 모드와 사용자 모드

커널 모드와 사용자 모드의 핵심 개념을 이해하는 것은 고급 컴퓨터 사용자에게 필수적인 지식입니다. 이 글에서는 다음 내용을 다룹니다.
- 커널 모드는 어떻게 작동하는가?
- 사용자 모드는 어떻게 작동하는가?
- 커널 모드와 사용자 모드의 차이점은 무엇인가?
- Windows는 시스템 리소스와 사용자 응용 프로그램을 어떻게 분리하는가?
1] Windows 11/10에서 커널 모드는 어떻게 작동할까?
마이크로소프트는 다음과 같이 설명합니다.
커널 모드에서 실행되는 모든 코드는 단일 가상 주소 공간을 공유합니다. 즉, 커널 모드 드라이버는 다른 드라이버나 운영체제 자체로부터 격리되지 않습니다. 커널 모드 드라이버가 실수로 잘못된 가상 주소에 데이터를 기록하면, 운영체제나 다른 드라이버에 속한 데이터가 손상될 수 있습니다. 커널 모드 드라이버가 충돌하면 운영체제 전체가 함께 충돌합니다.
즉, 커널 모드에서 실행되는 모든 코드는 동일한 가상 주소 공간을 공유합니다. 이것이 의미하는 바는, 커널 모드 드라이버가 다른 드라이버나 운영체제와 서로 분리되어 있지 않다는 점입니다.
만약 커널 모드 드라이버가 실수로 잘못된 가상 주소에 데이터를 기록하면, 운영체제와 관련된 데이터가 손상될 수 있으며, 다른 드라이버 역시 같은 방식으로 영향을 받을 수 있습니다.
또한 커널 모드 드라이버에서 오류가 발생해 충돌하면, Windows 11/10 운영체제 전체가 다운될 수 있습니다.
함께 읽으면 좋은 글: OS에서 커널이란 무엇일까? 커널의 종류 알아보기
2] Windows 11/10에서 사용자 모드는 어떻게 작동할까?
마이크로소프트는 다음과 같이 설명합니다.
사용자 모드 응용 프로그램을 시작하면 Windows는 해당 응용 프로그램을 위한 프로세스를 생성합니다. 프로세스는 응용 프로그램에 전용 가상 주소 공간과 전용 핸들 테이블을 제공합니다. 응용 프로그램의 가상 주소 공간은 비공개이므로, 한 응용 프로그램이 다른 응용 프로그램의 데이터를 변경할 수 없습니다. 각 응용 프로그램은 격리된 상태로 실행되며, 하나의 응용 프로그램이 충돌하더라도 그 피해는 해당 응용 프로그램에 국한됩니다. 다른 응용 프로그램과 운영체제는 충돌의 영향을 받지 않습니다.
사용자가 사용자 모드 응용 프로그램을 실행하면, Windows 11/10은 해당 응용 프로그램을 위한 프로세스를 생성합니다. 이 프로세스는 응용 프로그램에 전용 핸들 테이블과 가상 주소 공간을 제공합니다.
여기서 중요한 점은, 하나의 응용 프로그램이 다른 응용 프로그램의 데이터를 수정할 수 없다는 것입니다. 응용 프로그램의 가상 주소 공간은 항상 비공개로 유지되기 때문입니다. 모든 응용 프로그램은 서로 격리된 상태로 실행되므로, 특정 앱이 충돌하더라도 그 영향은 해당 앱에만 미치고, 나머지 앱들은 정상적으로 계속 실행됩니다.
3] 커널 모드와 사용자 모드의 차이점
두 모드의 가장 큰 차이는 바로 권한 수준입니다. 사용자 모드에서 실행되는 응용 프로그램은 제한된 권한만 가지므로, 하드웨어 리소스에 직접 접근할 수 없습니다.
반면 커널 모드는 훨씬 높은 권한을 가집니다. 그렇기 때문에 커널 모드에서 사소한 오류가 발생하면 운영체제 전체가 다운될 수 있으며, 이는 사용자 모드에서는 불가능한 일입니다.
4] Windows는 시스템 리소스와 사용자 응용 프로그램을 어떻게 분리할까?
마이크로소프트는 프로세스의 현재 권한 수준을 판단하기 위해 계층화된 모델(Layered Model)을 사용하도록 Windows를 설계했습니다. 외곽 계층에 위치한 응용 프로그램은 비교적 적은 권한만 부여받는 반면, 핵심에 자리한 커널은 훨씬 많은 권한을 가집니다.
함께 읽으면 좋은 글: Windows 커널 모드 전원 관리자란?
커널 공간과 사용자 공간의 차이는 무엇인가?
커널 공간(Kernel Space)은 드라이버를 포함한 특권 운영체제 커널 프로세스를 실행하기 위해 예약된 영역입니다. 반면 사용자 공간(User Space)은 일반 프로그램과 소프트웨어를 실행하기 위해 예약된 메모리 영역입니다.
장치 드라이버는 커널 모드에서 실행되는가?
드라이버 역시 소프트웨어의 일종이므로, 장치 드라이버는 커널 모드에서 실행될 수 있습니다. 다만 장치 드라이버가 보호된 데이터에 접근할 필요가 없다면, 굳이 커널 모드에서 실행하지 않고 사용자 모드에서도 충분히 안정적으로 작동합니다.
다음 글: Linux 커널 인터랙티브 맵 살펴보기