内存管理不是纯软件层面的东西,还要配合相关硬件,硬件如cpu架构,如cpu有x86、RAM、PowerCPU等。不同cpu架构下的内核管理架构也会存在差异。本文主要探讨的是x86架构下的linux内核的内存管理。这点需要明确。
但有些知识点是超越cpu架构存在的,比如虚拟化内存管理的概念,因为虚拟化内存管理引入的页表映射,TLB等概念。这些是属于操作系统基本原理范畴。
关于操作系统基本原理,可以看雷姆兹·H.阿帕希杜塞尔等写的《操作系统导论》。
关于linux内核下的内存管理,可以看余华兵的《Linux内核深度解析》。
CSDN博主–bin的技术小屋–的系列文章也写的很漂亮,可以参考:
https://blog.csdn.net/weixin_47282449/category_12000400.html?spm=1001.2014.3001.5482
linux内存管理整体架构
如图,整个内存管理的架构为:程序—>用户空间内存分配器----->虚拟内存管理------>物理内存分配器---->硬件(物理内存 + cpu中的内存管理单元等)。
解答几个问题
1、为什么需要虚拟内存管理
这个是操作系统基本原理的范畴,详细可以看雷姆兹·H.阿帕希杜塞尔等写的《操作系统导论》。
简单来说就是共享 、安全。
计算机是多进程多用户的