自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

转载 android进程创建分析

摘要         本文主要分析了当前热门手机平台android系统的进程创建分析。先简单介绍android的技术架构,然后概述android启动新程序的整体流程,接着详细分析程序启动中的进程创建。在分析中辅以代码解析,从而让读者能较为清晰的了解到android时如何通过进程创建来启动新程序的。Android架构         android是世界上最受欢迎的手机平台。它以linu

2015-01-30 17:35:06 678

转载 Android Bluetooth HID实现详解

Android Bluetooth HID实现详解Android 关于蓝牙的部分使用的是BlueZ协议栈。但是直到目前2.3.3都没有扩展HID的profile,只是实现了最基本的Handset和d2dp的profile,所以我们的工作涉及到从应用到jni三层的修改,具体修改文件如图所示,绿色表示新建的类,橙色表示修改的类。 一. 本地层路径:framework/base/co

2015-01-28 18:12:49 1360

转载 linux内核内存管理学习

一、概述1.虚拟地址空间内存是通过指针寻址的,因而CPU的字长决定了CPU所能管理的地址空间的大小,该地址空间就被称为虚拟地址空间,因此32位CPU的虚拟地址空间大小为4G,这和实际的物理内存数量无关。Linux内核将虚拟地址空间分成了两部分:一部分是用户进程可用的,这部分地址是地址空间的低地址部分,从0到TASK_SIZE,称为用户空间一部分是由内核保留使用的,这部分地址是地

2015-01-24 19:04:41 1615

转载 内存映射

如果已经看了博客中本系列文档的前面的几篇文章,应该就已经对malloc、mmap大致了解了,它们就是在堆中创建(或合并)所需虚拟地址的vma线性区,换句话说,就是达到进程地址空间中要有满足要求的vma,但不会给vma映射物理页(除非一定要求,即vma的flags标识了页锁定标志VM_LOCKED),这是linux的对用户进程物理页分配的推后原则,把握这个原则有助于分析malloc/mmap乃至理解

2015-01-15 16:52:34 1238

转载 缺页异常详解

首先明确下什么是缺页异常,CPU通过地址总线可以访问连接在地址总线上的所有外设,包括物理内存、IO设备等等,但从CPU发出的访问地址并非是这些外设在地址总线上的物理地址,而是一个虚拟地址,由MMU将虚拟地址转换成物理地址再从地址总线上发出,MMU上的这种虚拟地址和物理地址的转换关系是需要创建的,并且MMU还可以设置这个物理页是否可以进行写操作,当没有创建一个虚拟地址到物理地址的映射,或者创建了这样

2015-01-15 16:48:45 22785 2

转载 linux进程地址空间

开门见山,在arch/arm/kernel/sys_arm.c文件中,有这样三个函数:sys_fork、sys_vfork、sys_clone,它们都是在创建进程,分别对应系统调用fork()、vfork()、clone(),下面是它们在arm中的函数实现:顺便说一下,系统调用是如何对应到内核接口函数的(fork()->sys_fork),在之后会有文章专门研讨,这里重点讨论的是进程地址空间的

2015-01-15 16:46:40 1059

转载 linux arm的高端内存映射

与高端映射对立的是低端映射或所谓直接映射,内核中有关变量定义它们的它们的分界点,全局变量high_memory,该变量定义在mm/memory.c文件中(存在MMU的前提下),可见不区分体系结构,对于当前我手头的marvell的arm设备即对于arm体系结构,high_memory在初始化阶段的创建内存页表时初始化值,它的值就是:物理内存最后一个node的末尾,比如物理内存只有一个node,大小是

2015-01-15 16:37:30 4986

转载 详解slab机制

http://blog.csdn.net/u010246947/article/details/10133101目前有很多讲slab的文章,要么是纯讲原理画一堆图结合源码不深导致理解困难,要么是纯代码注释导致理解更困难,我在猛攻了一周时间后,细致总结一下slab,争取从原理到源码都能细致的理解到并立刻达到清楚的使用。一、slab分配器概述:有了伙伴系统buddy,我们可以以页为单位获取

2015-01-15 16:34:47 17694 1

转载 arm的2级页表在Linux内核创建过程解析

系统DDR的基地址为0x0,内存为1GB,所以TTB的基地址为0x4000。下面要创建虚拟地址0xfe700000到物理地址0xffff0000之间的映射,映射大小为64KB,即16页。由于物理地址不是1MB字节对齐,所以必须创建两级映射。  用户空间/内核空间划分为2G/2G。  create_mapping:pgd = 0x80007f98, addr = 0xfe700000,

2015-01-15 16:27:21 6512 2

转载 ARM Fundamentals: Introduction to understanding ARM processors

Finding one's way through references to ARM processors is not always obvious. This article is the first of a series on ARM fundamentals that will introduce various topics to help you get more famili

2015-01-14 17:01:41 1005

转载 gcc的原子操作接口

GCC 提供的原子操作gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:type __sync_fetch_and_add (type *ptr, type value, ...)type __sync_fetch_and_sub (type *ptr, type value, ...)type _

2015-01-13 18:10:55 923

转载 深刻理解Linux进程间通信(IPC)

0. 序1. 管道1.1. 管道概述及相关API应用1.2. 有名管道概述及相关API应用1.3. 小结1.4. 参考资料2. 信号(上)2.1. 信号及信号来源2.2. 信号的种类2.3. 进程对信号的响应2.4. 信号的发送2.5. 信号的安装(设置信号关联动作)2.6. 信号集及信号集操作函数2.7. 信号阻塞与信号未决2.8. 参考资

2015-01-07 13:37:46 1507

转载 深入理解SELinux/SEAndroid

关于SEAndroid的更多官方说明,请参考http://source.android.com/devices/tech/security/se-linux.html二 SEAndroid源码分析有了上文的SELinux的基础知识,本节再来看看Google是如何在Android平台定制SELinux的。如前文所示,Android平台中的SELinux叫SEAndroid。先来看

2015-01-04 17:24:43 3589

内存优化方案

内存压缩前身和现状 工作机制简介 优化讨论

2016-12-13

mtk_faq_online

mtk_faq_online

2016-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除