Hi Niroj.... Please see inlined answer below... On Mon, Mar 18, 2013 at 5:28 PM, Niroj Pokhrel <nirojpokhrel@gmail.com> wrote:
Hi all, As I have read, whenever we execute a program, the memory is allocated in different sections viz stack, text and data segment.
Yup, that is correct
But, since we have used loader and linker the three allocations will happen for them too.
Correct again. Linker and loader will be the part of process address space.
But when I ran a program and did pmap pid, I saw several other fields which I have no idea of. What is the [anon] and what is it doing here ?
Anon is short of anonymous. It is a region of memory created by function e.g malloc() or mmap()
Why the memory is being implemented for it and there are so many of them ?
Drawing from above explanation, we can easily conclude somewhere in the program, it does malloc() or mmap().
And also the stack ( 3rd last element), is it the process stack??
Yes, it's process' stack
Can somebody please explain. Thanking you all in advance.
5448: ./a.out 0000000000400000 4K r-x-- /home/n.pokhrel/Personal/mywork/a.out 0000000000600000 4K r---- /home/n.pokhrel/Personal/mywork/a.out 0000000000601000 4K rw--- /home/n.pokhrel/Personal/mywork/a.out 00007f57f5e18000 1512K r-x-- /lib/libc-2.11.1.so 00007f57f5f92000 2044K ----- /lib/libc-2.11.1.so 00007f57f6191000 16K r---- /lib/libc-2.11.1.so 00007f57f6195000 4K rw--- /lib/libc-2.11.1.so 00007f57f6196000 20K rw--- [ anon ] 00007f57f619b000 128K r-x-- /lib/ld-2.11.1.so 00007f57f6396000 12K rw--- [ anon ] 00007f57f63b8000 8K rw--- [ anon ] 00007f57f63ba000 4K r---- /lib/ld-2.11.1.so 00007f57f63bb000 4K rw--- /lib/ld-2.11.1.so 00007f57f63bc000 4K rw--- [ anon ] 00007fffa2f37000 84K rw--- [ stack ]
00007fffa2fa0000 4K r-x-- [ anon ] ffffffffff600000 4K r-x-- [ anon ]
ok, one of the region above, I think it's VDSO (virtual dynamic shared object). It's a region that handle system call. When a process does system call, it jumps to VDSO, and it is the VDSO that does the actuall syscall -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com