Linux环境变量和进程地址空间介绍

目录Linux环境变量和进程地址空间通过代码获取环境变量进程地址空间关于为什么是虚拟地址,而不是物理地址?Linux环境变量和进程地址空间//查看进程pid和父进程[dy@VM-12-10-cento...

此时我们发现,变量的值已经更改了,父进程为0,子进程为100,但是变量的地址仍然是一样的。

通过这个运行结果,我们可以得知以下几点。

两个进程的变量的值不一样,所以父子进程的变量绝对不是同一个变量地址值一样,绝对不是物理地址!!!我们看到的地址,全部都是虚拟地址!!!真实的物理地址,用户是看不到的,由OS统一管理(OS负责将虚拟地址–》物理地址)代码是共享的,而数据各自私有一份(写时拷贝)

关于为什么是虚拟地址,而不是物理地址?

进程地址空间是什么?

进程地址空间:是看待内存的方式,抽象出来的一个概念,内核struct mm struct,这样的每个进程,都认为自己独占系统内存资源(你认为你老爸的家产是你一个人的)区域划分:地址空间为线性,被划分成一个一个的区域,[start,end]虚拟地址:在[start, end]之间的各个地址叫做虚拟地址

虚拟地址到物理地址的一个映射

为什么要存在进程地址空间?

保护物理内存,不收到任何进程内的地址的直接访问,方便进行合法性检验将内存管理和进程管理进行解耦让每个进程,以同样的方式,来看待代码和数据

以后我们可以直接说出进程和程序的区别。

到此这篇关于Linux环境变量和进程地址空间介绍的文章就介绍到这了,更多相关Linux环境变量和进程空间内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐