深剖 Linux 进程地址空间

本文探讨了Linux进程地址空间的概念,包括虚拟地址、页表和mm_struct结构。地址空间对于维护进程独立性和保护内存至关重要。进程在执行时,虚拟地址通过页表映射到物理内存,确保了写时拷贝和独立性。同时,地址空间的统一视角简化了程序的编译和内存管理。
摘要由CSDN通过智能技术生成

传统艺能😎

小编是双非本科大一菜鸟不赘述,欢迎大佬指点江山,qq-1319365055
此前博客点我!点我!请搜索博主 【知晓天空之蓝】

🎉🎉非科班转码社区诚邀您入驻🎉🎉
小伙伴们,打码路上一路向北,彼岸之前皆是疾苦
一个人的单打独斗不如一群人的砥砺前行
这是我和梦想合伙人组建的社区,诚邀各位有志之士的加入!!
直达: 社区链接点我

🎉🎉🎉倾力打造转码社区微信公众号🎉🎉🎉
在这里插入图片描述1319365055)


在这里插入图片描述

内建命令🤔

假如我们 kill 掉 bash 进程,我们命令行中的进程就会嗝屁,所以命令行中启动的进程,父进程全部都是 bash 进程。

我们知道环境变量具有全局属性,这个全局属性的依据就是环境变量会被子进程继承下去,也就是说只要 bash 一开始就 export 了环境变量, bash 在开枝散叶后的所有子进程的环境变量都会随 bash 份子,但是本地变量不会继承。

那么问题来了,比如我定义一个本地变量,执行一个命令:

str = hello
echo $str

结果是 hello 毫无疑问,但是不是说子进程不继承本地变量吗?这里 echo 是系统指令,那么它本质上也是一个子进程,他是如何处理的本地变量呢?

其实 Linux 下大部分是通过子进程执行,但是还有一部分由 bash 自己执行,他会调用自己对应的函数来完成,这种命令我们称之为内建命令,比如 cd 命令,说白了这种命令系统可信度非常高,bash 决定自己直接执行。

地址空间🤔

我们很早就有说过地址空间的分布,就像我们说 32 位系统下指针大小是 4 字节,因为 4 正好是 32 个比特位,刚好可以表示全 0 到全 1 ,但是地址空间不是以前的非黑即白:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔乔家的龙龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值