header
×
嵌入式 > 嵌入式开发 > 详情

linux下内存管理学习心得(一)

发布时间:2020-10-22 发布时间:
|
最近在学习内存管理的时候,发现对linux下的所谓内存如何管理如何分配都不熟悉,通过最近的查阅资料可总结如下,如有不妥之处欢迎大家批评与指正。

总的的来说linux的内存管理其实主要难理解的是以下几个部分:

1、虚拟地址、物理地址、线性地址、逻辑地址之间的区别。

2、用户地址空间与内核地址空间区别。

3、内核如何分配所谓的地址。

4、一个可执行程序的地址分布以及运行地址分配。

目前我也大概总结这几个,其实这方面的知识肯定很多,但限于能力只能如何,也尽最大努力详细分析其中原委。注:很多是参考了网上的大牛总结的。

一、各地址之间区别

1、虚拟地址

其中各种地址的概念大家都可查阅到,我也就不多说了,虚拟地址就是为了给用户一个更大的使用空间(当然这个使用空间肯定是虚拟了的),然后32位下面用户地址空间也就是虚拟地址空间范围就是0--4GB。其中这个范围又可以划为0--3GB-1用户空间和3GB--4GB-1的内核空间。其中进程都各自有各自的0--3GB-1地址范围而共享3GB--4GB-1的内核空间。更详细的请往下此处不讲为了大家先有个宏观的认识。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM嵌入式系统串口扩展
footer