【Linux】进程的概念--程序地址空间(2)
创始人
2025-06-01 05:54:38
0
  1. 语言级别的地址

以前我们在学习C语言指针的时候,会打印地址,会有内存级别的内存。
观看一段代码
所以语言级别的地址,都是虚拟地址,并不是真实的物理地址。
打印一个是虚拟的,打印全部都是虚拟的,全部打印出来的这个空间,不是真实的内存。它叫虚拟地址空间。
在Linux地址下,这种地址叫做 虚拟地址 /线性地址
我们在用C/C++语言所看到的地址,全部都是虚拟地址!物理地址,用户一概看不到,由OS统一管理
OS必须负责将 虚拟地址 转化成 物理地址

  1. 认识进程地址空间

进程在自己执行的时候,进程自己会认为自己独占系统资源(事实上并不是)。
举个例子:
所以 进程地址空间(虚拟地址空间)就是操作系统给每一个进程画的大饼。
操作系统画的饼(进程地址空间),也是需要被管理的。
操作系统管理的本质就是:先描述再管理。
所以操作系统内核就有一种数据结构 mm_struct来管理每个进程的进程地址空间。
mm_struct,能描述进程地址空间的每一个属性。
地址空间的本质就是:内核的一种数据结构(mm_struct)

  1. mm_struct

以32位机器为例子
从虚拟地址要通过页表映射,找到物理地址,然后到内存中找对应的数据.
以上都是操作系统帮我们做的
虚拟地址都是连续的地址空间,所以虚拟地址也叫线性地址.
每个进程的都有自己的虚拟进程地址空间,都需要通过页表映射到真实的物理地址.
每个进程都看不到自己的物理内存,只知道自己的虚拟内存,然后操作系统通过页表映射到真实的物理地址,供进程调用数据.
  1. 为什么存在地址空间&&页表

4.1.变相保护操作系统

如果让进程直接访问物理内存,万一越界或者非法访问了怎么办呢?
所以直接让进程访问物理内存很不安全,万一修改到系统内存里面的数据咋办?
万一读取到系统内存的数据,是不是就隐私泄漏了呢?
所以页表不仅仅是用来映射物理地址的,还能检查地址访问是否合法.我们对物理内存做非法访问的时候就会被操作系统拦截.
所以虚拟地址空间和页表的存在是为了变相保护操作系统.

4.2.保证了进程独立性

上面我们写过一个代码,父进程创建了子进程,子进程一段时间后修改了全局变量的值,此时当我们去打印这个全局变量的值和对应的地址的时候,就会发现一个问题,为什么打印的地址一样而值却不一样?
此时我们就知道了,打印的这个地址是虚拟地址.是通过页表映射到物理地址的.
所以就很好的解释了为什么.打印的地址一样而值却不一样.

写时拷贝的问题

父进程创建子进程,可以认为子进程是父进程哪里拷贝过来的,一开始其实子进程和父进程的全局变量通过页表映射到的是同一块物理内存,但是当我们尝试写入或者修改的时候,操作系统就会在内存重新找一块内存空间,然后进行数据拷贝,更改页表映射,然后让进程进行修改.这种技术就叫做写时拷贝.是为了保证进程的独立性.两个进程互相不影响.
所以操作系统为保证进程的独立性,做了很多工作,通过地址空间,通过页表,让不同的进程,映射到不同的物理内存处.可以更加方便的进行进程和进程的数据代码解耦.保证进程独立性.

4.3.让编译代码和进程执行统一看待虚拟地址空间

当一个可执行程序在磁盘的时候,程序里面有地址吗? 有的
你不要认为只有操作系统会遵守虚拟地址空间,编译器也要遵守!
编译器在编译代码的时候,就是按照虚拟地址空间的方式对我们的代码和数据进行编址的!
所以我们在编写到代码的时候需要选择32位还是64位编译,编译出来的地址是4字节和8字节.这里32位和64位说的就是按照32位的虚拟地址空间还是64位的虚拟地址空间,进行代码和数据的编址.
逻辑地址还有其他的实现方案,所以 逻辑地址 != 虚拟地址
在Linux中:逻辑地址的实现方案和虚拟地址编址差不多,非常相似,所以有时候可以直接将逻辑地址直接填进页表的左边,当成虚拟地址.

总结:

虚拟进程的另一个作用:
让进程以统一的视角,来看待进程对应的代码和数据等各个区域,方便使用.
方便编译器也以统一的视角来进行编译代码.
因为规则是一样的.

相关内容

热门资讯

“强实名”仍一票难求?遏制技术... 暑期来临,演唱会、音乐节、话剧等演出活动热度飙升。无论手速多快,总是一票难求,让众多消费者叫苦不迭。...
上证红利回报指数上涨0.83%... 金融界7月21日消息,上证指数高开高走,上证红利回报指数 (上红回报,H50019)上涨0.83%,...
为啥股票与基金的走势相反? 虚位以待! 平姐姐摄于毛里求斯网红酒店 昨天的文章,标题就很明确,那就是《准备出击》,在半年报不少上...
美加密货币相关法案落地引发三连... 当地时间7月18日,美国总统特朗普在白宫正式签署《指导与建立美国稳定币国家创新法案》(简称《天才法案...
股市必读:湖南黄金(00215... 截至2025年7月21日收盘,湖南黄金(002155)报收于18.33元,上涨2.57%,换手率3....
四川发布六大红色旅游新线路 四川发布六大红色旅游新线路 “锦绣天府·安逸四川”之红色旅游央地媒体联动采访启动 “锦绣天府·安...
北交所上市公司中航泰达大宗交易... 每经讯,2025年7月21日,北交所上市公司中航泰达(836263,收盘价:16.11元)发生一笔大...
金价突然猛拉,重回3400美元... 记者丨叶麦穗 编辑丨曾芳 金珊 7月21日晚,现货黄金突然猛拉大涨,截至22:40,涨超1.5%,站...
嘉实港股互联网产业核心资产混合... AI基金嘉实港股互联网产业核心资产混合A(011924)披露2025年二季报,第二季度基金利润532...
中信证券:特朗普“唱白脸”+贝... 来源:市场资讯 中信证券研究 文|李翀 崔嵘 韦昕澄 贾天楚 当地时间7月14日,美国总统特朗普表示...
机器人ETF易方达(15953... 截至收盘,国证机器人产业指数上涨2.1%,中证装备产业指数上涨1.9%,中证军工指数上涨0.9%,中...
北京工商大学教授吕来明:整治“... 今年以来,治理“内卷式”竞争引发高度关注。从水泥、光伏、汽车到电商,多个领域吹响“反内卷”的号角。 ...
民航局:加快新兴市场布局,提升... 7月21日,在国新办举行的“高质量完成‘十四五’规划”系列主题新闻发布会上,中国民航局局长宋志勇介绍...
二季度券商北交所、新三板业务执... 头部券商优势地位保持稳固,多家中小券商排名大幅跃升 本报记者 于宏 7月18日晚间,北交所、全国股转...
股票行情快报:美新科技(301... 证券之星消息,截至2025年7月21日收盘,美新科技(301588)报收于19.0元,上涨1.39%...
破解中小企业融资难!产业数字金... “中国经济的核心在于产业经济,产业经济离不开金融,产业经济、产业金融都离不开数字技术的赋能,中小企业...
京东美团“暗战”具身智能,战火... 在科技赛道的激烈角逐中,具身智能正成为巨头们争夺的新焦点。王兴之后,刘强东也在具身智能领域强势出击。...
“未来已来”指数涨跌不一,关注... 截至收盘,国证机器人产业指数上涨2.1%,中证新能源指数上涨1.5%,中证人工智能主题指数下跌0.0...
“未来能源”指数上涨,关注新能... 截至收盘,中证上海环交所碳中和指数上涨1.9%,中证光伏产业指数上涨1.6%,中证新能源指数上涨1....