Privilege level

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Privilege level order in Intel x86 microprocessors.

A privilege level in the x86 and x86-64 instruction sets controls the access of the program currently running on the processor to resources such as memory regions, I/O ports, and special instructions. There are 4 privilege levels ranging from 0 which is the most privileged, to 3 which is least privileged. Most modern operating systems use level 0 for the kernel/executive, and use level 3 for application programs. Any resource available to level n is also available to levels 0 to n, so the privilege levels are "rings". When a lesser privileged process tries to access a higher privileged process, a General Protection Fault is reported by the OS.

It is not necessary to use all four privilege levels, because the current Operating Systems like Windows, Linux, etc. mostly are using Paging mechanism and Paging only has one bit to specify the privilege level which is either Supervisor or User (U/S Bit). Windows NT uses the two-level system.[1] The real mode programs in 8086 are executed at level 0 (highest privilege level) whereas virtual mode in 8086 executes all programs at level 3.[2]

See also[edit]


  1. ^ Russinovich, Mark E.; David A. Solomon (2005). Microsoft Windows Internals (4 ed.). Microsoft Press. pp. 16. ISBN 978-0-7356-1917-3
  2. ^ Sunil Mathur, "Microprocessor 8086: Architecture, Programming and Interfacing" , Eastern Economy Edition, PHI Learning
  • Intel 80386 Programmer's Reference