Re: Memory allocations in linux for processes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Niroj....

Please see inlined answer below...

On Mon, Mar 18, 2013 at 5:28 PM, Niroj Pokhrel <nirojpokhrel@xxxxxxxxx> 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

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux