Reserved memory addresses?

Is there a list of reserved memory addresses there - a list of addresses to which user-space program memory can never be allocated? I understand that this is most likely for the OS or for the architecture, but I was hoping that someone might know some of the most common OS and Arches. I could only fork out several versions of windows:

for Windows NT, 2k and XP:

0x00000000 - 0x0000ffff -> the lowest page is protected to simplify debugging

0x00001000 - 0x7ffeffff -> memory area for your application

0x7fff0000 - 0x7fffffff β†’ protected area so that the memory functions do not damage the next part

0x80000000 - 0xffffffff β†’ the memory in which the system is located, including drivers, etc.

Does anyone know about Linux or BSD (or something else, for that matter)?

+3
source share
1 answer

Typically, Linux is configured to use the kernel from 0xC000000 to 0xFFFFFFFF. This can be changed (for example, the shameful 4 GB-4 GB partition that does not reserve). glibc is usually loaded at 0xB000000.

On Linux, 0x00000000 can be requested by a specific mmap () call if it is not blocked by sysctl security (which turned out to be a bad idea to block).

Null selection job:

NULL is clearly allocated, so I assume that the program was prepared for the consequence of this. At the very least, -fno-delete-null-pointer-checksit is required for GCC to operate the affected code. I was told that this is an emulation of the old BSD behavior displaying the zero page.

+1

Source: https://habr.com/ru/post/1737007/


All Articles