前言:
在 32 位的系统上,线性地址空间为 4GB,其中用户进程占有 3GB 线性地址空间,内核占有 1GB 线性地址空间。由于虚拟内存的引入,使的每个进程都可拥有 3GB 的虚拟内存。
用户进程的虚拟地址空间包含若干区域,这些区域的分布方式因体系结构的差异而不同,但所有的方式都包含下列成分:
(1) 代码段:可执行文件的二进制代码
(2) 数据段:存储全局变量
(3) 栈:用于保存局部变量和实现函数调用
(4) 环境变量和命令行参数
(5) 程序使用的动态库的代码
(6) 用于映射文件内容的区域为便于描述,系统中进程的虚拟内存空间被划分为若干不同的区域,每个区域都有其相关的属性和用途,一个合法的地址总是落在某个区域当中的,这些区域也不会重叠。在 Linux 内核中,这样的区域被称为虚拟内存区域(virtual memory areas,VMA)。一个 VMA 是一块连续的线性地址空间的抽象,它拥有自身的权限(可读,可写,可执行等) ,对进程而言,VMA 其实是虚拟空间的内存块,一个进程的所有资源由多个内
查看sn命令_Linux内核模块编程小例子之查看虚拟内存VMA(virtual memory areas)信息...
最新推荐文章于 2023-09-19 19:29:19 发布