自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 linux 读取proc文件之seq_file浅析1

在linux中通过proc文件系统

2014-04-26 23:52:44 4616

原创 java &d8中Lambda的实现原理

java &d8中Lambda的实现原理基础概念lambda表达式lambda是java8加入的语法糖,它是一个匿名函数,即没有声明的方法,它无访问修饰符、无返回值声明和方法名称。语法格式如下:(arg1, arg2...) -> { body}当只有一个参数且不声明类型时,可以省略参数的括号。当body部分只有一个语句时,可以省略大括号。参数类型可以显示声明,也可以由编译器自动从上下文推倒。如(String s) -> System.out.println(s)函

2021-04-05 19:13:55 943 2

原创 Binder驱动之内存映射全解

Binder通过open调用打开后,需要用户态进程需调用mmap进行内存映射。mmap系统调用,经过VFS最终会调用到binder驱动注册的binder_mmap函数。这里我们将揭开Binder通信高效的本质原因,:)一 内存映射函数的实现 binder_mmap(kernel/drivers/android/binder.c)static int binder_mmap(struct file *filp, struct vm_area_struct *vma/*用户态虚拟地址空间描述,地址空间在0~

2020-05-31 18:50:41 1628

原创 Binder驱动之进程间通信及设置

衔接上文Binder驱动之设备控制 – 概述&数据结构 。这篇文章将深入Binder驱动实现进程间通信的核心,揭开Binder通信的神秘面纱, ????1. binder_ioctlBinder驱动没有提供read/write接口用于读写操作,所有数据传输、控制都是通过binder_ioctl进行,因此该部分是Binder通信的核心内容,承载了Binder数据传输部分的主要业务。这一节我们就一起来看看Binder进程间通信驱动层总入口 ---- binder_ioctl的实现。static

2020-05-30 17:40:30 946

原创 Binder驱动之设备控制 -- 概述&数据结构

由于这部分内容相对复杂,我们将其拆解为几部分来讲解,这里我们先来了解一下背景知识和相关的基础数据结构。1. 背景Binder做为Android中进程间高效通信的核心组件,其底层是以misc设备驱动的形式实现的,但它本身并没有实现read,write操作,所有的控制都是通过ioctl操作来实现。ioctl是Linux中常见的系统调用,它是系统提供给应用的对底层设备特性进行控制的用户态接口,应用程序在调用ioctl进行设备控制时,最后会调用到设备注册struct file_operations结构体对象时的

2020-05-29 23:28:44 272

原创 Binder驱动之binder_buffer的分配与回收

一 相关的数据结构1.1 struct binder_proc中的相关成员struct binder_proc { … struct list_head buffers; /*所有binder_buffer的链表,以起始地址大小生序排列,以方便相邻空闲的binder_buffer合并*/ struct rb_root free_buffers; /*组织所有空闲的binder_buffer在该红黑树中,以所管理的地址空间大小为序,便于地址空间的分配*/ struct rb

2020-05-29 22:49:01 1087

原创 打开Binder设备 -- binder_open

一 binder设备打开的函数实现 binder_open路径:kernel/drivers/android/binder.cstatic int binder_open(struct inode *nodp, struct file *filp){ struct binder_proc *proc; binder_debug(BINDER_DEBUG_OPEN_CLOSE, "binder_open: %d:%d\n", current->group

2020-05-29 22:41:41 325

原创 Binder驱动初始化 -- binder_init

一 Binder驱动初始化binder_init (kernel/drivers/android/binder.c)static int __init binder_init(void) { int ret;

2020-05-29 22:30:39 390

原创 数组中三个只出现一次的数字2

今天把代码贴上

2014-06-06 17:19:57 562

原创 数组中三个只出现一次的数字1

本体

2014-06-06 00:08:51 949

原创 约瑟夫环问题映射关系的推导

关于约瑟夫环问题的解题方法可参考:        http://www.cnblogs.com/woodfish1988/archive/2007/02/18/652251.html。       http://blog.163.com/elite_lcf/blog/static/678395382009931105328270/     本文着重介绍用递归思想解题时,映射关系的推

2014-06-03 23:20:29 762

原创 linux read之后内核做了什么(流程基于linux-kernel-3.12.17)

如图所示:

2014-05-11 23:28:10 610

空空如也

空空如也

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

TA关注的人

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