Why is the ELF execution entry point virtual address of the form 0x80xxxxx and not zero 0x0?

As Mads pointed out, in order to catch most accesses through null pointers, Unix-like systems tend to make the page at address zero “unmapped”. Thus, accesses immediately trigger a CPU exception, in other words a segfault. This is quite better than letting the application go rogue. The exception vector table, however, can be at any … Read more

Is there any API for determining the physical address from virtual address in Linux?

Kernel and user space work with virtual addresses (also called linear addresses) that are mapped to physical addresses by the memory management hardware. This mapping is defined by page tables, set up by the operating system. DMA devices use bus addresses. On an i386 PC, bus addresses are the same as physical addresses, but other … Read more