x86 protection rings
Posted: Fri May 15, 2009 1:11 pm
Usually we use Ring 0 for the kernel and Ring 3 for user programs. Some drivers uses Ring 0, some other Ring 3.
But what about Rings 1 and 2?
I've read (from an unreliable source) that the Vista kernel runs some drivers in Ring 1, to have more stability than Ring 0 and more speed than Ring 3. Is this true?
How can this be realized? IIRC if I use paging I can only use segments with Ring 0 for Kernel page or Ring 3 for User page.
What are the differences between the 4 rings? In Ring 0 you are allowed to run any instruction, while in Ring 3 you cannot run many privileged instructions such as CLI/STI/HLT LGDT/LIDT/LTR and so. Ring 1 and 2 have the possibility to run such instructions?
Thanks
But what about Rings 1 and 2?
I've read (from an unreliable source) that the Vista kernel runs some drivers in Ring 1, to have more stability than Ring 0 and more speed than Ring 3. Is this true?
How can this be realized? IIRC if I use paging I can only use segments with Ring 0 for Kernel page or Ring 3 for User page.
What are the differences between the 4 rings? In Ring 0 you are allowed to run any instruction, while in Ring 3 you cannot run many privileged instructions such as CLI/STI/HLT LGDT/LIDT/LTR and so. Ring 1 and 2 have the possibility to run such instructions?
Thanks