程序装载与虚拟内存
ELF文件到虚拟地址空间的映射
进程虚拟地址空间
地址以字节编码 虚拟内存用户空间每个进程一份
1Byte=8bits
常以16进制表示 虚拟内存内核空间所有进程共享一份
0x3c = 0011 1100(B) 虚拟内存mmap段中的动态链接库仅在物理内存中装载一份
32位的进程虚拟地址空间
64位的进程虚拟地址空间
段与节
代码段(Text segment)包含了代码与只读数据
.txt节
.rodata节
.hash节
.dynsym节
.dynstr节
.plt节
.rel.got节
...
数据段(Data segment)包含了可读可写数据
.data节
.dynamic节
.got节
.got.plt节
.bss节
...
栈段(Stack segment)
-
一个段包含多个节
-
段视图用于进程的内存区域的rwx权限划分
-
节视图用于ELF文件编译链接时与在磁盘上存储时的文件结构的组织