memory
文章平均质量分 60
蓝白天际线
本人从事linux的嵌入式开发.
展开
-
高通平台如何新增加一个分区,并mount到android系统中
1.首先需要更改partition.xml文件,在userdata的前面增加一个temp的分区,这里要注意的是userdata的分区大小需要同步的减小,还有一点需要留意,temp分区的UUID需要改一下\MSM8953.LA.2.0\common\config................... <partition label="qpdata2" size_in_kb="10240" type="5AF80809-AABB-4943-9168-CDFC38742599" bootabl转载 2021-07-23 15:36:40 · 1502 阅读 · 1 评论 -
Userdata 分区 resize 功能
1. 挂载分区时添加resize功能system/core/fs_mgr/fs_mgr.cpp #include "cryptfs.h"#define RESIZE2FS_BIN "/system/bin/resize2fs"static void resize_fs(const char *blk_device, char *fs_type, char *key_loc) { uint64_t device_sz; uint64_t device_ss;转载 2021-07-22 14:55:05 · 1236 阅读 · 0 评论 -
Linux内存管理(最透彻的一篇)
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市...转载 2019-04-24 18:18:34 · 233 阅读 · 0 评论 -
内存_内存管理的不同阶段
linux内核的内存管理分三个阶段。1. 启动---->bootmem初始化完成为第一阶段。此阶段只能使用memblock_reserve函数分配内存。 此阶段结束标志为:init_bootmem_done = 1.2. bootmem初始化完--->buddy完成前。结束标志为mem_init_done = 1.3. 全部内存初始化完毕,可以用cache和buddy分配内...转载 2018-12-26 15:14:26 · 420 阅读 · 0 评论 -
嵌入式Linux移植之内存初始化和地址映射
Linux内核有两个重要的宏:PHYS_OFFSET和PAGE_OFFSET。PHYS_OFFSET是物理内存的起始地址,PAGE_OFFSET是Linux内核空间的虚拟起始地址(默认为0xC0000000,可通过menuconfig配置,CONFIG_PAGE_OFFSET)。PHYS_OFFSET可通过menuconfig配置(CONFIG_PHYS_OFFSET),但一般不直接配置。 如果定...转载 2018-12-26 15:10:52 · 1432 阅读 · 0 评论 -
IMX6下android系统eMMC空间分配识别说明
我们使用IMX6的板子进行android系统的测试的时候,会发现实际eMMC的空间和eMMC本身的空间大小不一样,以下对此进行解释以android4.0.4和android4.3为例,使用FSL提供的MFG tools工具给鼎芯的IMX6开发板烧写android系统。你会发现android4.0.4和android4.3是不同的,8G eMMC空间,系统识别出来的为7.39G左右,这个没...转载 2018-12-20 17:33:43 · 764 阅读 · 1 评论 -
linux 用户空间与内核空间——高端内存详解
摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的地址映射。 Linux内核地址空间划分通常32位Linux内核虚转载 2017-10-13 14:04:40 · 515 阅读 · 0 评论 -
[内存管理] linux kernel内存映射实例分析
http://blog.csdn.net/crazyjiang/article/details/7903772作者:JHJ(jianghuijun211@gmail.com)日期:2012/08/24欢迎转载,请注明出处 引子现在android智能手机市场异常火热,硬件升级非常迅猛,arm cortex A9 + 1GB DDR似乎已经跟不上主流配置了。虽说硬件是王道,转载 2017-10-12 11:48:16 · 378 阅读 · 0 评论 -
linux内核内存管理学习之三(slab分配器)
一、内核内存分配在linux内核中伙伴系统用来管理物理内存,其分配的单位是页,但是向用户程序一样,内核也需要动态分配内存,而伙伴系统分配的粒度又太大。由于内核无法借助标准的C库,因而需要别的手段来实现内核中动态内存的分配管理,linux采用的是slab分配器。slab分配器不仅可以提供动态内存的管理功能,而且可以作为经常分配并释放的内存的缓存。通过slab缓存,内核能够储备一些对象,供后续使用转载 2017-10-12 15:50:26 · 343 阅读 · 0 评论 -
linux内核内存管理学习之二(物理内存管理--伙伴系统)
linux使用伙伴系统来管理物理内存页。一、伙伴系统原理1. 伙伴关系定义:由一个母实体分成的两个各方面属性一致的两个子实体,这两个子实体就处于伙伴关系。在操作系统分配内存的过程中,一个内存块常常被分成两个大小相等的内存块,这两个大小相等的内存块就处于伙伴关系。它满足 3 个条件 : 两个块具有相同大小记为 2^K 它们的物理地址是连续的 从同一个大块中拆分出来2. 伙转载 2017-10-12 15:47:36 · 592 阅读 · 0 评论 -
linux内核内存管理学习之一(基本概念,分页及初始化)
一、概述1.虚拟地址空间内存是通过指针寻址的,因而CPU的字长决定了CPU所能管理的地址空间的大小,该地址空间就被称为虚拟地址空间,因此32位CPU的虚拟地址空间大小为4G,这和实际的物理内存数量无关。Linux内核将虚拟地址空间分成了两部分:一部分是用户进程可用的,这部分地址是地址空间的低地址部分,从0到TASK_SIZE,称为用户空间一部分是由内核保留使用的,这部分地址是地转载 2017-10-12 15:45:37 · 880 阅读 · 0 评论 -
linux内核内存分配
内核中的内存分配通常通过kmalloc/kfree来进行,但是也有其它的方式来获取内存,所有这些方式共同提供了内核中分配、释放内存的接口。一、kmalloc/kfree类似于标准C中的malloc/free,kmalloc/kfree是内核中的用于常规内存分配的接口。kmalloc/kfree是工作在slab分配器的基础上的,在系统启动时会调用kmem_cache_init,该函数会创转载 2017-10-12 15:17:04 · 639 阅读 · 0 评论 -
android之ION内存管理器(1)-- 简介
目录(?)[+]by JHJ(jianghuijun211@gmail.com)为什么需要ION回顾2011年末[2],LWN审查了android kernel patch[3],以期望将这些patch合并到kernel主线中。但是PMEM(android实现的 一个内存分配器)使这个愿望破灭了。为什么PMEM不被linux 社区接受的原因在[3]中有讲到。从那开始,PMEM很明确转载 2017-10-12 14:19:08 · 1039 阅读 · 0 评论 -
android之ION内存管理器(2)-- cache
目录(?)[+]by JHJ (jianghuijunj211@gmail.com) ION如何实现buffer共享的思路倒是很清晰的,但是深入代码研究,发现ION是依赖于DMA Mapping的,而DMA mapping模块对我而言还是挺复杂的,看这个模块遇到的第一个问题就是cache。既然是DMA mapping,直接将申请的buffer设置为non-cacheable不就行了?这转载 2017-10-12 14:22:03 · 576 阅读 · 0 评论