Virtual Memory Address (VMA)
- User process 在4GB virtual memory 分配如下:
或
(2) 2GB Kernel Space, 2GB User Space
- System分配給每個user process都是連續的virtual memory space,但是實際上的記憶體使用則是透過MMU來存取physical memory space.
- 查詢Process對應的VMA
#cat /proc/<pid>/maps
[root@GM]# cat /proc/360/maps
start end perm offset ma:mi inode image
00008000-0000a000 r-xp 00000000 1f:03 32 /mnt/mtd/myapp
00012000-00013000 rwxp 00002000 1f:03 32 /mnt/mtd/myapp
00013000-00018000 rwxp 00000000 00:00 0 [heap]
76e38000-76e44000 rwxs 011b0000 00:0d 625 /dev/log_vg
76e44000-76e47000 r-xp 00000000 1f:02 174 /lib/libdl-0.9.33.2.so
76e47000-76e4e000 ---p 00000000 00:00 0
76e4e000-76e4f000 r-xp 00002000 1f:02 174 /lib/libdl-0.9.33.2.so
76e4f000-76e50000 rwxp 00003000 1f:02 174 /lib/libdl-0.9.33.2.so
76e50000-76eb5000 r-xp 00000000 1f:02 172 /lib/libuClibc-0.9.33.2.so
76eb5000-76ebc000 ---p 00000000 00:00 0
76ebc000-76ebd000 r-xp 00064000 1f:02 172 /lib/libuClibc-0.9.33.2.so
76ebd000-76ebe000 rwxp 00065000 1f:02 172 /lib/libuClibc-0.9.33.2.so
76ebe000-76ec3000 rwxp 00000000 00:00 0
76ec3000-76f14000 r-xp 00000000 1f:02 165 /lib/libgm.so
76f14000-76f1c000 ---p 00000000 00:00 0
76f1c000-76f1d000 rwxp 00051000 1f:02 165 /lib/libgm.so
76f1d000-76f28000 rwxp 00000000 00:00 0
76f28000-76f3a000 r-xp 00000000 1f:02 158 /lib/libpthread-0.9.33.2.so
76f3a000-76f41000 ---p 00000000 00:00 0
76f41000-76f42000 r-xp 00011000 1f:02 158 /lib/libpthread-0.9.33.2.so
76f42000-76f43000 rwxp 00012000 1f:02 158 /lib/libpthread-0.9.33.2.so
76f43000-76f45000 rwxp 00000000 00:00 0
76f45000-76f4b000 r-xp 00000000 1f:02 156 /lib/ld-uClibc-0.9.33.2.so
76f50000-76f52000 rwxp 00000000 00:00 0
76f52000-76f53000 r-xp 00005000 1f:02 156 /lib/ld-uClibc-0.9.33.2.so
76f53000-76f54000 rwxp 00006000 1f:02 156 /lib/ld-uClibc-0.9.33.2.so
7e93a000-7e95b000 rw-p 00000000 00:00 0 [stack]
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]
欄位:
perm: permission
ma:mi: major:minor