
Linux内存管理
LoneHugo
寻寻觅觅,暮然回首~
展开
-
Linux进程地址空间布局
Linux进程地址空间包含如下部分:当前运行的二进制代码text,所处的虚拟内存区域称为text段;start_code到end_code; 程序使用的动态库代码; 存储全局变量和动态产生的数据的堆; 用于保存局部变量和实现函数调用的栈; 环境变量和命令行参数段; 将文件内容映射到虚拟地址空间的内存映射;各个进程都具有一个mm_struct的结构体实例,在task_struct中进...原创 2020-02-13 14:43:07 · 225 阅读 · 0 评论 -
Linux内存管理之vmalloc与low_memory
思考:如何在PowerPC架构e500芯片实现low_memory的大小控制?内存区域zone三个内存区域zone,分别为ZONE_DMA,ZONE_NORMAL和ZONE_HIGHMEM,在e500上ZONE_NORMAL实际划分的内存为空,所以所有低端内存(low_memory)都划分到ZONE_DMA中;内存区域的划分信息保存在max_zone_pfns中,其定义如下:st...原创 2019-06-27 15:28:45 · 2176 阅读 · 0 评论 -
深入解读Linux内存管理系列(8)——SLAB初始化
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/89055979SLAB是伙伴系统Buddy启动之后用于系统内存分配和回收的算法,也是缓存cache的基础。...原创 2019-04-06 15:53:20 · 379 阅读 · 0 评论 -
深入解读Linux内存管理系列(7)——伙伴系统
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/89055979伙伴系统用于以页为基础的分配和回收,是物理内存分配和管理的核心算法,能够有效避免碎片等问题。...原创 2019-04-06 15:51:02 · 422 阅读 · 0 评论 -
深入解读Linux内存管理系列(6)——地址空间划分
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/89055979虚拟地址空间划分,包括一致映射,临时映射,永久映射,vmalloc,ioremap区域等内存布局enum fixed_...原创 2019-04-06 15:45:56 · 693 阅读 · 0 评论 -
深入解读Linux内存管理系列(5)——lowmem和highmem
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/89055979高端和低端内存,划分在不同的区域,映射方式有差异...原创 2019-04-06 15:42:59 · 3108 阅读 · 0 评论 -
深入解读Linux内存管理系列(4)——Memblock管理机制
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/89055979Memblock是早期内存管理方法,物理内存节点相关的内容被初始化,并简单地通过Memblock结构管理起来,主要以各种链将各...原创 2019-04-06 15:40:49 · 689 阅读 · 1 评论 -
深入解读Linux内存管理系列(3)——MMU初始化和页表的建立
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/89055979初始化阶段进行MMU_init,启动MMU,并建立页表,通过TLB进行地址转换访问物理内存。reserve_hugetlb...原创 2019-04-06 15:37:05 · 2223 阅读 · 0 评论 -
深入解读Linux内存管理系列(2)——内存节点的添加
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/890559791. DTS和MemblockLinux在Boot阶段采用Memblock内存块节点来管理物理内存,系统启动早期通过对dt...原创 2019-04-06 15:34:12 · 1049 阅读 · 0 评论 -
深入解读Linux内存管理系列(1)——系统启动阶段的操作
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/890559791. 基本概念在介绍系统启动阶段的内容之前先来了解一些基本的知识,方便我们理解相应的准备和操作的原理是什么。主要有五点...原创 2019-04-06 15:28:51 · 1213 阅读 · 0 评论 -
深入解读Linux内存管理系列(总览)
日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章文章 概要 深入解读Linux内存管理系列(1)——系统启动阶段的操作 系统启动阶段需要完成的工作以及内存状态 深入解读Linux内存管理系列(2)——内存节点的添加 识别并添加物理内存,初始...原创 2019-04-06 15:19:32 · 2800 阅读 · 0 评论