This is the quote from ARM ARM® Cortex™-A Series, Version: 4.0, Programmer’s Guide, Page 9-1.
"The MMU enables tasks or applications to be written in a way that requires them to have no knowledge of the physical memory map of the system, or about other programs that might be running simultaneously."
My question is related to linux programs which we compile through gcc. I dont want to go for dynamic linking, so please consider program is statically linked. I have been a embedded system programmer, and mostly we have a single linker file for whole project. based on linker file code/data is placed into RAM. But in case of Linux when I compile and link any c application using gcc (statically linked), i do not provide any linker file.
Question is how does Linux decides where to place/load my program in memory. Does it have a default linker file for all applications ?
Sure, GNU LD has default linker script. You can even see it. Just supply
-Wl,--verbose
to your GCC command line.