linux内核地址空间与用户地址空间的差别

本文讨论了Linux在i386平台下的内存管理机制,包括用户线性地址空间和内核线性地址空间的区别,内核如何处理物理内存分配,以及用户空间内存分配的延迟分配策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文仅限在i386平台下讨论一般情况。

1、用户线性地址空间范围0-3G,内核线性空间范围3G-4G。
2、内核总是立即满足内核空间的物理内存分配,并且分配结果对所有进程可见;而对于用户空间的内存分配请求,linux总是先保留用户线性地址空间的一段区域,然后修改页表项使这段线性区域都指向一页内容全为0的全局只读物理页。当进程写入这段线性区域时,将会产生一个缺页异常,这时系统才会为对应的线性地址分配物理页面,并且把物理页对应的页表项置为可写。为了保持和全局只读物理页内容一致,新分配的物理页内容也会全置为0。
3、用户线性空间是不可靠的,一般情况下它会随着进程的切换而改变(在lazy TLB切换下除外);而内核线性空间对所有的进程都一样,不会随着进程的切换而改变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值