Understanding Linux /proc/id/maps
来源:互联网 发布:如何查看ubuntu的版本 编辑:程序博客网 时间:2024/05/05 20:49
Understanding Linux /proc/id/maps
Each row in /proc/$PID/maps
describes a region of contiguous virtual memory in a process or thread. Each row has the following fields:
- address - This is the starting and ending address of the region in the process's address space
- permissions - This describes how pages in the region can be accessed. There are four different permissions: read, write, execute, and shared. If read/write/execute are disabled, a '-' will appear instead of the 'r'/'w'/'x'. If a region is not shared, it is private, so a 'p' will appear instead of an 's'. If the process attempts to access memory in a way that is not permitted, a segmentation fault is generated. Permissions can be changed using the
mprotect
system call. - offset - If the region was mapped from a file (using
mmap
), this is the offset in the file where the mapping begins. If the memory was not mapped from a file, it's just 0. - device - If the region was mapped from a file, this is the major and minor device number (in hex) where the file lives.
- inode - If the region was mapped from a file, this is the file number.
- pathname - If the region was mapped from a file, this is the name of the file. This field is blank for anonymous mapped regions. There are also special regions with names like
[heap]
,[stack]
, or[vdso]
.[vdso]
stands for virtual dynamic shared object. It's used by system calls to switch to kernel mode. Here's a good article about it.
You might notice a lot of anonymous regions. These are usually created by mmap
but are not attached to any file. They are used for a lot of miscellaneous things like shared memory or buffers not allocated on the heap. For instance, I think the pthread library uses anonymous mapped regions as stacks for new threads.
memory mapping is not only used to map files into memory but is also a tool to request RAM from kernel. These are those inode 0 entries - your stack, heap, bss segments and more
proc(5)
mmap(2)
"Understanding the Linux Kernel" 9.3. Memory Regions; 16.2. Memory Mapping
"Understanding the Linux Virtual Memory Manager" 4.4 Memory Regions
- Understanding Linux /proc/id/maps
- Understanding Linux /proc/id/maps
- Understanding Linux /proc/id/maps
- Understanding Linux /proc/cpuinfo
- linux proc maps文件分析
- linux proc maps文件分析
- linux proc maps文件分析
- /proc/maps
- (转载) Linux下 /proc/maps 文件分析
- Linux下 /proc/maps 文件分析
- Linux下 /proc/maps 文件分析
- (转载) Linux下 /proc/maps 文件分析
- (转载) Linux下 /proc/maps 文件分析
- Linux下 /proc/maps 文件分析
- linux /proc/pid/maps 信息分析
- Linux下 /proc/maps 文件分析
- linux /proc/pid/maps 信息分析
- linux /proc/pid/maps 信息分析
- Mapxtreme2008 Asp.net实现小车移动(轨迹回放)
- 关于数据库中的char与varchar
- Asp.Net(C#) Word(doc)转换为PDF
- posix消息队列
- 为自己的里程碑起博
- Understanding Linux /proc/id/maps
- nslookup 查询 ipv6的地址
- 一道java多线程的笔试题,难到我了,大家看看。
- properties文件操作心得
- android操作sdcard
- “明天”
- BASE64Decoder小解
- MongoDB简单介绍
- "明天"