Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux vm_区域结构中的start_data、end_data和类似字段:vm_start、vm_end_Linux_Memory_Linux Kernel - Fatal编程技术网

Linux vm_区域结构中的start_data、end_data和类似字段:vm_start、vm_end

Linux vm_区域结构中的start_data、end_data和类似字段:vm_start、vm_end,linux,memory,linux-kernel,Linux,Memory,Linux Kernel,在mm_结构中,有一些字段指示数据区域的范围:开始_数据、结束_数据。 在数据区域的vm_area_结构中,还有一些字段指示该区域的范围:vm_start,vm_end 它们是如何相互对应的? 为什么mm_结构中没有bss_开始、bss_结束字段?mm_结构表示整个过程,vm_区域结构表示内存区域。一个进程由许多内存区域组成 为什么mm_结构中没有bss_开始、bss_结束字段 因为mm_struct指的是整个流程,而不是流程的特定部分 一个过程中的节数和区域数不相同。内存区域可能有数百个。您能

在mm_结构中,有一些字段指示数据区域的范围:开始_数据、结束_数据。 在数据区域的vm_area_结构中,还有一些字段指示该区域的范围:vm_start,vm_end

它们是如何相互对应的?
为什么mm_结构中没有bss_开始、bss_结束字段?

mm_结构
表示整个过程,
vm_区域结构
表示内存区域。一个进程由许多内存区域组成

为什么mm_结构中没有bss_开始、bss_结束字段

因为mm_struct指的是整个流程,而不是流程的特定部分


一个过程中的节数和区域数不相同。内存区域可能有数百个。

您能为您的问题提供一些上下文吗?在进程内存中有一些区域:代码、数据、bss、堆、堆栈,。。。这些区域中的每一个都在vm_area_struct中描述。有vm_start和vm_end字段,指示每个区域在内存中的开始和结束位置。但在mm_结构中,也有一些字段,如start_数据、end_数据、start_代码、end_代码,这些字段似乎描述了相同的内容。为什么会有看起来像这样的字段?是的,mm_struct指的是整个过程,但它有像start_code这样的字段指的是内存区域(它也有自己的结构,比如vm_area_struct)。我的问题是:这些字段是否表示相同的内容?如果没有,区别是什么?@user2818904类型的变量
vm_area_struct
指的是第一个区域
mm_struct
@user2818904他们应该指的是同一个东西为什么在这些结构中这是两倍的?实际上他们不是两倍的<代码>mm_结构处理进程,“vm_区域结构”处理区域。从流程的角度来看,代码/数据的开始/结束是其信息。从区域的角度来看,这些也是信息。此外,一个过程中的部分和区域的数量也不相同。内存区域可能有数百个。