Windows Driver

[Windows Driver] User mode and kernel mode

하루삼십만원 2020. 11. 12. 09:13
반응형

Windows에서 실행되는 컴퓨터의 processor2가지 mode가 있다. User modeKernel mode이다. 이 Processor는 어떤 typecode가 실행되는지에 따라 Processor에서 두 가지 모드를 서로 전환해 준다. ApplicationUser mode에서 실행되고 핵심 운영체제 componentskernel mode에서 실행된다. 많은 driver들이 kernel mode에서 동작하지만, 몇몇은 user mode에서 동작한다.

 

User mode application을 시작할 때, WindowsApplication을 위한 process를 만든다. Process applicationprivate virtual address space와와 private handle table을 제공한다. Application의 가상 주소 공간은 private이기 때문에, 하나의 application이 다른 application에 속해 있는 data를 변경할 수 없다. 각각의 application은 독자적으로 동작하고 crash가 발생하면, 그 crash는 하나의 application에만 영향을 미친다. 그래서 다른 application이나 운영체제는 crash의 영향을 받지 않는다.

 

Private이 되는 것뿐만 아니라, user mode application의 가상 주소 공간은 제한되어 있다. User mode에서 실행되는 processor는 운영체제가 예약한 가상 주소에 접근할 수 없다. User mode application의 가상 주소 공간 제한은 중요한 system data가 변조되거나 손상되는 것으로부터 application을 보호해 준다.

 

Kernel mode에서 실행되는 모든 code는 단일한 가상 주소 공간을 공유한다. Kernel mode driver는 다른 driver들이나 운영체제로부터 독립되어 있지 않음을 의미한다. Kernel mode driver가 갑자기 잘못된 가상 주소를 쓰면 그것과 연관된 운영체제나 다른 Driver들이 손상될 수 있다. 만약 kernel drivercrash되면 전체 운영체제가 crash 된다.

 

https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode

 

 

반응형