Click here to Skip to main content
13,053,026 members (61,733 online)
Rate this:
Please Sign up or sign in to vote.
See more:
Ther driver model describes that there are 2 modes...user and kernel mode the kernel mode being mode privilidged from the user mode and documentattion describes the kernel mode independent form the user mode ie the two modes are independent of each other.

but when us make a click or access any part of software such as text box etc, the process has to communicate to kernel to receive input or post output to the i/o devices and thus kernel mode comes to play...Then why do we call the two modes independent???
Posted 24-Oct-12 6:17am

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

No. Who told you they are independent? They are isolated, and isolated at the level of hardware, the CPU which has four rings of access, but Windows uses just two. And nothing in user mode can call a kernel directly. Pay attention that the control is inverted: the user sends the input through hardware, and it causes hardware interrupt. All interrupt procedures are always set up in kernel mode; and it's physically impossible to set up one in the user mode: impossible not due to some programming access at the level of OS, but because the access is sealed by setting up the hardware. Now, the interrupt procedure code eventually triggers appropriate calls in user mode, in particular, it ultimately dispatches the high-level message (like mouse down) to the application event loop (GetMessage/DispatchMessage). So, in this very case the user mode never calls anything in kernel mode; the sequence of events is just the opposite.

The main ideas are explained here:[^].

But of course, some of API calls are eventually delegated from user mode to the kernel, when it is required. Please see:[^],[^].

Here is some interesting articles on the topic:[^],[^].

Please see also:[^].

Marcus Kramer 24-Oct-12 14:27pm
+5. Thorough.
Sergey Alexandrovich Kryukov 24-Oct-12 14:54pm
Thank you, Marcus. I wish I had a link to the manual on x86 architecture (x86-64 and Itanium are basically the same, with more registers/commands) I used, but it should be easy to find. Reading on just topic overview would make things pretty clear.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170713.1 | Last Updated 24 Oct 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100