标签:共享库 com 内核 虚拟内存空间 lock info net 自己 加载
一个linux进程的虚拟地址空间分布如上图所示,分为内核空间和进程空间,对于一个32位操作系统来说,4GB的空间分成两部分,低地址的0~3G给用户空间,高地址的3G~4G给内核空间。
每个进程都自己独特的PCB和页表,映射到不同的物理内存。
所有进程的内核代码段都映射到同样的物理内存,并在内存中持续存在。
存放代码和常量值(字面值常量)
存放未初始化的全局变量
存放已经初始化的全局变量
动态内存的分配
常被用来加载共享库。
内存映射
将虚拟内存空间与磁盘上的文件关联起来,来初始化这个虚拟内存空间的内容,这个过程叫内存映射。
共享库
1)几乎每个程序都会用到如printf之类的标准I/O函数,如果只使用静态库,这些函数的代码将会被复制到正文段中,对于一个运行上百个进程的系统来说,这是一种对内存的浪费,所以提出共享库
2)程序第一此执行时,用动态链接的方法将程序和共享库链接,减少了可执行文件的长度
存放局部变量
转载自:https://blog.csdn.net/yusiguyuan/article/details/45155035?utm_source=blogxgwz0
标签:共享库 com 内核 虚拟内存空间 lock info net 自己 加载
原文地址:https://www.cnblogs.com/Joezzz/p/9803344.html