Linux教程

Linux中逻辑地址和地址映射

本文主要是介绍Linux中逻辑地址和地址映射,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

逻辑地址

如果用户进程直接操作物理地址会有以下的坏处:
1、 用户进程可以直接操作内核对应的内存,破坏内核运行。
2、 用户进程也会破坏其他进程的运行

CPU中寄存器中存储的是逻辑地址,需要进行映射才能转化为对应的物理地址,然后获取对应的内存。

通过引入逻辑地址,每个进程都拥有单独的逻辑地址范围。

当进程申请内存的时候,会为其分配逻辑地址和物理地址,并将逻辑地址和物理地址做一个映射

不同进程的逻辑地址可以一样,但是其映射的物理地址是不一样的。

逻辑地址 分为 内核空间用户空间

内核空间 就是 操作系统内核使用的虚拟地址集合,对应的物理内存用来存放内核代码内核数据等。

用户空间 就是 用户进程使用的虚拟地址集合,对应的物理内存用来存放进程对应代码和数据。

地址映射

地址映射分为:
1、直接映射

直接映射的规则是死的,一个逻辑地址对应的物理地址是固定的。通过逻辑地址加或者减去一个数,就可以得到对应的物理地址。

2、动态映射

动态映射是动态的绑定,每个逻辑地址对应的物理地址是动态的,通过页表进行查询

这篇关于Linux中逻辑地址和地址映射的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!