Description
The scope of the discussion is the default 32-bit Windows NT system, Intel architecture.
Looking at the things that Windows kernel programming has figured out, I'm not sure I understand it completely.
Process Virtual address space
32-bit operating system, addressing space is 32Bit, the virtual address space of the process is 4GB (equals 2^32), and its virtual address space layout is as follows:
under normal circumstances, in addition to the user area, other parts of the program is not directly accessible, you can use a function like isbadreadptr to check access to the target area.
Physical memory
The
physical memory is the real physical disk associated with the virtual address, including the memory and hard disk, and its main composition is as follows: When the process is created, the address space of the process is created first, the subject of the available address space is idle, that is, unassigned, The system then gives the process space the required area (including the image map area, the program file mapping area, etc.), and finally submits the physical memory to the reserved process area. For program file mappings, the physical memory that is submitted is the memory-mapped file for the program (that is, the physical location of the program file on disk).