这是第二篇,第一篇解刨操作系统虚拟内存一已经详细的介绍了虚拟内存已经计算机内存管理的基本概念。本篇将重点结合XNU内核源码、部分dyld和cctools源码进行深入探测虚拟内存。为了结构清晰,我会尽量避免贴大段的源码,如果有需要可自行下载上述三个源码库,结合阅读。 问题 1: 虚拟内存与 Mach-O 文件的关系 ? 2: 虚拟内存是如何被构建出来…
从编程的角度看,虚拟内存可能是内存管理中最抽象、最重要的概念,但国内的教科书在内存管理相关章节,普遍对虚拟内存的知识一笔带过,相关的内容仅仅涉及到逻辑地址到物理地址的转换(事实上这部分属于 MMU),以及本地磁盘与内存的对换区(swap),该区域,在空闲内存达到门限值(threshold)时,用来与内存进行页面置换,但在 iOS 系统上没有该区域。…