第六章 可执行文件的装载与进程
32位平台下,进程的虚拟地址空间为4GB,其中有1GB的空间为内核空间(用于内核代码执行和内核数据存储)
32位CPU,程序使用的虚拟空间不能超过4GB,因为32位的CPU只能使用32位的指针,最大寻址范围为4GB。
32位CPU,程序使用的真实物理空间可以超过32GB,因为地址线可以扩展成36位地址线,可以访问到更多的物理内存。(PAE:物理地址扩展)
一个进程要使用多余的空间通过mmap映射的方式即可,根据需要将同样的虚拟地址空间映射到不同的物理地址空间。
动态链接
原因:
- 静态链接很耗内存,每个进程都需要一个公有库的副本。
- 一旦程序中有任何模块更新, 整个模块就要重新链接,发布给用户。
动态链接就是讲链接推迟到运行时再进行。