物理内存初始化
首先来考虑一下几个问题:
1.在系统启动时,Linux内核如何知道系统中有多大的内存空间???
2.在32bit的Linux内核当中,用户空间和内核空间之比为3:1,可以修改成2:2吗?
3.物理内存页面如何添加到伙伴系统中,是一页一页的添加还是以2的几次幂加入呢?
1.内存概述
从硬件角度看内存,随机存储器(RAM,Random Access Memory)是与CPU直接交换数据的内部存储器。现在ARM最常使用的是DDR的储存设备,DDR的储存是在BIOS/boot loader,它将DDR的大小传给内核,从Linux的角度来看DDR是一段物理内存空间。
2.内存管理概述
内存管理是一个很复杂的系统,设计很多的内容。用分层来说,可以分为三个层次,分别是用户层空间,内核空间和硬件层。
上述 是内存结构框架的一个大体架构图。
3.内存大小
在ARM Linux中,各种设备的相关属性描述都是采用DTS方式来呈现(device tree source)。在ARM Vexpres平台中,内存定义在vexpress-v2P-ca9.dts文件中。