【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中:逻辑地址的实现方案和虚拟地址编址差不多,非常相似,所以有时候可以直接将逻辑地址直接填进页表的左边,当成虚拟地址.

总结:

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

相关内容

热门资讯

华誓视联体战略解码:深度技术+... 近日,中国眼视光行业迎来一个可能重塑未来格局的战略发布——“华誓国民视觉健康管理视联体”(下称“华誓...
广州携手“大湾鸡”迎新年!杰森... 12月28日,广州白云山云台花园迎来一场别开生面的“生日会”——“萌动广州‘大湾鸡’迎新年”主题发布...
两部门发文明确广告费和业务宣传... 财政部 税务总局 关于广告费和业务宣传费支出税前扣除有关事项的公告 财政部 税务总局公告2025年第...
行业ETF美股盘初多数走低,可... 行业ETF美股盘初多数走低,可选消费ETF、生物科技指数ETF跌超0.4%,网络股指数ETF跌约0....
英矽智能正式登陆港交所:AI制... 业务遍布全球的AI驱动生物科技公司。 据IPO早知道消息,InSilico Medicine Cay...
原创 茂... 雷达财经出品 文|周慧 编|深海 近日,一起高达23亿元的诉讼索赔,将锂电龙头企业欣旺达摆到了聚光灯...
“物理AI第一股”上市港交所!... 12月30日北京五一视界数字孪生科技股份有限公司上市。 12月16日北京昂瑞微电子技术股份有限公司上...
新生代人工智能企业为何格外“抢... 在2025年的尾声,科技圈被一则收购消息刷屏:截至2025年12月30日市值超过1.6万亿的美国科技...
从“12·18大会”,看五粮液... 2025年,是中国白酒行业“极不容易”的一年,正如业界所经历的,消费结构转型、市场竞争加剧、渠道库存...
当AI进入外贸,中国制造开始换... 作者:宁小贸 作者信息:AI营销--GEO优化运营高手。致力于GEO优化获客。服务行业头部企业...
中航畅宏:外资持续看好中国资产... 2025年底,高盛、摩根大通、摩根士丹利、瑞银、汇丰、德勤等多家头部外资组织陆续发布2026年商场展...
1499元飞天茅台登陆i茅台,... (作者|周琦 编辑|张广凯) 12月30日,茅台再度放出重磅消息。 2026年1月起,贵州茅台核...
监管亮剑“财技保壳”,谁在退市... 图片系AI生成 年末退市大考临近,A股“保壳”战场硝烟弥漫。一批ST及濒临退市公司密集祭出非常规手段...
英矽智能首挂上市早盘高开45.... 来源:港股研究社 近日,英矽智能(03696)正式首挂上市,这一消息在资本市场掀起了一阵波澜。上市首...
从1478元暴跌至632元!黄... 今年12月,原价594元一盒的Labubu坐坐派对搪胶毛绒系列,二手平台的均价已经从1478元回落到...
数字人民币迎来重大调整,如何影... 近日,中国人民银行正式宣布,明年1月1日起,数字人民币将迎来系统性升级。其中,最为突出的变化是,数字...
美媒:美国企业破产申请创15年... 全球媒体聚焦 | 美媒:美国企业破产申请创15年新高 美国《华盛顿邮报》网站近日刊文称,由于依赖进口...
IPO审2过2!主板改道北交所... 据交易所官网审核动态信息,12月30日2家企业IPO上会,全部获审核通过,合计拟募资20.94亿元。...
突发!中国机器人测试时突然“飞... 12月27日,一段宇树科技G1人形机器人测试时“误踢”工程师的视频迅速在社交平台刷屏,甚至引来了特斯...
邮储银行:吸收合并邮惠万家银行... 邮储银行公告,公司于2025年10月9日召开的临时股东大会审议通过了吸收合并邮惠万家银行的议案。近日...