文章目录
用户进程 的 虚拟地址空间部分 分段介绍
Linux中每一个运行的程序(进程),32位操作系统都会为其分配一个 0 ~ 4GB 的进程虚拟地址空间,64位操作系统会为其分配一个 0 ~ 16TB 的进程虚拟地址空间。
解释:
32 位操作系统下,一个指针的大小为 32 位即 4 个字节,它所能保存的地址范围为 [0, 2^32] ,所以它的寻址范围为 4GB 大小,所以 32 位操作系统下系统给进程分配的虚拟地址空间大小为 4 GB 。
64 位操作系统下,一个指针的大小为 64 位即 8 个字节,它所能保存的地址范围为 [0, 2^64] ,即 4GB * 4GB = 16TB,所以它的寻址范围为 16TB 大小,所以 64 位操作系统下系统给进程分配的虚拟地址空间大小为 16TB 。
进程:运行中的程序,Windows下的可执行文件有 .exe
文件,Linux下可执行文件格式ELF
图解虚拟地址空间分段
1. 内核空间
- 内核空间为内核保留,是受到系统保护的,用户不能对内核空间中的内容进行读写操作,否则会出现段错误(segmention fault)
- 功能: