사용자 모드 및 커널 모드

Windows를 실행하는 컴퓨터의 프로세서는 사용자 모드커널 모드의 두 가지 모드로 작동합니다. 프로세서는 실행 중인 코드 유형에 따라 이러한 모드 간에 전환됩니다. 애플리케이션은 사용자 모드에서 작동하지만 핵심 운영 체제 구성 요소는 커널 모드에서 작동합니다. 많은 드라이버가 커널 모드에서 작동하지만 일부는 사용자 모드에서 작동할 수 있습니다.

사용자 모드

사용자 모드에서 애플리케이션을 시작하면 Windows에서 애플리케이션에 대한 프로세스를 만듭니다. 이 프로세스는 프라이빗 가상 주소 공간 과 프라이빗 핸들 테이블을 애플리케이션에 제공합니다. 각 애플리케이션의 가상 주소 공간은 프라이빗이므로 한 애플리케이션은 다른 애플리케이션의 데이터를 수정할 수 없습니다. 각 애플리케이션은 격리된 상태로 실행되므로 충돌하는 경우 다른 애플리케이션이나 운영 체제에 영향을 주지 않습니다.

사용자 모드 애플리케이션의 가상 주소 공간도 제한됩니다. 사용자 모드에서 실행되는 프로세스는 운영 체제용으로 예약된 가상 주소에 액세스할 수 없습니다. 사용자 모드 애플리케이션의 가상 주소 공간을 제한하면 애플리케이션이 중요한 운영 체제 데이터를 수정하거나 손상시키지 않습니다.

커널 모드

커널 모드에서 실행되는 모든 코드는 단일 가상 주소 공간을 공유합니다. 따라서 커널 모드 드라이버는 다른 드라이버 또는 운영 체제에서 격리되지 않습니다. 커널 모드 드라이버가 잘못된 가상 주소에 실수로 쓰는 경우 운영 체제 또는 다른 드라이버에 속하는 데이터가 손상될 수 있습니다. 커널 모드 드라이버가 충돌하면 전체 운영 체제가 충돌합니다.

다음 다이어그램에서는 사용자 모드와 커널 모드 구성 요소 간의 통신을 보여 줍니다.

컴퓨터 시스템의 사용자 모드와 커널 모드 구성 요소 간의 통신을 보여 주는 다이어그램

가상 주소 공간