Linux中,每个进程通过一个task_struct结构体描述,每个进程地址虚拟空间通过一个mm_struct描述,c语言中每个段空间通过vm_area_struct描述,关系如下,
当执行一个程序时,linux创建一个进程,通过sys_exec()将该程序的内容(程序编译后产生的是虚拟地址空间)映射到进程的虚拟地址空间中而不是物理内存中,生成一组vm_area_struct数据结构用来表示可执行程序的信息。具体步骤如下:
Linux中,每个进程通过一个task_struct结构体描述,每个进程地址虚拟空间通过一个mm_struct描述,c语言中每个段空间通过vm_area_struct描述,关系如下,
当执行一个程序时,linux创建一个进程,通过sys_exec()将该程序的内容(程序编译后产生的是虚拟地址空间)映射到进程的虚拟地址空间中而不是物理内存中,生成一组vm_area_struct数据结构用来表示可执行程序的信息。具体步骤如下: