9.4 Linux内存管理

Linux的内存管理

图片请移步云笔记:

https://note.youdao.com/s/HRhKxX2O

Linux内存管理,采用了逻辑地址+线性地址,也就是段+页。
在这里插入图片描述

主要还是采用的还是页式内存管理,但不可避免的涉及段机制。

因为intel处理器的发展历史导致的,CPU的硬件结构就是如此,硬件在一定程度上,决定了软件。

但在实际使用中,Linux也是相当聪明的,架空段式映射

Linux系统中的每个段都是从0地址开始的整个4GB虚拟空间(32位环境下),也就是所有的段的起始地址都是一样的。这意味着,Linux系统中的代码,包括操作系统本身的代码和应用程序代码,所面对的地址空间都是线性地址空间(虚拟地址),这种做法相当于屏蔽了处理器中的逻辑地址概念,段只被用于访问控制和内存保护。

内核空间与用户空间:
在这里插入图片描述

也记录过好多次了,这里就不再重复。

虽然每个进程都各自有独立的虚拟内存,但是每个虚拟内存中的内核地址,其实关联的都是相同的物理内存。这样,进程切换到内核态后,就可以很方便地访问内核空间内存。
在这里插入图片描述

然后每一个进程的空间分布
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43824188/article/details/121687276
9.4