在Linux系统中,一个进程(Process)通常由以下三个核心部分组成:
.data
):显式初始化的全局/静态变量。.bss
):未显式初始化的全局/静态变量(系统默认初始化为零或空值)。malloc()
、new
等申请),运行时动态扩展/收缩。ulimit -s
查看或设置)。进程控制块(PCB, Process Control Block):
Linux内核通过task_struct
结构体(PCB的具体实现)管理进程,包含进程状态、PID、寄存器值、文件描述符表等元信息。虽然不属于进程的“内存部分”,但它是进程存在的核心标识。
内存映射段(Memory Mapping Segment):
用于映射动态库或文件(如通过mmap()
系统调用),可能被归类为数据段的扩展。
# 查看进程内存映射(如PID为1234的进程)
cat /proc/1234/maps
输出会显示代码段(r-xp
)、数据段(rw-p
)、堆([heap]
)、栈([stack]
)等内存区域。
通过这三部分的协作,进程能够执行程序逻辑、管理数据,并维护运行时的上下文状态。