Knowledge

Protection ring

Source 📝

784:
unrestricted environment of kernel mode, and then, in paradigmatic designs, only when absolutely necessary. All other software executes in one or more user modes. If a processor generates a fault or exception condition in a user mode, in most cases system stability is unaffected; if a processor generates a fault or exception condition in kernel mode, most operating systems will halt the system with an unrecoverable error. When a hierarchy of modes exists (ring-based security), faults and exceptions at one privilege level may destabilize only the higher-numbered privilege levels. Thus, a fault in Ring 0 (the kernel mode with the highest privilege) will crash the entire system, but a fault in Ring 2 will only affect Rings 3 and beyond and Ring 2 itself, at most.
38: 508:... it eventually became clear that the hierarchical protection that rings provided did not closely match the requirements of the system programmer and gave little or no improvement on the simple system of having two modes only. Rings of protection lent themselves to efficient implementation in hardware, but there was little else to be said for them. The attractiveness of fine-grained protection remained, even after it was seen that rings of protection did not provide the answer... This again proved a blind alley... 267: 95: 166:. Rings are arranged in a hierarchy from most privileged (most trusted, usually numbered zero) to least privileged (least trusted, usually with the highest ring number). On most operating systems, Ring 0 is the level with the most privileges and interacts most directly with the physical hardware such as certain CPU functionality (e.g. the control registers) and I/O controllers. 412:
modifying registers for various descriptor tables, or performing operations such as disabling interrupts. The idea of having two different modes to operate in comes from "with more power comes more responsibility" – a program in supervisor mode is trusted never to fail, since a failure may cause the whole computer system to crash.
765:
features may still be left unexploited), but when the OS is designed to be compatible with multiple, different CPU architectures, a large part of the CPU mode features may be ignored by the OS. For example, the reason Windows uses only two levels (ring 0 and ring 3) is that some hardware architectures that were supported in the past (such as
783:
Ultimately, the purpose of distinct operating modes for the CPU is to provide hardware protection against accidental or deliberate corruption of the system environment (and corresponding breaches of system security) by software. Only "trusted" portions of system software are allowed to execute in the
607:
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
415:
Supervisor mode is "an execution mode on some processors which enables execution of all instructions, including privileged instructions. It may also give access to a different address space, to memory management hardware and to other peripherals. This is the mode in which the operating system usually
411:
is a hardware-mediated flag that can be changed by code running in system-level software. System-level tasks or threads may have this flag set while they are running, whereas user-level applications will not. This flag determines whether it would be possible to execute machine code operations such as
791:
when the transition is from a level of high privilege to one of low privilege (as from kernel to user modes), but transitions from lower to higher levels of privilege can take place only through secure, hardware-controlled "gates" that are traversed by executing special instructions or when external
779:
was an operating system designed specifically for a special CPU architecture (which in turn was designed specifically for Multics), and it took full advantage of the CPU modes available to it. However, it was an exception to the rule. Today, this high degree of interoperation between the OS and the
383:
Effective use of ring architecture requires close cooperation between hardware and the operating system. Operating systems designed to work on multiple hardware platforms may make only limited use of rings if they are not present on every supported platform. Often the security model is simplified to
361:
in many operating systems that use the ring architecture. The hardware restrictions are designed to limit opportunities for accidental or malicious breaches of security. In addition, the most privileged ring may be given special capabilities (such as real memory addressing that bypasses the virtual
542:
section which contains functions that would normally require a system call, i.e. a ring transition. Instead of doing a syscall these functions use static data provided by the kernel. This avoids the need for a ring transition and so is more lightweight than a syscall. The function gettimeofday can
368:
version 7 architecture implements three privilege levels: application (PL0), operating system (PL1), and hypervisor (PL2). Unusually, level 0 (PL0) is the least-privileged level, while level 2 is the most-privileged level. ARM version 8 implements four exception levels: application (EL0),
764:
that they normally run. Proper use of complex CPU modes requires very close cooperation between the operating system and the CPU, and thus tends to tie the OS to the CPU architecture. When the OS and the CPU are specifically designed for each other, this is not a problem (although some hardware
169:
Special mechanisms are provided to allow an outer ring to access an inner ring's resources in a predefined manner, as opposed to allowing arbitrary usage. Correctly gating access between rings can improve security by preventing programs from one ring or privilege level from misusing resources
581:
allows the guest to run under Ring 0. VT-x introduces VMX Root/Non-root Operation: The hypervisor runs in VMX Root Operation mode, possessing the highest privilege. Guest OS runs in VMX Non-Root Operation mode, which allows them to operate at ring 0 without having actual hardware
582:
privileges. VMX non-root operation and VMX transitions are controlled by a data structure called a virtual-machine control. VT-x allows the hypervisor and the guest OS to both run under ring 0, rendering "Trap and Emulate" obsolete, improving virtualization performance.
247:, the kernel, drivers and applications typically run on ring 3 (however, this is exclusive to the case where protected-mode drivers or DOS extenders are used; as a real-mode OS, the system runs with effectively no protection), whereas 386 memory managers such as 662:), whereas applications running on the guest OS in a virtual machine or container could use the lowest level of privileges in user mode. The virtual machine and guest OS kernel could themselves use an intermediate level of instruction privilege to invoke and 608:
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
348:
The hardware severely restricts the ways in which control can be passed from one ring to another, and also enforces restrictions on the types of memory access that can be performed across rings. Using x86 as an example, there is a special
457:
into supervisor mode or even to the kernel space where trusted code of the operating system will perform the needed task and return the execution back to the userspace. Additional code can be added into kernel space through the use of
344:
served as the ring register. Thus code executing with the virtual PC set to 0xE200000, for example, would automatically be in ring 7, and calling a subroutine in a different section of memory would automatically cause a ring transfer.
702:, it shows the I/O privilege level of the current program or task. The Current Privilege Level (CPL) (CPL0, CPL1, CPL2, CPL3) of the task or program must be less than or equal to the IOPL in order for the task or program to access 484:
with the system, and code that runs in Ring 3 should be able to fail at any time without impact to the rest of the computer system. Ring 1 and Ring 2 are rarely used, but could be configured with different levels of access.
242:
does, to some extent, use three rings: ring 0 for kernel code and device drivers, ring 2 for privileged code (user programs with I/O access permissions), and ring 3 for unprivileged code (nearly all user programs). Under
574:, guest operating systems ran under ring 1. Any attempt that requires a higher privilege level to perform (ring 0) will produce an interrupt and then be handled using software, so called "Trap and Emulate". 209:, implemented them in hardware, with support for eight rings; Protection rings in Multics were separate from CPU modes; code in all rings other than ring 0, and some ring 0 code, ran in slave mode. 512:
To gain performance and determinism, some systems place functions that would likely be viewed as application logic, rather than as device drivers, in kernel mode; security applications (
205:("Appending Unit"), but that was not sufficient to provide full support for rings in hardware, so Multics supported them by trapping ring transitions in software; its successor, the 494:, to cost 1000–1500 cycles on most machines. Of these just around 100 are for the actual switch (70 from user to kernel space, and 40 back), the rest is "kernel overhead". In the 472:
is loaded), as well as other simple operating systems and many embedded devices run in supervisor mode permanently, meaning that drivers can be written directly as user programs.
174:
running as a user program in Ring 3 should be prevented from turning on a web camera without informing the user, since hardware access should be a Ring 1 function reserved for
647:
uses the two-level system. 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.
1354: 201:
mainframe computer did have some hardware access control, including the same two modes that the other GE-600 series machines had, and segment-level permissions in its
1152: 1541: 1501: 328:
The original Multics system had eight rings, but many modern systems have fewer. The hardware remains aware of the current ring of the executing instruction
380:
versus slave/unprivileged/user mode) in some systems. Operating systems running on hardware supporting both may use both forms of protection or only one.
488:
In most existing systems, switching from user mode to kernel mode has an associated high cost in performance. It has been measured, on the basic request
181:
X86S, a recently published Intel architecture, has only ring 0 and ring 3. Ring 1 and 2 will be removed under X86S since modern OSes never utilize them.
983: 531:, has been developed specifically for kernel mode deployment, to provide a local database for kernel-based application functions, and to eliminate the 178:. Programs such as web browsers running in higher numbered rings must request access to the network, a resource restricted to a lower numbered ring. 1791: 1666: 1606: 567:(codenamed "Pacifica") allow a guest operating system to run Ring 0 operations natively without affecting other guests or the host OS. 357:
instruction that transfers control in a secure way towards predefined entry points in lower-level (more trusted) rings; this functions as a
462:, but only by a user with the requisite permissions, as this code is not subject to the access control and safety limitations of user mode. 1738: 1517: 1572: 216:
than that. For example, Windows 7 and Windows Server 2008 (and their predecessors) use only two rings, with ring 0 corresponding to
538:
Functions are also sometimes moved across rings in the other direction. The Linux kernel, for instance, injects into processes a
132:
Computer operating systems provide different levels of access to resources. A protection ring is one of two or more hierarchical
1559:
Paul Barham; Boris Dragovic; Keir Fraser; Steven Hand; Tim Harris; Alex Ho; Rolf Neugebauer; Ian Pratt; Andrew Warfield (2003).
2067: 2038: 1382: 1125: 1100: 310: 2263: 1225: 453:
are three operating systems that use supervisor/user mode. To perform specialized functions, user mode code must perform a
1061: 1156: 1548: 1422: 2258: 1132:
The reason Windows uses only two levels is that some hardware architectures that were supported in the past (such as
959: 918: 81: 59: 52: 2253: 1842: 1786: 571: 1505: 564: 1761: 1731: 749: 1954: 1852: 1647: 520:, etc.) and operating system monitors are cited as examples. At least one embedded database management system, 721: 2232: 1781: 1766: 286: 1475: 480:-processors have four different modes divided into four different rings. Programs that run in Ring 0 can do 1827: 1812: 1771: 853: 337: 270:
While x86 has 4 protection rings, it is more common for architectures to only have two. Even on x86, most
1993: 1940: 842: 831: 256: 212:
However, most general-purpose systems use only two rings, even if the hardware they run on provides more
1626:"Integrating segmentation and paging protection for safe, efficient and transparent software extensions" 369:
operating system (EL1), hypervisor (EL2), and secure monitor / firmware (EL3), for AArch64 and AArch32.
2008: 1847: 1724: 1632:. Section 3: Protection hardware features in Intel X86 architecture; subsection 3.1 Protection checks. 651: 636: 535:
that would otherwise occur when kernel functions interact with a database system running in user mode.
224:, because earlier versions of Windows NT ran on processors that supported only two protection levels. 2043: 1862: 1822: 1817: 1776: 1673: 1484: 1013: 798:
operating systems attempt to minimize the amount of code running in privileged mode, for purposes of
423:, the operating system runs in supervisor mode and the applications run in user mode. Other types of 420: 2086: 1973: 1837: 1607:"Intel Architecture Software Developer's Manual Volume 3: System Programming (Order Number 243192)" 780:
hardware is not often cost-effective, despite the potential advantages for security and stability.
643:
mechanism with only one bit to specify the privilege level as either Supervisor or User (U/S Bit).
609: 263:
uses four modes called (in order of decreasing privileges) Kernel, Executive, Supervisor and User.
46: 1613: 1832: 745: 149: 24: 650:
Potential future uses for the multiple privilege levels supported by the x86 ISA family include
2220: 2159: 2048: 2028: 1977: 1935: 847: 741: 737: 578: 459: 202: 63: 1153:"Presentation Device Driver Reference for OS/2 – 5. Introduction to OS/2 Presentation Drivers" 2003: 1969: 1871: 1807: 1707: 591: 152: 141: 20: 521: 2200: 2174: 1590: 903:
An Augmented Capability Architecture to Support Lattice Security and Traceability of Access
517: 1579: 189:
Multiple rings of protection were among the most revolutionary concepts introduced by the
8: 2169: 2121: 1998: 1201: 1178: 1092: 1085: 820: 1560: 2106: 2013: 1653: 1317: 965: 924: 837: 788: 552: 490: 329: 318: 1502:"Relearning "Trusted Systems" in an Age of NIIP: Lessons from the Past for the Future" 760:
Many CPU hardware architectures provide far more flexibility than is exploited by the
724:
in the TSS also take part in determining the ability of a task to access an I/O port.
559:
to control Ring 0 hardware access. Although they are mutually incompatible, both
2215: 2164: 2096: 2053: 1894: 1643: 1594: 1418: 1378: 1309: 1137: 1121: 1096: 955: 914: 815: 799: 770: 620: 450: 332:
at all times, with the help of a special machine register. In some systems, areas of
290: 271: 163: 126: 969: 928: 658:. A host operating system kernel could use instructions with full privilege access ( 2195: 1747: 1657: 1633: 1625: 1623: 1528: 1488: 1299: 947: 942:
Binder, W. (2001). "Design and implementation of the J-SEAL2 mobile agent kernel".
906: 761: 687: 616: 498:, the minimization of this overhead reduced the overall cost to around 150 cycles. 424: 365: 110: 1321: 577:
To assist virtualization and reduce overhead caused by the reason above, VT-x and
2139: 2072: 1515: 1265: 655: 604: 373: 358: 341: 145: 122: 1667:"Exploiting Segmentation Mechanism for Protecting Against Malicious Mobile Code" 1570: 2225: 2149: 2111: 1983: 1558: 1283: 1243: 825: 695: 691: 532: 513: 501: 495: 397: 384:"kernel" and "user" even if hardware provides finer granularity through rings. 333: 302: 278:
A renewed interest in this design structure came with the proliferation of the
266: 206: 103: 951: 2247: 2134: 2091: 1930: 1884: 1518:"A Multi-threading Architecture for Multilevel Secure Transaction Processing" 1313: 175: 121:, are mechanisms to protect data and functionality from faults (by improving 1703:"Kernel Mode Databases: A DBMS technology for high-performance applications" 1630:
Proceedings of the seventeenth ACM symposium on Operating systems principles
1598: 1337:"Kernel Mode Databases: A DBMS Technology For High-Performance Applications" 1008: 2018: 442: 1664: 1638: 1304: 1287: 1040: 910: 2144: 2126: 1909: 1899: 1889: 1672:. Chapter 3 Implementation; section 3.2.1 Ring Protection. Archived from 1624:
Tzi-cker Chiueh; Ganesh Venkitachalam; Prashant Pradhan (December 1999).
795: 667: 659: 454: 432: 294: 1702: 1612:. Chapter 4 "Protection"; section 4.5 "Privilege levels". Archived from 1356:
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3C
1336: 663: 644: 560: 556: 322: 314: 282: 235: 221: 1532: 1439: 1247: 2081: 1988: 1914: 1879: 1589: 1492: 1220: 1133: 699: 428: 393: 213: 160: 156: 1716: 2210: 1362:. Intel Cooperation (published September 2016). 2016. pp. 1–3. 1207: 1203:
Arm Architecture Reference Manual Armv8, for A-profile architecture
1184: 828: – available on x86-compatible 80286 CPUs and newer 803: 703: 336:
are instead assigned ring numbers in hardware. One example is the
1516:
Haruna R. Isa; William R. Shockley; Cynthia E. Irvine (May 1999).
1120:(6th ed.). Redmond, Washington: Microsoft Press. p. 17. 834:– an OS/2 directive to run DLL code at ring 2 instead of at ring 3 238:
operating system, like Unix, does not fully utilize this feature.
2205: 1904: 787:
Transitions between modes are at the discretion of the executing
776: 766: 260: 234:
architecture) include some form of ring protection, although the
190: 171: 1270:
Why aren't operating systems getting faster as fast as hardware?
873: 640: 469: 298: 252: 248: 198: 1665:
Takahiro Shinagawa; Kenji Kono; Takashi Masuda (17 May 2000).
1525:
Proceedings of the 1999 IEEE Symposium on Security and Privacy
1400:
Microprocessor 8086: Architecture, Programming and Interfacing
1252:
Proc. 15th ACM Symposium on Operating System Principles (SOSP)
615:
It is not necessary to use all four privilege levels. Current
2154: 1180:
ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition
1069:. Honeywell Information Systems. June 1972. pp. 160–161. 628: 624: 446: 228: 94: 1571:
Marcus Peinado; Yuqun Chen; Paul England; John Manferdelli.
984:"Envisioning a Simplified Intel Architecture for the Future" 1599:"A Hardware Architecture for Implementing Protection Rings" 1413:
Anderson, Thomas; Dahlin, Michael (21 August 2014). "2.2".
1272:. Usenix Summer Conference A. naheim, CA. pp. 247–256. 1082: 1009:"A Hardware Architecture for Implementing Protection Rings" 944:
Proceedings 2001 Symposium on Applications and the Internet
877: 733: 539: 239: 194: 1694:
A Practical Alternative to Hierarchical Integrity Policies
905:. 1984 IEEE Symposium on Security and Privacy. p. 2. 2190: 632: 601: 477: 465: 279: 244: 231: 193:
operating system, a highly secure predecessor of today's
99: 476:
Most processors have at least two different modes. The
255:' EMM386 3.xx can optionally run some modules (such as 670:
from the point of view of the guest operating system.
227:
Many modern CPU architectures (including the popular
1701:Gorine, Andrei; Krivolapov, Alexander (May 2008). 1372: 1335:Gorine, Andrei; Krivolapov, Alexander (May 2008). 1084: 19:Several terms redirect here. For other uses, see 1499: 732:In x86 systems, the x86 hardware virtualization ( 717:only when the current privilege level is Ring 0. 2245: 1700: 1373:Russinovich, Mark E.; Solomon, David A. (2005). 1334: 1473: 1083:Russinovich, Mark E.; David A. Solomon (2005). 880:, some system tasks run in problem state key 0. 686:) flag is a flag found on all IA-32 compatible 170:intended for programs in another. For example, 1691: 1412: 1282: 1242: 468:(for as long as no 386 memory manager such as 148:. This is generally hardware-enforced by some 1732: 1440:"Hardware Virtualization: the Nuts and Bolts" 1377:(4th ed.). Microsoft Press. p. 16. 1078: 1076: 900: 1696:. 8th National Computer Security Conference. 1258: 1238: 1236: 901:Karger, Paul A.; Herbert, Andrew J. (1984). 1115: 755: 1739: 1725: 1539: 1415:Operating Systems: Principles and Practice 1264: 1196: 1194: 1073: 806:, but ultimately sacrificing performance. 752:are sometimes referred as "ring −3". 435:, do not necessarily share this behavior. 1637: 1402:(Eastern Economy ed.). PHI Learning. 1303: 1233: 773:) implemented only two privilege levels. 82:Learn how and when to remove this message 1397: 1140:) implemented only two privilege levels. 1091:(4 ed.). Microsoft Press. pp.  265: 93: 45:This article includes a list of general 1692:Boebert, William Earl; R. Kain (1985). 1288:"Operating systems in a changing world" 1191: 125:) and malicious behavior (by providing 16:Layer of protection in computer systems 2246: 941: 1746: 1720: 740:) is referred as "ring −1", the 690:. It occupies bits 12 and 13 in the 551:Recent CPUs from Intel and AMD offer 372:Ring protection can be combined with 353:structure which is referenced by the 340:, in which the top three bits of the 1437: 1406: 377: 251:run at ring 0. In addition to this, 217: 31: 1561:"Xen and the Art of Virtualization" 1292:ACM SIGOPS Operating Systems Review 744:is referred as "ring −2", the 13: 1477:A framework for dynamic subversion 1466: 1462:Intel 80386 Programmer's Reference 1063:The Multics Virtual Memory, part 2 585: 546: 402: 309:design structure as part of their 184: 51:it lacks sufficient corresponding 14: 2275: 1527:. Oakland, CA. pp. 166–179. 1417:(2nd ed.). Recursive Books. 619:with wide market share including 612:exception is reported to the OS. 438:Some examples from the PC world: 197:family of operating systems. The 1843:Object-oriented operating system 727: 572:hardware-assisted virtualization 36: 1431: 1391: 1366: 1347: 1328: 1276: 1213: 1171: 866: 750:AMD Platform Security Processor 666:kernel-mode operations such as 115:hierarchical protection domains 1853:Supercomputer operating system 1573:"NGSCB: A Trusted Open System" 1145: 1109: 1054: 1033: 1001: 976: 935: 894: 709:The IOPL can be changed using 1: 1474:David T. Rogers (June 2003). 887: 563:(codenamed "Vanderpool") and 144:within the architecture of a 1828:Just enough operating system 1813:Distributed operating system 854:Principle of least privilege 338:Data General Eclipse MV/8000 7: 2264:Operating system technology 1941:User space and kernel space 1375:Microsoft Windows Internals 1087:Microsoft Windows Internals 843:Supervisor Call instruction 832:IOPL (CONFIG.SYS directive) 809: 10: 2280: 1848:Real-time operating system 1500:William J. Caelli (2002). 1248:"On µ-Kernel Construction" 1116:Russinovich, Mark (2012). 589: 391: 376:(master/kernel/privileged/ 18: 2183: 2120: 2066: 2044:Multilevel feedback queue 2039:Fixed-priority preemptive 2027: 1962: 1953: 1923: 1870: 1861: 1823:Hobbyist operating system 1818:Embedded operating system 1800: 1754: 1540:Ivan Kelly (8 May 2006). 1485:Naval Postgraduate School 1041:"Multics Glossary - ring" 1014:Communications of the ACM 952:10.1109/SAINT.2001.905166 792:interrupts are received. 2259:Computer security models 2087:General protection fault 1838:Network operating system 1792:User features comparison 1118:Windows Internals Part 1 859: 756:Use of hardware features 610:general protection fault 387: 98:Privilege rings for the 2254:Central processing unit 1833:Mobile operating system 746:Intel Management Engine 673: 460:loadable kernel modules 325:(formerly Vanderpool). 155:that provide different 66:more precise citations. 25:Ring 0 (disambiguation) 1936:Loadable kernel module 1542:"Porting MINIX to Xen" 848:System Management Mode 742:System Management Mode 543:be provided this way. 510: 275: 274:only use ring 0 and 3. 203:memory management unit 106: 2004:Process control block 1970:Computer multitasking 1808:Disk operating system 1639:10.1145/319151.319161 1305:10.1145/198153.198154 1138:Silicon Graphics MIPS 911:10.1109/SP.1984.10001 592:Privilege (computing) 506: 427:, like those with an 269: 259:) on ring 1 instead. 97: 21:Ring (disambiguation) 2175:Virtual tape library 1767:Forensic engineering 1619:on 19 February 2009. 1591:Michael D. Schroeder 1187:p. B1-1136. 722:I/O Port Permissions 342:program counter (PC) 2184:Supporting concepts 2170:Virtual file system 1229:. 15 February 1995. 821:Memory segmentation 684:I/O Privilege level 555:instructions for a 407:In computer terms, 159:at the hardware or 2107:Segmentation fault 1955:Process management 1708:Dr. Dobb's Journal 1554:on 27 August 2006. 1341:Dr. Dobb's Journal 946:. pp. 35–42. 838:Segment descriptor 720:Besides IOPL, the 553:x86 virtualization 362:memory hardware). 319:x86 virtualization 287:ongoing discussion 276: 107: 2241: 2240: 2097:Memory protection 2068:Memory management 2062: 2061: 2054:Shortest job next 1949: 1948: 1748:Operating systems 1679:on 10 August 2017 1595:Jerome H. Saltzer 1511:on 20 April 2015. 1438:De Gelas, Johan. 1384:978-0-7356-1917-3 1266:Ousterhout, J. K. 1246:(December 1995). 1221:"supervisor mode" 1127:978-0-7356-4873-9 1102:978-0-7356-1917-3 816:Call gate (Intel) 762:operating systems 621:Microsoft Windows 617:operating systems 425:operating systems 297:(particularly in 272:operating systems 127:computer security 92: 91: 84: 2271: 2196:Computer network 1960: 1959: 1868: 1867: 1741: 1734: 1727: 1718: 1717: 1712: 1697: 1688: 1686: 1684: 1678: 1671: 1661: 1641: 1620: 1618: 1611: 1602: 1586: 1585:on 4 March 2005. 1584: 1578:. Archived from 1577: 1567: 1565: 1555: 1553: 1547:. Archived from 1546: 1536: 1522: 1512: 1510: 1504:. Archived from 1496: 1482: 1455: 1454: 1452: 1450: 1435: 1429: 1428: 1410: 1404: 1403: 1395: 1389: 1388: 1370: 1364: 1363: 1361: 1351: 1345: 1344: 1332: 1326: 1325: 1307: 1280: 1274: 1273: 1262: 1256: 1255: 1240: 1231: 1230: 1217: 1211: 1210: 1198: 1189: 1188: 1175: 1169: 1168: 1166: 1164: 1155:. Archived from 1149: 1143: 1142: 1113: 1107: 1106: 1090: 1080: 1071: 1070: 1068: 1058: 1052: 1051: 1049: 1047: 1037: 1031: 1030: 1028: 1026: 1005: 999: 998: 996: 994: 980: 974: 973: 939: 933: 932: 898: 881: 870: 716: 712: 656:virtual machines 652:containerization 533:context switches 493: 419:In a monolithic 313:initiative, and 119:protection rings 111:computer science 87: 80: 76: 73: 67: 62:this article by 53:inline citations 40: 39: 32: 2279: 2278: 2274: 2273: 2272: 2270: 2269: 2268: 2244: 2243: 2242: 2237: 2179: 2140:Defragmentation 2125: 2116: 2102:Protection ring 2071: 2058: 2030: 2023: 1945: 1919: 1857: 1796: 1750: 1745: 1715: 1682: 1680: 1676: 1669: 1650: 1616: 1609: 1605: 1582: 1575: 1563: 1551: 1544: 1520: 1508: 1480: 1469: 1467:Further reading 1459: 1458: 1448: 1446: 1436: 1432: 1425: 1411: 1407: 1396: 1392: 1385: 1371: 1367: 1359: 1353: 1352: 1348: 1333: 1329: 1281: 1277: 1263: 1259: 1241: 1234: 1219: 1218: 1214: 1200: 1199: 1192: 1177: 1176: 1172: 1162: 1160: 1159:on 15 June 2015 1151: 1150: 1146: 1128: 1114: 1110: 1103: 1081: 1074: 1066: 1060: 1059: 1055: 1045: 1043: 1039: 1038: 1034: 1024: 1022: 1021:(3). March 1972 1007: 1006: 1002: 992: 990: 982: 981: 977: 962: 940: 936: 921: 899: 895: 890: 885: 884: 871: 867: 862: 812: 758: 730: 714: 710: 676: 605:instruction set 598:privilege level 594: 588: 586:Privilege level 549: 547:Hypervisor mode 489: 409:supervisor mode 405: 403:Supervisor mode 400: 390: 378:supervisor mode 374:processor modes 359:supervisor call 305:), Microsoft's 301:newsgroups and 187: 185:Implementations 146:computer system 123:fault tolerance 117:, often called 88: 77: 71: 68: 58:Please help to 57: 41: 37: 28: 17: 12: 11: 5: 2277: 2267: 2266: 2261: 2256: 2239: 2238: 2236: 2235: 2230: 2229: 2228: 2226:User interface 2223: 2213: 2208: 2203: 2198: 2193: 2187: 2185: 2181: 2180: 2178: 2177: 2172: 2167: 2162: 2157: 2152: 2150:File attribute 2147: 2142: 2137: 2131: 2129: 2118: 2117: 2115: 2114: 2112:Virtual memory 2109: 2104: 2099: 2094: 2089: 2084: 2078: 2076: 2064: 2063: 2060: 2059: 2057: 2056: 2051: 2046: 2041: 2035: 2033: 2025: 2024: 2022: 2021: 2016: 2011: 2006: 2001: 1996: 1991: 1986: 1984:Context switch 1981: 1966: 1964: 1957: 1951: 1950: 1947: 1946: 1944: 1943: 1938: 1933: 1927: 1925: 1921: 1920: 1918: 1917: 1912: 1907: 1902: 1897: 1892: 1887: 1882: 1876: 1874: 1865: 1859: 1858: 1856: 1855: 1850: 1845: 1840: 1835: 1830: 1825: 1820: 1815: 1810: 1804: 1802: 1798: 1797: 1795: 1794: 1789: 1784: 1779: 1774: 1769: 1764: 1758: 1756: 1752: 1751: 1744: 1743: 1736: 1729: 1721: 1714: 1713: 1698: 1689: 1662: 1648: 1621: 1603: 1587: 1568: 1556: 1537: 1513: 1497: 1470: 1468: 1465: 1464: 1463: 1457: 1456: 1430: 1424:978-0985673529 1423: 1405: 1398:Sunil Mathur. 1390: 1383: 1365: 1346: 1327: 1286:(April 1994). 1284:Maurice Wilkes 1275: 1257: 1244:Jochen Liedtke 1232: 1212: 1190: 1170: 1144: 1126: 1108: 1101: 1072: 1053: 1032: 1000: 975: 960: 934: 919: 892: 891: 889: 886: 883: 882: 864: 863: 861: 858: 857: 856: 851: 845: 840: 835: 829: 826:Protected mode 823: 818: 811: 808: 757: 754: 729: 726: 696:protected mode 692:FLAGS register 675: 672: 590:Main article: 587: 584: 548: 545: 529:DB Kernel Mode 514:access control 502:Maurice Wilkes 496:L3 microkernel 474: 473: 463: 404: 401: 398:Protected mode 389: 386: 334:virtual memory 220:and ring 3 to 207:Honeywell 6180 186: 183: 176:device drivers 104:protected mode 90: 89: 44: 42: 35: 15: 9: 6: 4: 3: 2: 2276: 2265: 2262: 2260: 2257: 2255: 2252: 2251: 2249: 2234: 2231: 2227: 2224: 2222: 2219: 2218: 2217: 2214: 2212: 2209: 2207: 2204: 2202: 2199: 2197: 2194: 2192: 2189: 2188: 2186: 2182: 2176: 2173: 2171: 2168: 2166: 2163: 2161: 2158: 2156: 2153: 2151: 2148: 2146: 2143: 2141: 2138: 2136: 2133: 2132: 2130: 2128: 2123: 2119: 2113: 2110: 2108: 2105: 2103: 2100: 2098: 2095: 2093: 2092:Memory paging 2090: 2088: 2085: 2083: 2080: 2079: 2077: 2074: 2069: 2065: 2055: 2052: 2050: 2047: 2045: 2042: 2040: 2037: 2036: 2034: 2032: 2026: 2020: 2017: 2015: 2012: 2010: 2007: 2005: 2002: 2000: 1997: 1995: 1992: 1990: 1987: 1985: 1982: 1979: 1975: 1971: 1968: 1967: 1965: 1961: 1958: 1956: 1952: 1942: 1939: 1937: 1934: 1932: 1931:Device driver 1929: 1928: 1926: 1922: 1916: 1913: 1911: 1908: 1906: 1903: 1901: 1898: 1896: 1893: 1891: 1888: 1886: 1883: 1881: 1878: 1877: 1875: 1873: 1872:Architectures 1869: 1866: 1864: 1860: 1854: 1851: 1849: 1846: 1844: 1841: 1839: 1836: 1834: 1831: 1829: 1826: 1824: 1821: 1819: 1816: 1814: 1811: 1809: 1806: 1805: 1803: 1799: 1793: 1790: 1788: 1785: 1783: 1780: 1778: 1775: 1773: 1770: 1768: 1765: 1763: 1760: 1759: 1757: 1753: 1749: 1742: 1737: 1735: 1730: 1728: 1723: 1722: 1719: 1710: 1709: 1704: 1699: 1695: 1690: 1675: 1668: 1663: 1659: 1655: 1651: 1645: 1640: 1635: 1631: 1627: 1622: 1615: 1608: 1604: 1600: 1596: 1592: 1588: 1581: 1574: 1569: 1562: 1557: 1550: 1543: 1538: 1534: 1530: 1526: 1519: 1514: 1507: 1503: 1498: 1494: 1490: 1486: 1479: 1478: 1472: 1471: 1461: 1460: 1445: 1441: 1434: 1426: 1420: 1416: 1409: 1401: 1394: 1386: 1380: 1376: 1369: 1358: 1357: 1350: 1342: 1338: 1331: 1323: 1319: 1315: 1311: 1306: 1301: 1297: 1293: 1289: 1285: 1279: 1271: 1267: 1261: 1253: 1249: 1245: 1239: 1237: 1228: 1227: 1222: 1216: 1209: 1205: 1204: 1197: 1195: 1186: 1182: 1181: 1174: 1158: 1154: 1148: 1141: 1139: 1135: 1129: 1123: 1119: 1112: 1104: 1098: 1094: 1089: 1088: 1079: 1077: 1065: 1064: 1057: 1042: 1036: 1020: 1016: 1015: 1010: 1004: 989: 985: 979: 971: 967: 963: 961:0-7695-0942-8 957: 953: 949: 945: 938: 930: 926: 922: 920:0-8186-0532-4 916: 912: 908: 904: 897: 893: 879: 875: 872:E.g., In IBM 869: 865: 855: 852: 849: 846: 844: 841: 839: 836: 833: 830: 827: 824: 822: 819: 817: 814: 813: 807: 805: 801: 797: 793: 790: 785: 781: 778: 774: 772: 768: 763: 753: 751: 747: 743: 739: 735: 728:Miscellaneous 725: 723: 718: 707: 705: 701: 697: 693: 689: 685: 681: 671: 669: 665: 661: 657: 653: 648: 646: 642: 639:mostly use a 638: 634: 630: 626: 622: 618: 613: 611: 606: 603: 599: 593: 583: 580: 575: 573: 568: 566: 562: 558: 554: 544: 541: 536: 534: 530: 528: 524: 519: 515: 509: 505: 503: 499: 497: 492: 486: 483: 479: 471: 467: 464: 461: 456: 452: 448: 444: 441: 440: 439: 436: 434: 430: 426: 422: 417: 413: 410: 399: 395: 385: 381: 379: 375: 370: 367: 363: 360: 356: 352: 346: 343: 339: 335: 331: 326: 324: 320: 316: 312: 308: 304: 300: 296: 295:micro-kernels 292: 288: 284: 281: 273: 268: 264: 262: 258: 254: 250: 246: 241: 237: 233: 230: 225: 223: 219: 215: 210: 208: 204: 200: 196: 192: 182: 179: 177: 173: 167: 165: 162: 158: 154: 153:architectures 151: 147: 143: 139: 135: 130: 128: 124: 120: 116: 112: 105: 102:available in 101: 96: 86: 83: 75: 72:February 2015 65: 61: 55: 54: 48: 43: 34: 33: 30: 26: 23: and 22: 2127:file systems 2101: 2019:Time-sharing 1706: 1693: 1681:. Retrieved 1674:the original 1629: 1614:the original 1580:the original 1549:the original 1524: 1506:the original 1476: 1447:. Retrieved 1443: 1433: 1414: 1408: 1399: 1393: 1374: 1368: 1355: 1349: 1340: 1330: 1295: 1291: 1278: 1269: 1260: 1251: 1224: 1215: 1202: 1179: 1173: 1161:. Retrieved 1157:the original 1147: 1134:Compaq Alpha 1131: 1117: 1111: 1086: 1062: 1056: 1046:27 September 1044:. Retrieved 1035: 1025:27 September 1023:. Retrieved 1018: 1012: 1003: 991:. Retrieved 987: 978: 943: 937: 902: 896: 868: 794: 786: 782: 775: 759: 731: 719: 708: 683: 679: 677: 668:system calls 649: 614: 597: 595: 576: 569: 550: 537: 526: 522: 511: 507: 500: 487: 481: 475: 437: 418: 414: 408: 406: 382: 371: 364: 354: 350: 347: 327: 306: 277: 226: 211: 188: 180: 168: 137: 133: 131: 118: 114: 108: 78: 69: 50: 29: 2145:Device file 2135:Boot loader 2049:Round-robin 1974:Cooperative 1910:Rump kernel 1900:Multikernel 1890:Microkernel 1787:Usage share 1298:(2): 9–21. 796:Microkernel 660:kernel mode 455:system call 433:microkernel 315:hypervisors 218:kernel mode 64:introducing 2248:Categories 2075:protection 2031:algorithms 2029:Scheduling 1978:Preemptive 1924:Components 1895:Monolithic 1762:Comparison 1649:1581131402 1533:10945/7198 888:References 664:virtualize 645:Windows NT 561:Intel VT-x 557:hypervisor 392:See also: 323:Intel VT-x 303:Web forums 291:monolithic 285:software, 236:Windows NT 47:references 2165:Partition 2082:Bus error 2009:Real-time 1989:Interrupt 1915:Unikernel 1880:Exokernel 1493:10945/919 1444:AnandTech 1314:0163-5980 704:I/O ports 700:long mode 518:firewalls 429:exokernel 394:Real mode 317:based on 222:user mode 214:CPU modes 161:microcode 157:CPU modes 142:privilege 2211:Live USB 2073:resource 1963:Concepts 1801:Variants 1782:Timeline 1597:(1972). 1449:13 March 1268:(1990). 1208:Arm Ltd. 1185:Arm Ltd. 970:11066378 929:14788823 876:through 810:See also 804:elegance 800:security 688:x86 CPUs 482:anything 321:such as 2206:Live CD 2160:Journal 2124:access, 2122:Storage 1999:Process 1905:vkernel 1772:History 1755:General 1683:2 April 1658:9456119 1483:(MSc). 1163:13 June 777:Multics 767:PowerPC 715:IRET(D) 711:POPF(D) 637:Android 600:in the 570:Before 504:wrote: 451:Windows 416:runs." 261:OpenVMS 191:Multics 172:spyware 60:improve 2014:Thread 1885:Hybrid 1863:Kernel 1656:  1646:  1421:  1381:  1322:254134 1320:  1312:  1226:FOLDOC 1124:  1099:  993:28 May 968:  958:  927:  917:  874:OS/360 789:thread 694:. In 641:paging 491:getpid 470:EMM386 421:kernel 330:thread 307:Ring-1 299:Usenet 253:DR-DOS 249:EMM386 199:GE 645 138:layers 134:levels 49:, but 2216:Shell 2155:Inode 1677:(PDF) 1670:(PDF) 1654:S2CID 1617:(PDF) 1610:(PDF) 1583:(PDF) 1576:(PDF) 1564:(PDF) 1552:(PDF) 1545:(PDF) 1521:(PDF) 1509:(PDF) 1481:(PDF) 1360:(PDF) 1318:S2CID 1067:(PDF) 988:Intel 966:S2CID 925:S2CID 860:Notes 850:(SMM) 629:Linux 625:macOS 565:AMD-V 527:treme 447:macOS 443:Linux 388:Modes 311:NGSCB 229:Intel 164:level 1777:List 1685:2018 1644:ISBN 1451:2021 1419:ISBN 1379:ISBN 1310:ISSN 1165:2015 1136:and 1122:ISBN 1097:ISBN 1048:2012 1027:2012 995:2024 956:ISBN 915:ISBN 878:z/OS 802:and 771:MIPS 748:and 736:and 734:VT-x 713:and 698:and 680:IOPL 678:The 674:IOPL 654:and 635:and 540:vDSO 449:and 396:and 355:call 351:gate 293:vs. 257:DPMS 240:OS/2 195:Unix 2233:PXE 2221:CLI 2201:HAL 2191:API 1994:IPC 1634:doi 1529:hdl 1489:hdl 1300:doi 948:doi 907:doi 769:or 738:SVM 633:iOS 602:x86 579:SVM 478:x86 466:DOS 431:or 366:ARM 289:on 283:VMM 280:Xen 245:DOS 232:x86 150:CPU 140:of 136:or 129:). 109:In 100:x86 2250:: 1976:, 1705:. 1652:. 1642:. 1628:. 1593:; 1523:. 1487:. 1442:. 1339:. 1316:. 1308:. 1296:28 1294:. 1290:. 1250:. 1235:^ 1223:. 1206:. 1193:^ 1183:. 1130:. 1095:. 1093:16 1075:^ 1019:15 1017:. 1011:. 986:. 964:. 954:. 923:. 913:. 706:. 631:, 627:, 623:, 596:A 516:, 445:, 113:, 2070:, 1980:) 1972:( 1740:e 1733:t 1726:v 1711:. 1687:. 1660:. 1636:: 1601:. 1566:. 1535:. 1531:: 1495:. 1491:: 1453:. 1427:. 1387:. 1343:. 1324:. 1302:: 1254:. 1167:. 1105:. 1050:. 1029:. 997:. 972:. 950:: 931:. 909:: 682:( 525:X 523:e 85:) 79:( 74:) 70:( 56:. 27:.

Index

Ring (disambiguation)
Ring 0 (disambiguation)
references
inline citations
improve
introducing
Learn how and when to remove this message

x86
protected mode
computer science
fault tolerance
computer security
privilege
computer system
CPU
architectures
CPU modes
microcode
level
spyware
device drivers
Multics
Unix
GE 645
memory management unit
Honeywell 6180
CPU modes
kernel mode
user mode

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.