Virtual Address Space
gprabhunath at gmail.com
Wed Sep 28 06:59:36 EDT 2016
The virtual addresses what you see in the output of objdump is
given/associated by Linker to every instruction and data symbol in the
data/bss section except for symbols in the stack section. It is wrong to
use generated in the context of Linker.
When you initiate *$./a.out* for execution, the kernel will take your start
address from the ELF header of *a.out* and place it on the PC (program
counter) or IP (instruction pointer) of the CPU, thereafter CPU will start
incrementing or generating virtual address for every subsequent
On Wed, Sep 28, 2016 at 3:41 PM, Madhu K <madhu.sk89 at gmail.com> wrote:
> Hi Arun,
> Thanks for your response.
> I will elaborate my question.Assume I have test.c file, I compiled test.c
> and generated the a.out ( Executable for linux ), when I do objdump of
> a.out, we can see addresses( virtual address ) associated with each
> instruction, these instructions are generated by whom?
> On Wed, Sep 28, 2016 at 11:35 AM, Arun Sudhilal <getarunks at gmail.com>
>> Hello Madhu,
>> On Wed, Sep 28, 2016 at 10:36 AM, Madhu K <madhu.sk89 at gmail.com> wrote:
>> > Hi All,
>> > This is to understand the Virtual address space.Basically who generates
>> > virtual addresses CPU or GNU compiler?
>> I didn't really get your question.
>> Linux kernel starts at a fixed location in virtual space. This is
>> called PAGE_OFFSET. On a kernel split of 3GB/1GB, 32 system, its is
>> 0xC000_0000. You can have a look at system.map file after compiling
>> your kernel.
>> When cpu runs with MMU on, your cpu generates virtual address.
>> > Thanks
>> > Madhu
>> > _______________________________________________
>> > Kernelnewbies mailing list
>> > Kernelnewbies at kernelnewbies.org
>> > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Kernelnewbies