Knowledge (XXG)

Protected mode

Source 📝

1854: 391: 777: 1862: 818:. The next bit (bit 2) specifies whether the operation is used with the GDT or the LDT. The lowest two bits (bit 1 and bit 0) of the selector are combined to define the privilege of the request, where the values of 0 and 3 represent the highest and the lowest privilege, respectively. This means that the byte offset of descriptors in the descriptor table is the same as the 16-bit selector, provided the lower three bits are zeroed. 362:, equivalent to 256 KB, could be accessed at a time. Because changing a segment register in protected mode caused a 6-byte segment descriptor to be loaded into the CPU from memory, the segment register load instruction took many tens of processor cycles, making it much slower than on the 8086; therefore, the strategy of computing segment addresses on-the-fly in order to access data structures larger than 128  4169: 4159: 4149: 4139: 4129: 409:. The segment sizes were also increased to 32 bits, meaning that the full address space of 4 gigabytes could be accessed without the need to switch between multiple segments. In addition to the increased size of the address bus and segment registers, many other new features were added with the intention of increasing operational security and stability. Protected mode is now used in virtually all modern 622: 270:(386) in 1985. Due to the enhancements added by protected mode, it has become widely adopted and has become the foundation for all subsequent enhancements to the x86 (IA-32) architecture, although many of those enhancements, such as added instructions and new registers, also brought benefits to the real mode. 1974:
series. If a Windows 1.x or 2.x program is written properly and avoids segment arithmetic, it will run the same way in both real and protected modes. Windows programs generally avoid segment arithmetic because Windows implements a software virtual memory scheme, moving program code and data in memory
3135:
The reason why software task switching is so popular is that it can be faster than hardware task switching. Intel never actually developed the hardware task switching, they implemented it, saw that it worked, and just left it there. Advances in multitasking using software have made this form of task
377:
to run unmodified on the newer 286. Real mode also served as a more basic mode in which protected mode could be set up, solving a sort of chicken-and-egg problem. To access the extended functionality of the 286, the operating system would set up some tables in memory that controlled memory access in
1979:
to memory blocks when not running. Starting an old program while Windows 3.0 is running in protected mode triggers a warning dialog, suggesting to either run Windows in real mode or to obtain an updated version of the application. Updating well-behaved programs using the MARK utility with the
789:
In real mode each logical address points directly into a physical memory location, every logical address consists of two 16-bit parts: The segment part of the logical address contains the base address of a segment with a granularity of 16 bytes, i.e. a segment may start at physical address 0, 16,
1969:
was able to run real mode programs in 16-bit protected mode; when switching to protected mode, it decided to preserve the single privilege level model that was used in real mode, which is why Windows applications and DLLs can hook interrupts and do direct hardware access. That lasted through the
1869:
In addition to adding virtual 8086 mode, the 386 also added paging to protected mode. Through paging, system software can restrict and control a task's access to pages, which are sections of memory. In many operating systems, paging is used to create an independent virtual address space for each
1897:
to a page table. A page table was also originally four kilobytes in size and contained 1,024 page table entries (PTE). Each PTE contained a pointer to the actual page's physical address and are only used when the four-kilobyte pages are used. At any given time, only one page directory may be in
833:
The segment address inside the descriptor table entry has a length of 24 bits so every byte of the physical memory can be defined as bound of the segment. The limit value inside the descriptor table entry has a length of 16 bits so segment length can be between 1 byte and 2 byte. The calculated
606:
Protected mode has a number of features designed to enhance an operating system's control over application software, in order to increase security and system stability. These additions allow the operating system to function in a way that would be significantly more difficult or even impossible
858:
For maintaining compatibility with 286 protected mode a new default flag (D-bit, for short) was added. If the D-bit of a code segment is off (0) all commands inside this segment will be interpreted as 16-bit commands by default; if it is on (1), they will be interpreted as 32-bit commands.
1924:
was made possible on the x86 architecture. The TSS allows general-purpose registers, segment selector fields, and stacks to all be modified without affecting those of another task. The TSS also allows a task's privilege level, and I/O port permissions to be independent of another task's.
1928:
In many operating systems, the full features of the TSS are not used. This is commonly due to portability concerns or due to the performance issues created with hardware task switches. As a result, many operating systems use both hardware and software to create a multitasking system.
842:
The segment address inside the descriptor table entry is expanded to 32 bits so every byte of the physical memory can be defined as bound of the segment. The limit value inside the descriptor table entry is expanded to 20 bits and completed with a granularity flag (G-bit, for short):
354:. Several shortcomings such as the inability to make BIOS and DOS calls due to inability to switch back to real mode without resetting the processor prevented widespread usage. Acceptance was additionally hampered by the fact that the 286 only allowed memory access in 64  515:(21st address line) also must be enabled to allow the use of all the address lines so that the CPU can access beyond 1 megabyte of memory (Only the first 20 are allowed to be used after power-up, to guarantee compatibility with older software written for the Intel 8088-based 850:
If G-bit is one limit has a granularity of 2 bytes, i.e. segment size may be 1 × 2, 2 × 2, ..., 2 × 2 bytes. If paging is off, the calculated linear address equals the physical memory address. If paging is on, the calculated linear address is used as input of
378:
protected mode, set the addresses of those tables into some special registers of the processor, and then set the processor into protected mode. This enabled 24-bit addressing, which allowed the processor to access 2 bytes of memory, equivalent to 16 
597:
With the release of the 386, protected mode could be exited by loading the segment registers with real mode values, disabling the A20 line and clearing the PE bit in the CR0 register, without the need to perform the initial setup steps required with the 286.
404:
With the release of the 386 in 1985, many of the issues preventing widespread adoption of the previous protected mode were addressed. The 386 was released with an address bus size of 32 bits, which allows for 2 bytes of memory accessing, equivalent to 4
1893:. Originally, a page directory was the size of one page, four kilobytes, and contained 1,024 page directory entries (PDE), although subsequent enhancements to the x86 architecture have added the ability to use larger page sizes. Each PDE contained a 753:
Due to these limitations, some programs originally designed to run on the 8086 cannot be run in virtual 8086 mode. As a result, system software is forced to either compromise system security or backward compatibility when dealing with
790:
32, ..., 2 − 16. The offset part of the logical address contains an offset inside the segment, i.e. the physical address can be calculated as physical_address = segment_part × 16 + offset, if the address
3063:
The paging process allows the operating system to overcome the real physical memory limits. However, it also has a direct impact on performance because of the time necessary to write or retrieve data from
504:
was used to reset the 286 CPU, which was a lot faster and cleaner than the keyboard controller method (and does not depend on IBM AT-compatible hardware, but will work on any 80286 CPU in any system).
657:
the 80286 remains upwardly compatible with most 8086 and 80186 application programs. Most 8086 application programs can be re-compiled or re-assembled and executed on the 80286 in Protected Mode.
3044: 665:, were the most apparent changes to application programmers. This was not without its limitations. If an application utilized or relied on any of the techniques below, it would not run: 734:
Virtual 8086 mode, however, is not completely backward compatible with all programs. Programs that require segment manipulation, privileged instructions, direct hardware access, or use
731:. Virtual 8086 mode is designed to allow code previously written for the 8086 to run unmodified and concurrently with other tasks, without compromising security or system stability. 500:
and often the interrupt mask in the real-time clock chip's RAM. This allowed the BIOS to restore the CPU to a similar state and begin executing code before the reset. Later, a
2094:
The memory access control system according to claim 4, wherein said first address mode is a real address mode, and said second address mode is a protected virtual address mode.
2922: 2902: 2693: 2675: 2657: 2639: 511:(GDT) must first be created with a minimum of three entries: a null descriptor, a code segment descriptor and data segment descriptor. In an IBM-compatible machine, the 2962:
A downside to using V86 mode is speed: every IOPL-sensitive instruction will cause the CPU to trap to kernel mode, as will I/O to ports which are masked out in the TSS.
633:, numbered from 0 to 3, with ring 0 being the most privileged and 3 being the least. The use of rings allows for system software to restrict tasks from accessing data, 3296: 2733: 2519: 2272: 2218: 2166: 2109: 1980:
MEMORY parameter avoids this dialog. It is not possible to have some GUI programs running in 16-bit protected mode and other GUI programs running in real mode. In
179: 243:
with earlier x86 processors. Protected mode may only be entered after the system software sets up one descriptor table and enables the Protection Enable (PE)
4193: 4109: 3770: 3243: 2194: 2187: 2151:
The purpose of protected mode is not to protect your program. The purpose is to protect everyone else (including the operating system) from your program.
3136:
switching faster (some say up to 3 times faster) than the hardware method. Another reason is that the Intel way of switching tasks isn't portable at all
2829:
This has been impossible to-date and has forced BIOS development teams to add support into the BIOS for 32 bit function calls from 32 bit applications.
2409: 3818: 2241: 3048: 2791: 2772: 2753: 4162: 3966: 3790: 3572: 3543: 4152: 1853: 488:
Until the release of the 386, protected mode did not offer a direct method to switch back into real mode once protected mode was entered.
3191: 2367: 4172: 2587: 1941:
1.x try to switch the processor between protected and real modes. This is both slow and unsafe, because a real mode program can easily
366:(the combined size of the two data segments) became impractical, even for those few programmers who had mastered it on the 8086/8088. 2711: 2500: 2983: 2552: 2475: 172: 2071: 661:
For the most part, the binary compatibility with real-mode code, the ability to access up to 16 MB of physical memory, and 1 GB of
3347: 3291: 3989: 3763: 3266: 3236: 523:
models). After performing those two steps, the PE bit must be set in the CR0 register and a far jump must be made to clear the
3149: 3112: 2297: 4114: 3459: 3357: 1894: 2694:"Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 3A, 3B, 3C, and 3D: System Programming Guide" 2676:"Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 3A, 3B, 3C, and 3D: System Programming Guide" 2658:"Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 3A, 3B, 3C, and 3D: System Programming Guide" 2640:"Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 3A, 3B, 3C, and 3D: System Programming Guide" 3737: 3286: 3271: 2924:
Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 3A, 3B, 3C, and 3D: System Programming Guide
2904:
Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 3A, 3B, 3C, and 3D: System Programming Guide
2627:
80386SX — low cost version of the 80386. This processor had 16 bit external data bus and 24-bit external address bus.
4198: 3974: 3812: 3332: 3317: 3276: 1992: 165: 2326: 3951: 3498: 3445: 343: 31: 4009: 3077: 4132: 4019: 3999: 3852: 3756: 3513: 3352: 3229: 2345:
What is interesting is that the designers of the time never suspected anyone would ever need more than 1 MB of RAM.
1870:
task, preventing one task from manipulating the memory of another. Paging also allows for pages to be moved out of
2861:... secondly, protected mode was also incompatible with the vast amount of real-mode code around at the time. 4078: 3548: 3367: 3327: 3322: 3281: 373:
on power up. Real mode functioned virtually identically to the 8086, allowing the vast majority of existing 8086
143: 3938: 3591: 3478: 3342: 2440: 2047: 742:
that must be served by the operating system. In addition, applications running in virtual 8086 mode generate a
630: 616: 520: 493: 2943: 2874: 2842: 4142: 4004: 3979: 3885: 3337: 1921: 1693:
bit, and determines which privilege levels can far-jump to this segment (without changing privilege level):
794:
is enabled, or (segment_part × 16 + offset) mod 2, if A20 is off. Every segment has a size of 2 bytes.
771: 508: 324:
As the cost of memory decreased and memory use increased, the 1 MB limitation became a significant problem.
205: 3956: 2416: 390: 3908: 3806: 3725: 3664: 3553: 3533: 3482: 3440: 3201: 1975:
when programs are not running, so manipulating absolute addresses is dangerous; programs should only keep
705:
and its successors can take advantage of the binary compatibility with real mode to run many Windows 2.x (
240: 109: 3508: 3474: 3376: 3312: 2052: 1907: 516: 302: 225: 3984: 2459: 3172:... both rely on the Intel processors ability to switch tasks, they rely on it in different ways. 2245: 301:. At the time, 1 megabyte was considered a relatively large amount of memory, so the designers of the 3705: 3679: 1886: 524: 235:
When a processor that supports x86 protected mode is powered on, it begins executing instructions in
229: 342:
The initial protected mode, released with the 286, was not widely used; for example, it was used by
3862: 3674: 3626: 3503: 2540: 2464: 2000: 735: 678: 213: 4104: 4088: 4014: 3611: 3518: 2004: 1917: 739: 433: 129: 847:
If G-bit is zero limit has a granularity of 1 byte, i.e. segment size may be 1, 2, ..., 2 bytes.
776: 496:) which involved resetting the CPU via the keyboard controller and saving the system registers, 436:
required for virtualizing the protected mode itself, however, had to wait for another 20 years.
3880: 3779: 3720: 3669: 3601: 3558: 3399: 3186: 2979: 2548: 2471: 2371: 2037: 1988: 1942: 1875: 1861: 722: 698: 477: 429: 414: 369:
The 286 maintained backward compatibility with its precursor (the 8086) by initially entering
310: 99: 825:
address of the segment, a limit value for the segment size, and some attribute bits (flags).
444:
With the release of the 386, the following additional features were added to protected mode:
4057: 4052: 3895: 3700: 3252: 2140: 2133: 743: 410: 248: 3004: 424:
Furthermore, learning from the failures of the 286 protected mode to satisfy the needs for
4047: 3946: 3644: 3606: 3577: 2799:. Santa Clara, California: Intel. 1987. Appendix C 8086/8088 Compatibility Considerations. 2567: 1879: 1871: 637:
or executing privileged instructions. In most environments, the operating system and some
290: 209: 133: 2735:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture
2521:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture
2274:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture
2220:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture
2168:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture
2111:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture
3196: 2079: 2019:, all under control of a 32-bit kernel. However, 64-bit operating systems (which run in 30:
This article is about the x86 processor mode. For Internet Explorer Protected Mode, see
4062: 4029: 4024: 3829: 3730: 3654: 3616: 3488: 3206: 1882:. This allows for more memory to be used than physically available in primary storage. 662: 468: 217: 45: 4187: 4039: 3842: 3837: 3596: 3435: 3389: 2008: 1976: 755: 638: 457: 425: 137: 123: 3523: 3157: 3120: 1996: 747: 710: 501: 2613: 2508:. Santa Clara, CA: Intel. 1986. Section 2.1 Memory Organization and Segmentation. 2395: 328:
intended to solve this limitation along with others with the release of the 286.
4083: 3649: 3631: 3414: 3404: 3394: 3211: 2810: 2572: 1981: 1966: 706: 702: 432:, which allowed multiple virtualized 8086 processors to be emulated on the 386. 399: 337: 286: 113: 103: 93: 89: 83: 3096:
Only one page directory may be active at a time, indicated by the CR3 register.
2023:) no longer use this, since virtual 8086 mode has been removed from long mode. 727:
With the release of the 386, protected mode offers what the Intel manuals call
3847: 2016: 1971: 1947: 1890: 759: 497: 318: 279: 69: 63: 17: 3994: 3875: 3586: 3493: 3419: 3384: 3018: 2330: 2032: 2020: 1913: 634: 406: 370: 236: 119: 59: 3216: 762:, which dropped backward compatibility for "ill-behaved" DOS applications. 3081: 3928: 3923: 3913: 3903: 3715: 2281:. May 2019. Section 2.1 Brief History of Intel 64 and IA-32 Architecture. 791: 713:) applications in protected mode, which ran in real mode in Windows 2.x. 689:
Use of BIOS functions, due to the BIOS interrupts being reserved by Intel
512: 379: 374: 363: 355: 306: 298: 2780:. Santa Clara, California: Intel. 1987. Section 1.3.1 Memory Management. 3918: 3710: 3639: 3409: 810:, in which the 13 upper bits (bit 3 to bit 15) contain the index of an 621: 461: 73: 2011:(e.g. for changing the screen-resolution using BIOS functionality) in 1945:
a computer. OS/2 1.x defines restrictive programming rules allowing a
625:
Example of privilege ring usage in an operating system using all rings
1848: 697:
application programs violated these rules. Due to these limitations,
453: 448: 221: 147: 3748: 3221: 2444: 358:
segments, addresed by its four segment registers, meaning that only
3197:
Overview of the Protected Mode Operations of the Intel Architecture
2947: 2878: 2846: 1711:= 1 then code with the same or a lower privilege level relative to 3659: 2928: 2908: 2739: 2697: 2679: 2661: 2643: 2525: 2278: 2224: 2172: 2115: 2042: 1860: 1852: 855:
The 386 processor also uses 32 bit values for the address offset.
775: 758:. An example of such a compromise can be seen with the release of 620: 418: 389: 351: 347: 325: 267: 263: 259: 2811:"Memory access control method and system for realizing the same" 2072:"Memory access control method and system for realizing the same" 2012: 1960: 1956: 1938: 464:, and other 386 processor variants which use the older 286 bus.) 314: 294: 3752: 3225: 2761:. Santa Clara, CA: Intel. 1987. Section 1.2 Modes of Operation. 2700:. Section 9.9.2 Switching Back to Real-Address Mode, page 9-14. 1984:, real mode was no longer supported and could not be accessed. 1857:
Common method of using paging to create a virtual address space
3695: 701:
was introduced with the 386. Despite such potential setbacks,
694: 489: 283: 282:, a predecessor to the 286, was originally designed with a 20- 255: 244: 201: 49: 1955:
program to run in either real or protected mode. Some early
266:(286) processor, and later extended with the release of the 2396:"General Information FAQ for the Coherent Operating System" 2127: 2125: 1837:
Bit 52 of the 80386 descriptor is not used by the hardware.
1794:
bit, which should generally be cleared for system segments;
2742:. May 2019. Section 6.3.5 Calls to Other Privilege Levels. 2227:. May 2019. Section 2.1.2 The Intel 286 Processor (1982). 2161: 2159: 2118:. May 2019. Section 2.1.3 The Intel 386 Processor (1985). 1885:
The x86 architecture allows control of pages through two
460:(The 32-bit physical address space is not present on the 3217:
Akernelloader switching from real mode to protected mode
2719:. Santa Clara, CA: Intel. 1986. Chapter 7, Multitasking. 583:; clear prefetch queue; (using far jump instruction jmp) 228:
designed to increase an operating system's control over
3791:
Memory management as a function of an operating system
3202:
TurboIRC.COM tutorial to enter protected mode from DOS
629:
In protected mode, there are four privilege levels or
2305:
PC Microprocessor Developments and Features Tutorials
474:
Ability to switch back to real mode without resetting
309:
for use by applications and the operating system and
2541:"12.10. Protected Mode Operation and Device Drivers" 1700:= 0 then only code with the same privilege level as 4097: 4071: 4038: 3965: 3937: 3894: 3861: 3828: 3799: 3688: 3625: 3571: 3532: 3467: 3458: 3428: 3375: 3366: 3305: 3259: 2570:, Intel's 32-bit Wonder: The 80386 Microprocessor, 2495: 2493: 2236: 2234: 834:linear address equals the physical memory address. 2931:. May 2019. Section 20.2.7 Sensitive Instructions. 2463: 3047:. Microsoft TechNet. May 28, 2003. Archived from 3019:"ProtectedMode overview [deinmeister.de]" 2646:. Section 21.33.1 Segment Wraparound, page 21-34. 2682:. Section 9.10.2 STARTUP.ASM Listing, page 9-19. 2104: 2102: 2003:) or Windows 3.x applications (through the 750:(I/O), which can negatively impact performance. 3039: 3037: 2664:. 9.9.1 Switching to Protected Mode, page 9-13. 2361: 2359: 2357: 2355: 2353: 655: 2974:Dabak, Prasad; Millind Borate (October 1999). 2713:Intel 80386 Programmer's Reference Manual 1986 641:run in ring 0 and applications run in ring 3. 3764: 3237: 2793:80286 and 80287 Programmer's Reference Manual 2774:80286 and 80287 Programmer's Reference Manual 2755:80286 and 80287 Programmer's Reference Manual 2292: 2290: 2288: 1991:is still used for running applications, e.g. 173: 157:First supported platform shown in parentheses 8: 4110:International Symposium on Memory Management 3106: 3104: 2999: 2997: 2995: 1865:Paging (on Intel 80386) with page size of 4K 821:The descriptor table entry defines the real 3078:"Advanced Embedded x86 Programming: Paging" 2911:. May 2019. Section 20.2 Virtual 8086 Mode. 2528:. May 2019. Section 3.1 Modes of Operation. 2175:. May 2019. Section 3.1 Modes of Operation. 413:which run on the x86 architecture, such as 317:(Basic Input/Output System) and memory for 3771: 3757: 3749: 3464: 3372: 3244: 3230: 3222: 2415:(Press release). Microsoft. Archived from 746:with the use of instructions that involve 258:architecture in 1982, with the release of 180: 166: 36: 3150:"news: Multitasking for x86 explained #1" 3113:"news: Multitasking for x86 explained #1" 2466:Upgrading and Repairing PCs, 17th Edition 1912:Through the use of the rings, privileged 651:Intel 80286 Programmer's Reference Manual 492:devised a workaround (implemented in the 293:. This allowed the processor to access 2 2728: 2726: 2588:"Sending software to do hardware's job" 2460:"P2 (286) Second-Generation Processors" 2134:"Guide: What does protected mode mean?" 2063: 1963: 1.x, and Windows used this mode. 1782:= 0 then the segment is a data segment. 1775:= 1 then the segment is a code segment; 44: 27:Operational mode of x86-compatible CPUs 3005:"Global Descriptor table - OSDev Wiki" 2260:1985 Intel launches Intel386 processor 2242:"Intel Global Citizenship Report 2003" 1249: 867: 550:; save control register 0 (CR0) to EBX 254:Protected mode was first added to the 863:Structure of segment descriptor entry 7: 3212:Code Project Protected Mode Tutorial 3207:Protected Mode Overview and Tutorial 1987:In modern 32-bit operating systems, 4194:Programming language implementation 3819:Input–output memory management unit 2502:80386 Programmer's Reference Manual 2410:"Microsoft XENIX 286 Press Release" 645:Real mode application compatibility 535:; enter protected mode (set PE bit) 484:Entering and exiting protected mode 2007:subsystem) and certain classes of 565:; set PE bit by ORing, save to EBX 25: 2942:Robinson, Tim (August 26, 2002). 2873:Robinson, Tim (August 26, 2002). 2841:Robinson, Tim (August 26, 2002). 2612:Shvets, Gennadiy (June 3, 2007). 2458:Mueller, Scott (March 24, 2006). 607:without proper hardware support. 4168: 4167: 4158: 4157: 4148: 4147: 4138: 4137: 4128: 4127: 3348:Object-oriented operating system 2576:, November 25, 1986, pp. 150-152 2368:"Introduction to Protected-Mode" 2325:Risley, David (March 23, 2001). 2015:2.0 (and later OS/2) and 32-bit 1920:(TSS), introduced with the 286, 3990:Concurrent mark sweep collector 2539:Hyde, Randall (November 2004). 2370:. Internals.com. Archived from 2193:. ftp.utcluj.ro. Archived from 440:386 additions to protected mode 4115:Region-based memory management 3358:Supercomputer operating system 3192:Introduction to Protected-Mode 3080:. Embedded.com. Archived from 2614:"Intel 80386 processor family" 2078:. May 23, 1995. Archived from 198:protected virtual address mode 1: 2586:Tom Yager (6 November 2004). 1874:and onto a slower and larger 507:To enter protected mode, the 394:An Intel 80386 microprocessor 4163:Memory management algorithms 3975:Automatic Reference Counting 3813:Translation lookaside buffer 3333:Just enough operating system 3318:Distributed operating system 2329:. PCMechanic. Archived from 200:, is an operational mode of 4153:Automatic memory management 3952:C dynamic memory allocation 3446:User space and kernel space 2470:(Book) (17 ed.). Que. 1750:= 1 then the segment grows 1739:= 0 then the segment grows 434:Hardware x86 virtualization 311:the remaining 384 kilobytes 297:of memory, equivalent to 1 32:Mandatory Integrity Control 4215: 4173:Memory management software 4020:Tracing garbage collection 3853:Virtual memory compression 3353:Real-time operating system 3156:. NewOrder. Archived from 3119:. NewOrder. Archived from 1905: 1846: 1802:Descriptor Privilege Level 1428: 1425: 1213: 1046: 1043: 769: 720: 614: 397: 335: 29: 4123: 3786: 3549:Multilevel feedback queue 3544:Fixed-priority preemptive 3328:Hobbyist operating system 3323:Embedded operating system 3148:zwanderer (May 2, 2004). 3111:zwanderer (May 2, 2004). 2946:. berliOS. Archived from 2877:. berliOS. Archived from 2845:. berliOS. Archived from 2441:"MINIX Information Sheet" 1636: 1633: 1630: 1627: 1624: 1621: 1618: 1615: 1612: 1607: 1604: 1601: 1598: 1595: 1239: 1236: 1233: 1230: 1227: 1224: 1221: 1218: 780:Virtual segments of 80286 679:Writing to a code segment 428:, Intel added a separate 3947:Static memory allocation 3939:Manual memory management 3592:General protection fault 3343:Network operating system 3297:User features comparison 2186:Collins, Robert (2007). 2048:Ring (computer security) 1254:80386 Segment descriptor 872:80286 Segment descriptor 806:is replaced by a 16-bit 617:Ring (computer security) 529: 212:to use features such as 206:central processing units 4005:Garbage-first collector 3980:Boehm garbage collector 3886:x86 memory segmentation 3338:Mobile operating system 2976:Undocumented Windows NT 2188:"Protected Mode Basics" 1937:Operating systems like 1922:preemptive multitasking 1889:: page directories and 802:In protected mode, the 772:X86 memory segmentation 693:In reality, almost all 672:Privileged instructions 509:Global Descriptor Table 346:(from 1982), Microsoft 305:reserved the first 640 239:, in order to maintain 4010:Mark–compact algorithm 3807:Memory management unit 3441:Loadable kernel module 2978:(Book). Hungry Minds. 2366:Kaplan, Yariv (1997). 2132:root (July 14, 2007). 1866: 1858: 781: 675:Direct hardware access 659: 626: 580:; save EBX back to CR0 395: 241:backward compatibility 110:System Management Mode 3509:Process control block 3475:Computer multitasking 3313:Disk operating system 3187:Protected Mode Basics 2085:on September 26, 2007 2053:x86 assembly language 1908:Computer multitasking 1906:Further information: 1864: 1856: 1847:Further information: 779: 770:Further information: 624: 615:Further information: 456:physical and virtual 398:Further information: 393: 336:Further information: 303:IBM Personal Computer 3957:new and delete (C++) 3680:Virtual tape library 3272:Forensic engineering 2001:virtual DOS machines 1822:Default operand size 1674:(Bit 42) depends on 686:Overlapping segments 525:prefetch input queue 230:application software 4199:X86 operating modes 3863:Memory segmentation 3689:Supporting concepts 3675:Virtual file system 2944:"Virtual 8086 Mode" 2875:"Virtual 8086 Mode" 2843:"Virtual 8086 Mode" 2447:on January 7, 2014. 2398:. January 23, 1993. 1959:operating systems, 736:self-modifying code 421:, and many others. 40:Part of a series on 4105:Automatic variable 4089:Unreachable memory 4015:Reference counting 3985:Cheney's algorithm 3967:Garbage collection 3612:Segmentation fault 3460:Process management 3045:"What Is PAE X86?" 2953:on October 3, 2002 2884:on October 3, 2002 2852:on October 3, 2002 2336:on August 29, 2008 2005:Windows on Windows 1999:programs (through 1918:Task State Segment 1867: 1859: 782: 766:Segment addressing 669:Segment arithmetic 627: 396: 350:(around 1984) and 208:(CPUs). It allows 130:x86 virtualization 4181: 4180: 4133:Memory management 3881:Virtual 8086 mode 3780:Memory management 3746: 3745: 3602:Memory protection 3573:Memory management 3567: 3566: 3559:Shortest job next 3454: 3453: 3253:Operating systems 2818:US Patent 5483646 2076:US Patent 5483646 2038:Assembly language 1989:virtual 8086 mode 1933:Operating systems 1876:secondary storage 1645: 1644: 1641: 1640: 1248: 1247: 1244: 1243: 738:will generate an 729:virtual 8086 mode 723:Virtual 8086 mode 717:Virtual 8086 mode 699:virtual 8086 mode 649:According to the 478:Virtual 8086 mode 430:virtual 8086 mode 415:Microsoft Windows 411:operating systems 190: 189: 100:Virtual 8086 mode 16:(Redirected from 4206: 4171: 4170: 4161: 4160: 4151: 4150: 4141: 4140: 4131: 4130: 4058:Dangling pointer 4053:Buffer over-read 4025:Strong reference 3896:Memory allocator 3773: 3766: 3759: 3750: 3701:Computer network 3465: 3373: 3246: 3239: 3232: 3223: 3175: 3174: 3169: 3168: 3162: 3145: 3139: 3138: 3132: 3131: 3125: 3108: 3099: 3098: 3093: 3092: 3086: 3073: 3067: 3066: 3060: 3059: 3053: 3041: 3032: 3031: 3029: 3028: 3023: 3015: 3009: 3008: 3001: 2990: 2989: 2971: 2965: 2964: 2959: 2958: 2952: 2939: 2933: 2932: 2919: 2913: 2912: 2899: 2893: 2892: 2890: 2889: 2883: 2870: 2864: 2863: 2858: 2857: 2851: 2838: 2832: 2831: 2826: 2825: 2815: 2807: 2801: 2800: 2798: 2788: 2782: 2781: 2779: 2769: 2763: 2762: 2760: 2750: 2744: 2743: 2730: 2721: 2720: 2718: 2708: 2702: 2701: 2690: 2684: 2683: 2672: 2666: 2665: 2654: 2648: 2647: 2636: 2630: 2629: 2624: 2623: 2618: 2609: 2603: 2602: 2600: 2598: 2583: 2577: 2565: 2559: 2558: 2545:Write Great Code 2536: 2530: 2529: 2516: 2510: 2509: 2507: 2497: 2488: 2487: 2485: 2484: 2469: 2455: 2449: 2448: 2443:. Archived from 2437: 2431: 2430: 2428: 2427: 2421: 2414: 2406: 2400: 2399: 2392: 2386: 2385: 2383: 2382: 2376: 2363: 2348: 2347: 2342: 2341: 2335: 2322: 2316: 2315: 2313: 2312: 2302: 2301:(Tutorial/Guide) 2294: 2283: 2282: 2269: 2263: 2262: 2257: 2256: 2250: 2244:. Archived from 2238: 2229: 2228: 2215: 2209: 2208: 2206: 2205: 2199: 2192: 2183: 2177: 2176: 2163: 2154: 2153: 2148: 2147: 2141:Delorie Software 2138: 2129: 2120: 2119: 2106: 2097: 2096: 2091: 2090: 2084: 2068: 1982:Windows 3.1 1967:Windows 3.0 1261: 1260: 1250: 879: 878: 868: 816:descriptor table 805: 611:Privilege levels 593: 590: 587: 584: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 361: 249:control register 182: 175: 168: 72:emulation mode ( 37: 21: 4214: 4213: 4209: 4208: 4207: 4205: 4204: 4203: 4184: 4183: 4182: 4177: 4119: 4093: 4067: 4048:Buffer overflow 4034: 3961: 3933: 3890: 3857: 3824: 3795: 3782: 3777: 3747: 3742: 3684: 3645:Defragmentation 3630: 3621: 3607:Protection ring 3576: 3563: 3535: 3528: 3450: 3424: 3362: 3301: 3255: 3250: 3183: 3178: 3166: 3164: 3160: 3147: 3146: 3142: 3129: 3127: 3123: 3110: 3109: 3102: 3090: 3088: 3084: 3075: 3074: 3070: 3057: 3055: 3051: 3043: 3042: 3035: 3026: 3024: 3021: 3017: 3016: 3012: 3003: 3002: 2993: 2986: 2973: 2972: 2968: 2956: 2954: 2950: 2941: 2940: 2936: 2921: 2920: 2916: 2901: 2900: 2896: 2887: 2885: 2881: 2872: 2871: 2867: 2855: 2853: 2849: 2840: 2839: 2835: 2823: 2821: 2813: 2809: 2808: 2804: 2796: 2790: 2789: 2785: 2777: 2771: 2770: 2766: 2758: 2752: 2751: 2747: 2732: 2731: 2724: 2716: 2710: 2709: 2705: 2692: 2691: 2687: 2674: 2673: 2669: 2656: 2655: 2651: 2638: 2637: 2633: 2621: 2619: 2616: 2611: 2610: 2606: 2596: 2594: 2585: 2584: 2580: 2568:Charles Petzold 2566: 2562: 2555: 2538: 2537: 2533: 2518: 2517: 2513: 2505: 2499: 2498: 2491: 2482: 2480: 2478: 2457: 2456: 2452: 2439: 2438: 2434: 2425: 2423: 2419: 2412: 2408: 2407: 2403: 2394: 2393: 2389: 2380: 2378: 2374: 2365: 2364: 2351: 2339: 2337: 2333: 2327:"A CPU History" 2324: 2323: 2319: 2310: 2308: 2307:. BrainBell.com 2300: 2298:"A+ - Hardware" 2296: 2295: 2286: 2271: 2270: 2266: 2254: 2252: 2248: 2240: 2239: 2232: 2217: 2216: 2212: 2203: 2201: 2197: 2190: 2185: 2184: 2180: 2165: 2164: 2157: 2145: 2143: 2136: 2131: 2130: 2123: 2108: 2107: 2100: 2088: 2086: 2082: 2070: 2069: 2065: 2061: 2029: 1935: 1910: 1904: 1880:hard disk drive 1872:primary storage 1851: 1845: 1840: 1591: 1586: 1581: 1576: 1571: 1566: 1561: 1556: 1551: 1546: 1541: 1536: 1531: 1526: 1521: 1516: 1511: 1506: 1501: 1496: 1491: 1486: 1481: 1476: 1471: 1466: 1461: 1456: 1451: 1446: 1441: 1436: 1421: 1416: 1411: 1406: 1401: 1396: 1391: 1386: 1381: 1376: 1371: 1366: 1361: 1356: 1351: 1346: 1341: 1336: 1331: 1326: 1321: 1316: 1311: 1306: 1301: 1296: 1291: 1286: 1281: 1276: 1271: 1266: 1209: 1204: 1199: 1194: 1189: 1184: 1179: 1174: 1169: 1164: 1159: 1154: 1149: 1144: 1139: 1134: 1129: 1124: 1119: 1114: 1109: 1104: 1099: 1094: 1089: 1084: 1079: 1074: 1069: 1064: 1059: 1054: 1039: 1034: 1029: 1024: 1019: 1014: 1009: 1004: 999: 994: 989: 984: 979: 974: 969: 964: 959: 954: 949: 944: 939: 934: 929: 924: 919: 914: 909: 904: 899: 894: 889: 884: 865: 840: 831: 803: 800: 787: 774: 768: 756:legacy software 725: 719: 647: 619: 613: 604: 595: 594: 591: 588: 585: 582: 579: 576: 573: 570: 567: 564: 561: 558: 555: 552: 549: 546: 543: 540: 537: 534: 531: 486: 442: 402: 388: 359: 340: 334: 276: 210:system software 186: 134:Intel Pentium 4 35: 28: 23: 22: 15: 12: 11: 5: 4212: 4210: 4202: 4201: 4196: 4186: 4185: 4179: 4178: 4176: 4175: 4165: 4155: 4145: 4143:Virtual memory 4135: 4124: 4121: 4120: 4118: 4117: 4112: 4107: 4101: 4099: 4095: 4094: 4092: 4091: 4086: 4081: 4075: 4073: 4069: 4068: 4066: 4065: 4063:Stack overflow 4060: 4055: 4050: 4044: 4042: 4036: 4035: 4033: 4032: 4030:Weak reference 4027: 4022: 4017: 4012: 4007: 4002: 3997: 3992: 3987: 3982: 3977: 3971: 3969: 3963: 3962: 3960: 3959: 3954: 3949: 3943: 3941: 3935: 3934: 3932: 3931: 3926: 3921: 3916: 3911: 3906: 3900: 3898: 3892: 3891: 3889: 3888: 3883: 3878: 3873: 3871:Protected mode 3867: 3865: 3859: 3858: 3856: 3855: 3850: 3845: 3840: 3834: 3832: 3830:Virtual memory 3826: 3825: 3823: 3822: 3816: 3810: 3803: 3801: 3797: 3796: 3794: 3793: 3787: 3784: 3783: 3778: 3776: 3775: 3768: 3761: 3753: 3744: 3743: 3741: 3740: 3735: 3734: 3733: 3731:User interface 3728: 3718: 3713: 3708: 3703: 3698: 3692: 3690: 3686: 3685: 3683: 3682: 3677: 3672: 3667: 3662: 3657: 3655:File attribute 3652: 3647: 3642: 3636: 3634: 3623: 3622: 3620: 3619: 3617:Virtual memory 3614: 3609: 3604: 3599: 3594: 3589: 3583: 3581: 3569: 3568: 3565: 3564: 3562: 3561: 3556: 3551: 3546: 3540: 3538: 3530: 3529: 3527: 3526: 3521: 3516: 3511: 3506: 3501: 3496: 3491: 3489:Context switch 3486: 3471: 3469: 3462: 3456: 3455: 3452: 3451: 3449: 3448: 3443: 3438: 3432: 3430: 3426: 3425: 3423: 3422: 3417: 3412: 3407: 3402: 3397: 3392: 3387: 3381: 3379: 3370: 3364: 3363: 3361: 3360: 3355: 3350: 3345: 3340: 3335: 3330: 3325: 3320: 3315: 3309: 3307: 3303: 3302: 3300: 3299: 3294: 3289: 3284: 3279: 3274: 3269: 3263: 3261: 3257: 3256: 3251: 3249: 3248: 3241: 3234: 3226: 3220: 3219: 3214: 3209: 3204: 3199: 3194: 3189: 3182: 3181:External links 3179: 3177: 3176: 3140: 3100: 3076:Gareau, Jean. 3068: 3033: 3010: 2991: 2984: 2966: 2934: 2914: 2894: 2865: 2833: 2802: 2783: 2764: 2745: 2722: 2703: 2685: 2667: 2649: 2631: 2604: 2578: 2560: 2553: 2531: 2511: 2489: 2476: 2450: 2432: 2401: 2387: 2349: 2317: 2284: 2264: 2230: 2210: 2178: 2155: 2121: 2098: 2062: 2060: 2057: 2056: 2055: 2050: 2045: 2040: 2035: 2028: 2025: 2009:device drivers 1934: 1931: 1903: 1900: 1844: 1841: 1839: 1838: 1835: 1825: 1815: 1805: 1795: 1785: 1784: 1783: 1776: 1759: 1758: 1757: 1756: 1755: 1744: 1718: 1717: 1716: 1715:may jump here. 1705: 1704:may jump here; 1669: 1659: 1643: 1642: 1639: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1617: 1614: 1611: 1606: 1603: 1600: 1597: 1593: 1592: 1589: 1587: 1584: 1582: 1579: 1577: 1574: 1572: 1569: 1567: 1564: 1562: 1559: 1557: 1554: 1552: 1549: 1547: 1544: 1542: 1539: 1537: 1534: 1532: 1529: 1527: 1524: 1522: 1519: 1517: 1514: 1512: 1509: 1507: 1504: 1502: 1499: 1497: 1494: 1492: 1489: 1487: 1484: 1482: 1479: 1477: 1474: 1472: 1469: 1467: 1464: 1462: 1459: 1457: 1454: 1452: 1449: 1447: 1444: 1442: 1439: 1437: 1434: 1431: 1430: 1427: 1423: 1422: 1419: 1417: 1414: 1412: 1409: 1407: 1404: 1402: 1399: 1397: 1394: 1392: 1389: 1387: 1384: 1382: 1379: 1377: 1374: 1372: 1369: 1367: 1364: 1362: 1359: 1357: 1354: 1352: 1349: 1347: 1344: 1342: 1339: 1337: 1334: 1332: 1329: 1327: 1324: 1322: 1319: 1317: 1314: 1312: 1309: 1307: 1304: 1302: 1299: 1297: 1294: 1292: 1289: 1287: 1284: 1282: 1279: 1277: 1274: 1272: 1269: 1267: 1264: 1257: 1256: 1246: 1245: 1242: 1241: 1238: 1235: 1232: 1229: 1226: 1223: 1220: 1217: 1211: 1210: 1207: 1205: 1202: 1200: 1197: 1195: 1192: 1190: 1187: 1185: 1182: 1180: 1177: 1175: 1172: 1170: 1167: 1165: 1162: 1160: 1157: 1155: 1152: 1150: 1147: 1145: 1142: 1140: 1137: 1135: 1132: 1130: 1127: 1125: 1122: 1120: 1117: 1115: 1112: 1110: 1107: 1105: 1102: 1100: 1097: 1095: 1092: 1090: 1087: 1085: 1082: 1080: 1077: 1075: 1072: 1070: 1067: 1065: 1062: 1060: 1057: 1055: 1052: 1049: 1048: 1045: 1041: 1040: 1037: 1035: 1032: 1030: 1027: 1025: 1022: 1020: 1017: 1015: 1012: 1010: 1007: 1005: 1002: 1000: 997: 995: 992: 990: 987: 985: 982: 980: 977: 975: 972: 970: 967: 965: 962: 960: 957: 955: 952: 950: 947: 945: 942: 940: 937: 935: 932: 930: 927: 925: 922: 920: 917: 915: 912: 910: 907: 905: 902: 900: 897: 895: 892: 890: 887: 885: 882: 875: 874: 866: 864: 861: 853: 852: 848: 839: 836: 830: 827: 799: 798:Protected mode 796: 786: 783: 767: 764: 721:Main article: 718: 715: 691: 690: 687: 684: 683:Executing data 681: 676: 673: 670: 663:virtual memory 646: 643: 639:device drivers 612: 609: 603: 600: 532:; MASM program 530: 485: 482: 481: 480: 475: 472: 465: 451: 441: 438: 387: 384: 333: 330: 319:add-on devices 275: 272: 218:virtual memory 196:, also called 194:protected mode 192:In computing, 188: 187: 185: 184: 177: 170: 162: 159: 158: 154: 153: 152: 151: 141: 127: 117: 107: 97: 87: 80:Protected mode 77: 67: 54: 53: 48:modes for the 46:Microprocessor 42: 41: 26: 24: 18:Protected Mode 14: 13: 10: 9: 6: 4: 3: 2: 4211: 4200: 4197: 4195: 4192: 4191: 4189: 4174: 4166: 4164: 4156: 4154: 4146: 4144: 4136: 4134: 4126: 4125: 4122: 4116: 4113: 4111: 4108: 4106: 4103: 4102: 4100: 4096: 4090: 4087: 4085: 4082: 4080: 4079:Fragmentation 4077: 4076: 4074: 4070: 4064: 4061: 4059: 4056: 4054: 4051: 4049: 4046: 4045: 4043: 4041: 4040:Memory safety 4037: 4031: 4028: 4026: 4023: 4021: 4018: 4016: 4013: 4011: 4008: 4006: 4003: 4001: 3998: 3996: 3993: 3991: 3988: 3986: 3983: 3981: 3978: 3976: 3973: 3972: 3970: 3968: 3964: 3958: 3955: 3953: 3950: 3948: 3945: 3944: 3942: 3940: 3936: 3930: 3927: 3925: 3922: 3920: 3917: 3915: 3912: 3910: 3907: 3905: 3902: 3901: 3899: 3897: 3893: 3887: 3884: 3882: 3879: 3877: 3874: 3872: 3869: 3868: 3866: 3864: 3860: 3854: 3851: 3849: 3846: 3844: 3843:Memory paging 3841: 3839: 3838:Demand paging 3836: 3835: 3833: 3831: 3827: 3820: 3817: 3814: 3811: 3808: 3805: 3804: 3802: 3798: 3792: 3789: 3788: 3785: 3781: 3774: 3769: 3767: 3762: 3760: 3755: 3754: 3751: 3739: 3736: 3732: 3729: 3727: 3724: 3723: 3722: 3719: 3717: 3714: 3712: 3709: 3707: 3704: 3702: 3699: 3697: 3694: 3693: 3691: 3687: 3681: 3678: 3676: 3673: 3671: 3668: 3666: 3663: 3661: 3658: 3656: 3653: 3651: 3648: 3646: 3643: 3641: 3638: 3637: 3635: 3633: 3628: 3624: 3618: 3615: 3613: 3610: 3608: 3605: 3603: 3600: 3598: 3597:Memory paging 3595: 3593: 3590: 3588: 3585: 3584: 3582: 3579: 3574: 3570: 3560: 3557: 3555: 3552: 3550: 3547: 3545: 3542: 3541: 3539: 3537: 3531: 3525: 3522: 3520: 3517: 3515: 3512: 3510: 3507: 3505: 3502: 3500: 3497: 3495: 3492: 3490: 3487: 3484: 3480: 3476: 3473: 3472: 3470: 3466: 3463: 3461: 3457: 3447: 3444: 3442: 3439: 3437: 3436:Device driver 3434: 3433: 3431: 3427: 3421: 3418: 3416: 3413: 3411: 3408: 3406: 3403: 3401: 3398: 3396: 3393: 3391: 3388: 3386: 3383: 3382: 3380: 3378: 3377:Architectures 3374: 3371: 3369: 3365: 3359: 3356: 3354: 3351: 3349: 3346: 3344: 3341: 3339: 3336: 3334: 3331: 3329: 3326: 3324: 3321: 3319: 3316: 3314: 3311: 3310: 3308: 3304: 3298: 3295: 3293: 3290: 3288: 3285: 3283: 3280: 3278: 3275: 3273: 3270: 3268: 3265: 3264: 3262: 3258: 3254: 3247: 3242: 3240: 3235: 3233: 3228: 3227: 3224: 3218: 3215: 3213: 3210: 3208: 3205: 3203: 3200: 3198: 3195: 3193: 3190: 3188: 3185: 3184: 3180: 3173: 3163:on 2007-02-12 3159: 3155: 3151: 3144: 3141: 3137: 3126:on 2007-02-12 3122: 3118: 3114: 3107: 3105: 3101: 3097: 3087:on 2008-05-16 3083: 3079: 3072: 3069: 3065: 3054:on 2008-04-22 3050: 3046: 3040: 3038: 3034: 3020: 3014: 3011: 3006: 3000: 2998: 2996: 2992: 2987: 2985:0-7645-4569-8 2981: 2977: 2970: 2967: 2963: 2949: 2945: 2938: 2935: 2930: 2926: 2925: 2918: 2915: 2910: 2906: 2905: 2898: 2895: 2880: 2876: 2869: 2866: 2862: 2848: 2844: 2837: 2834: 2830: 2820:. May 6, 1998 2819: 2812: 2806: 2803: 2795: 2794: 2787: 2784: 2776: 2775: 2768: 2765: 2757: 2756: 2749: 2746: 2741: 2737: 2736: 2729: 2727: 2723: 2715: 2714: 2707: 2704: 2699: 2695: 2689: 2686: 2681: 2677: 2671: 2668: 2663: 2659: 2653: 2650: 2645: 2641: 2635: 2632: 2628: 2615: 2608: 2605: 2593: 2589: 2582: 2579: 2575: 2574: 2569: 2564: 2561: 2556: 2554:1-59327-003-8 2550: 2546: 2542: 2535: 2532: 2527: 2523: 2522: 2515: 2512: 2504: 2503: 2496: 2494: 2490: 2479: 2477:0-7897-3404-4 2473: 2468: 2467: 2461: 2454: 2451: 2446: 2442: 2436: 2433: 2422:on 2014-10-21 2418: 2411: 2405: 2402: 2397: 2391: 2388: 2377:on 2007-06-22 2373: 2369: 2362: 2360: 2358: 2356: 2354: 2350: 2346: 2332: 2328: 2321: 2318: 2306: 2299: 2293: 2291: 2289: 2285: 2280: 2276: 2275: 2268: 2265: 2261: 2251:on 2008-03-22 2247: 2243: 2237: 2235: 2231: 2226: 2222: 2221: 2214: 2211: 2200:on 2011-07-07 2196: 2189: 2182: 2179: 2174: 2170: 2169: 2162: 2160: 2156: 2152: 2142: 2135: 2128: 2126: 2122: 2117: 2113: 2112: 2105: 2103: 2099: 2095: 2081: 2077: 2073: 2067: 2064: 2058: 2054: 2051: 2049: 2046: 2044: 2041: 2039: 2036: 2034: 2031: 2030: 2026: 2024: 2022: 2018: 2014: 2010: 2006: 2002: 1998: 1994: 1990: 1985: 1983: 1978: 1973: 1968: 1964: 1962: 1958: 1954: 1950: 1949: 1944: 1940: 1932: 1930: 1926: 1923: 1919: 1915: 1909: 1901: 1899: 1896: 1892: 1888: 1883: 1881: 1877: 1873: 1863: 1855: 1850: 1842: 1836: 1833: 1829: 1826: 1823: 1819: 1816: 1813: 1809: 1806: 1803: 1799: 1796: 1793: 1789: 1786: 1781: 1777: 1774: 1770: 1769: 1767: 1763: 1760: 1753: 1749: 1745: 1742: 1738: 1734: 1733: 1731: 1727: 1723: 1719: 1714: 1710: 1706: 1703: 1699: 1695: 1694: 1692: 1688: 1684: 1680: 1679: 1677: 1673: 1670: 1667: 1663: 1660: 1657: 1653: 1650: 1649: 1648: 1610: 1594: 1588: 1583: 1578: 1573: 1568: 1563: 1558: 1553: 1548: 1543: 1538: 1533: 1528: 1523: 1518: 1513: 1508: 1503: 1498: 1493: 1488: 1483: 1478: 1473: 1468: 1463: 1458: 1453: 1448: 1443: 1438: 1433: 1432: 1424: 1418: 1413: 1408: 1403: 1398: 1393: 1388: 1383: 1378: 1373: 1368: 1363: 1358: 1353: 1348: 1343: 1338: 1333: 1328: 1323: 1318: 1313: 1308: 1303: 1298: 1293: 1288: 1283: 1278: 1273: 1268: 1263: 1262: 1259: 1258: 1255: 1252: 1251: 1216: 1212: 1206: 1201: 1196: 1191: 1186: 1181: 1176: 1171: 1166: 1161: 1156: 1151: 1146: 1141: 1136: 1131: 1126: 1121: 1116: 1111: 1106: 1101: 1096: 1091: 1086: 1081: 1076: 1071: 1066: 1061: 1056: 1051: 1050: 1042: 1036: 1031: 1026: 1021: 1016: 1011: 1006: 1001: 996: 991: 986: 981: 976: 971: 966: 961: 956: 951: 946: 941: 936: 931: 926: 921: 916: 911: 906: 901: 896: 891: 886: 881: 880: 877: 876: 873: 870: 869: 862: 860: 856: 849: 846: 845: 844: 837: 835: 828: 826: 824: 819: 817: 813: 809: 797: 795: 793: 784: 778: 773: 765: 763: 761: 757: 751: 749: 745: 741: 737: 732: 730: 724: 716: 714: 712: 708: 704: 700: 696: 688: 685: 682: 680: 677: 674: 671: 668: 667: 666: 664: 658: 654: 652: 644: 642: 640: 636: 632: 623: 618: 610: 608: 601: 599: 528: 526: 522: 518: 514: 510: 505: 503: 499: 498:stack pointer 495: 491: 483: 479: 476: 473: 470: 466: 463: 459: 458:address space 455: 452: 450: 447: 446: 445: 439: 437: 435: 431: 427: 426:multiuser DOS 422: 420: 416: 412: 408: 401: 392: 385: 383: 381: 376: 372: 367: 365: 357: 353: 349: 345: 339: 331: 329: 327: 322: 320: 316: 312: 308: 304: 300: 296: 292: 288: 285: 281: 273: 271: 269: 265: 261: 257: 252: 250: 246: 242: 238: 233: 231: 227: 226:multi-tasking 223: 219: 215: 211: 207: 203: 199: 195: 183: 178: 176: 171: 169: 164: 163: 161: 160: 156: 155: 149: 145: 142: 139: 138:AMD Athlon 64 135: 131: 128: 125: 124:AMD Athlon 64 121: 118: 115: 111: 108: 105: 101: 98: 95: 91: 88: 85: 81: 78: 75: 71: 68: 65: 61: 58: 57: 56: 55: 51: 47: 43: 39: 38: 33: 19: 3870: 3632:file systems 3524:Time-sharing 3171: 3165:. Retrieved 3158:the original 3153: 3143: 3134: 3128:. Retrieved 3121:the original 3116: 3095: 3089:. Retrieved 3082:the original 3071: 3062: 3056:. Retrieved 3049:the original 3025:. Retrieved 3013: 2975: 2969: 2961: 2955:. Retrieved 2948:the original 2937: 2923: 2917: 2903: 2897: 2886:. Retrieved 2879:the original 2868: 2860: 2854:. Retrieved 2847:the original 2836: 2828: 2822:. Retrieved 2817: 2805: 2792: 2786: 2773: 2767: 2754: 2748: 2734: 2712: 2706: 2688: 2670: 2652: 2634: 2626: 2620:. Retrieved 2607: 2595:. Retrieved 2591: 2581: 2571: 2563: 2547:. O'Reilly. 2544: 2534: 2520: 2514: 2501: 2481:. Retrieved 2465: 2453: 2445:the original 2435: 2424:. Retrieved 2417:the original 2404: 2390: 2379:. Retrieved 2372:the original 2344: 2338:. Retrieved 2331:the original 2320: 2309:. Retrieved 2304: 2273: 2267: 2259: 2253:. Retrieved 2246:the original 2219: 2213: 2202:. Retrieved 2195:the original 2181: 2167: 2150: 2144:. Retrieved 2110: 2093: 2087:. Retrieved 2080:the original 2075: 2066: 1997:DOS extender 1986: 1965: 1952: 1946: 1936: 1927: 1911: 1902:Multitasking 1898:active use. 1884: 1878:, such as a 1868: 1831: 1827: 1821: 1817: 1811: 1807: 1801: 1797: 1792:Segment type 1791: 1787: 1779: 1772: 1765: 1761: 1751: 1747: 1740: 1736: 1729: 1725: 1721: 1712: 1708: 1701: 1697: 1690: 1686: 1682: 1675: 1671: 1665: 1661: 1655: 1651: 1646: 1608: 1253: 1214: 871: 857: 854: 841: 832: 822: 820: 815: 811: 807: 804:segment_part 801: 788: 752: 748:input/output 733: 728: 726: 711:Windows 2.1x 692: 660: 656: 650: 648: 628: 605: 596: 592:CLEAR_LABEL: 506: 502:triple fault 487: 443: 423: 403: 368: 341: 323: 277: 253: 234: 214:segmentation 204:-compatible 197: 193: 191: 79: 52:architecture 4084:Memory leak 3650:Device file 3640:Boot loader 3554:Round-robin 3479:Cooperative 3415:Rump kernel 3405:Multikernel 3395:Microkernel 3292:Usage share 2597:24 November 2573:PC Magazine 1995:compatible 1891:page tables 1832:Granularity 707:Windows 2.0 703:Windows 3.0 589:CLEAR_LABEL 400:Intel 80386 338:Intel 80286 287:address bus 114:Intel 386SL 104:Intel 80386 94:Intel 80286 90:Unreal mode 84:Intel 80286 74:NEC V20/V30 4188:Categories 3848:Page table 3580:protection 3536:algorithms 3534:Scheduling 3483:Preemptive 3429:Components 3400:Monolithic 3267:Comparison 3167:2007-07-29 3130:2007-07-29 3091:2007-07-29 3058:2007-07-29 3027:2007-07-29 2957:2007-07-25 2888:2007-07-25 2856:2007-07-25 2824:2007-07-25 2622:2007-07-24 2483:2017-07-11 2426:2015-08-17 2381:2007-07-24 2340:2007-07-24 2311:2007-07-24 2255:2007-07-14 2249:(Timeline) 2204:2009-07-31 2146:2007-07-14 2089:2007-07-14 2059:References 2017:Windows NT 1972:Windows 9x 1948:Family API 1916:, and the 1914:call gates 1766:Executable 1691:Conforming 760:Windows NT 635:call gates 280:Intel 8086 64:Intel 8086 3995:Finalizer 3876:Real mode 3670:Partition 3587:Bus error 3514:Real-time 3494:Interrupt 3420:Unikernel 3385:Exokernel 3161:(Article) 3124:(Article) 3052:(Article) 3022:(Website) 2617:(Article) 2592:InfoWorld 2375:(Article) 2334:(Article) 2033:Long mode 2021:long mode 1730:direction 1724:= 0 then 1685:= 1 then 814:inside a 785:Real mode 740:exception 407:gigabytes 380:megabytes 371:real mode 364:kilobytes 360:4 × 64 KB 307:kilobytes 251:0 (CR0). 237:real mode 224:and safe 120:Long mode 60:Real mode 3929:ptmalloc 3924:mimalloc 3914:jemalloc 3904:dlmalloc 3800:Hardware 3716:Live USB 3578:resource 3468:Concepts 3306:Variants 3287:Timeline 2814:(Patent) 2083:(Patent) 2027:See also 1666:Readable 1656:Accessed 808:selector 792:line A20 602:Features 513:A20 line 375:software 356:kilobyte 344:Coherent 313:for the 299:megabyte 289:for its 4000:Garbage 3919:libumem 3821:(IOMMU) 3711:Live CD 3665:Journal 3629:access, 3627:Storage 3504:Process 3410:vkernel 3277:History 3260:General 3154:NewOrer 3117:NewOrer 3085:(Guide) 2951:(Guide) 2882:(Guide) 2850:(Guide) 2137:(Guide) 1977:handles 1895:pointer 1830:is the 1820:is the 1812:Present 1810:is the 1800:is the 1790:is the 1764:is the 1728:is the 1689:is the 1664:is the 1654:is the 1647:Where: 851:paging. 471:offsets 469:segment 467:32-bit 462:80386SX 386:The 386 332:The 286 274:History 247:in the 4072:Issues 3519:Thread 3390:Hybrid 3368:Kernel 2982:  2551:  2474:  1887:arrays 1849:Paging 1843:Paging 1613:Limit 1429:Limit 1215:Unused 1047:Limit 823:linear 562:PE_BIT 517:IBM PC 494:IBM AT 454:32-bit 449:Paging 291:memory 222:paging 148:VIA C3 146:mode ( 4098:Other 3909:Hoard 3815:(TLB) 3809:(MMU) 3721:Shell 3660:Inode 3064:disk. 2929:Intel 2909:Intel 2797:(PDF) 2778:(PDF) 2759:(PDF) 2740:Intel 2717:(PDF) 2698:Intel 2680:Intel 2662:Intel 2644:Intel 2526:Intel 2506:(PDF) 2420:(PDF) 2413:(PDF) 2279:Intel 2225:Intel 2198:(PDF) 2191:(PDF) 2173:Intel 2116:Intel 2043:Intel 1953:bound 1943:crash 1768:bit: 1732:bit: 1637:Base 1596:Base 1426:Base 1240:Base 1044:Base 812:entry 631:rings 521:PC/XT 419:Linux 352:Minix 348:Xenix 326:Intel 295:bytes 268:80386 264:80286 260:Intel 150:only) 76:only) 3282:List 2980:ISBN 2599:2014 2549:ISBN 2472:ISBN 2013:OS/2 1993:DPMI 1961:OS/2 1957:Unix 1939:OS/2 1834:bit; 1814:bit; 1752:down 1668:bit; 1658:bit; 1619:DPL 1222:DPL 744:trap 709:and 519:and 315:BIOS 278:The 70:8080 3738:PXE 3726:CLI 3706:HAL 3696:API 3499:IPC 1951:or 1798:DPL 1778:if 1771:if 1746:if 1735:if 1720:if 1713:DPL 1707:if 1702:DPL 1696:if 1681:if 838:386 829:286 695:DOS 586:jmp 577:EBX 571:CR0 568:mov 556:EBX 547:CR0 541:EBX 538:mov 490:IBM 284:bit 262:'s 256:x86 245:bit 202:x86 144:AIS 50:x86 4190:: 3481:, 3170:. 3152:. 3133:. 3115:. 3103:^ 3094:. 3061:. 3036:^ 2994:^ 2960:. 2927:. 2907:. 2859:. 2827:. 2816:. 2738:. 2725:^ 2696:. 2678:. 2660:. 2642:. 2625:. 2590:. 2543:. 2524:. 2492:^ 2462:. 2352:^ 2343:. 2303:. 2287:^ 2277:. 2258:. 2233:^ 2223:. 2171:. 2158:^ 2149:. 2139:. 2124:^ 2114:. 2101:^ 2092:. 2074:. 1741:up 1678:: 1634:A 1631:R 1628:C 1625:X 1622:S 1616:P 1605:0 1602:D 1599:G 1237:A 1234:R 1231:C 1228:X 1225:S 1219:P 653:, 553:or 527:. 417:, 382:. 321:. 232:. 220:, 216:, 136:, 3772:e 3765:t 3758:v 3575:, 3485:) 3477:( 3245:e 3238:t 3231:v 3030:. 3007:. 2988:. 2891:. 2601:. 2557:. 2486:. 2429:. 2384:. 2314:. 2207:. 1828:G 1824:; 1818:D 1808:P 1804:; 1788:S 1780:X 1773:X 1762:X 1754:. 1748:C 1743:; 1737:C 1726:C 1722:X 1709:C 1698:C 1687:C 1683:X 1676:X 1672:C 1662:R 1652:A 1609:U 1590:2 1585:3 1580:4 1575:5 1570:6 1565:7 1560:8 1555:9 1550:0 1545:1 1540:2 1535:3 1530:4 1525:5 1520:6 1515:7 1510:8 1505:9 1500:0 1495:1 1490:2 1485:3 1480:4 1475:5 1470:6 1465:7 1460:8 1455:9 1450:0 1445:1 1440:2 1435:3 1420:0 1415:1 1410:2 1405:3 1400:4 1395:5 1390:6 1385:7 1380:8 1375:9 1370:0 1365:1 1360:2 1355:3 1350:4 1345:5 1340:6 1335:7 1330:8 1325:9 1320:0 1315:1 1310:2 1305:3 1300:4 1295:5 1290:6 1285:7 1280:8 1275:9 1270:0 1265:1 1208:2 1203:3 1198:4 1193:5 1188:6 1183:7 1178:8 1173:9 1168:0 1163:1 1158:2 1153:3 1148:4 1143:5 1138:6 1133:7 1128:8 1123:9 1118:0 1113:1 1108:2 1103:3 1098:4 1093:5 1088:6 1083:7 1078:8 1073:9 1068:0 1063:1 1058:2 1053:3 1038:0 1033:1 1028:2 1023:3 1018:4 1013:5 1008:6 1003:7 998:8 993:9 988:0 983:1 978:2 973:3 968:4 963:5 958:6 953:7 948:8 943:9 938:0 933:1 928:2 923:3 918:4 913:5 908:6 903:7 898:8 893:9 888:0 883:1 574:, 559:, 544:, 181:e 174:t 167:v 140:) 132:( 126:) 122:( 116:) 112:( 106:) 102:( 96:) 92:( 86:) 82:( 66:) 62:( 34:. 20:)

Index

Protected Mode
Mandatory Integrity Control
Microprocessor
x86
Real mode
Intel 8086
8080
NEC V20/V30
Protected mode
Intel 80286
Unreal mode
Intel 80286
Virtual 8086 mode
Intel 80386
System Management Mode
Intel 386SL
Long mode
AMD Athlon 64
x86 virtualization
Intel Pentium 4
AMD Athlon 64
AIS
VIA C3
v
t
e
x86
central processing units
system software
segmentation

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